mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 82985725e071f2a5735052f18e109a32aeac3a0b Mon Sep 17 00:00:00 2001
 | |
| From: David Bauer <mail@david-bauer.net>
 | |
| Date: Sun, 26 Jul 2020 02:38:31 +0200
 | |
| Subject: [PATCH] net: usb: r8152: add LED configuration from OF
 | |
| 
 | |
| This adds the ability to configure the LED configuration register using
 | |
| OF. This way, the correct value for board specific LED configuration can
 | |
| be determined.
 | |
| 
 | |
| Signed-off-by: David Bauer <mail@david-bauer.net>
 | |
| ---
 | |
|  drivers/net/usb/r8152.c | 23 +++++++++++++++++++++++
 | |
|  1 file changed, 23 insertions(+)
 | |
| 
 | |
| --- a/drivers/net/usb/r8152.c
 | |
| +++ b/drivers/net/usb/r8152.c
 | |
| @@ -11,6 +11,7 @@
 | |
|  #include <linux/mii.h>
 | |
|  #include <linux/ethtool.h>
 | |
|  #include <linux/usb.h>
 | |
| +#include <linux/of.h>
 | |
|  #include <linux/crc32.h>
 | |
|  #include <linux/if_vlan.h>
 | |
|  #include <linux/uaccess.h>
 | |
| @@ -6871,6 +6872,22 @@ static void rtl_tally_reset(struct r8152
 | |
|  	ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
 | |
|  }
 | |
|  
 | |
| +static int r8152_led_configuration(struct r8152 *tp)
 | |
| +{
 | |
| +	u32 led_data;
 | |
| +	int ret;
 | |
| +
 | |
| +	ret = of_property_read_u32(tp->udev->dev.of_node, "realtek,led-data",
 | |
| +								&led_data);
 | |
| +
 | |
| +	if (ret)
 | |
| +		return ret;
 | |
| +	
 | |
| +	ocp_write_word(tp, MCU_TYPE_PLA, PLA_LEDSEL, led_data);
 | |
| +
 | |
| +	return 0;
 | |
| +}
 | |
| +
 | |
|  static void r8152b_init(struct r8152 *tp)
 | |
|  {
 | |
|  	u32 ocp_data;
 | |
| @@ -6912,6 +6929,8 @@ static void r8152b_init(struct r8152 *tp
 | |
|  	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
 | |
|  	ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
 | |
|  	ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
 | |
| +
 | |
| +	r8152_led_configuration(tp);
 | |
|  }
 | |
|  
 | |
|  static void r8153_init(struct r8152 *tp)
 | |
| @@ -7052,6 +7071,8 @@ static void r8153_init(struct r8152 *tp)
 | |
|  		tp->coalesce = COALESCE_SLOW;
 | |
|  		break;
 | |
|  	}
 | |
| +
 | |
| +	r8152_led_configuration(tp);
 | |
|  }
 | |
|  
 | |
|  static void r8153b_init(struct r8152 *tp)
 | |
| @@ -7134,6 +7155,8 @@ static void r8153b_init(struct r8152 *tp
 | |
|  	rtl_tally_reset(tp);
 | |
|  
 | |
|  	tp->coalesce = 15000;	/* 15 us */
 | |
| +
 | |
| +	r8152_led_configuration(tp);
 | |
|  }
 | |
|  
 | |
|  static void r8153c_init(struct r8152 *tp)
 |