Thread (12 messages) 12 messages, 6 authors, 2024-05-27

Re: [PATCH] net: usb: smsc95xx: configure external LEDs function for EVB-LAN8670-USB

From: <Parthiban.Veerasooran@microchip.com>
Date: 2024-05-23 08:52:14
Also in: linux-usb, lkml

Hi Woojung,

On 23/05/24 1:22 am, Woojung Huh - C21699 wrote:
Hi Parthiban,

LED_SEL is configurable option by EEPROM which should be populated on
EVB-LAN8670-USB. I would suggest changing EEPROM configuration than
hard-coded in driver code.
Ah OK. Thanks for letting me know. I tried that EEPROM approach but that 
is needed a fix to work properly. I will send out another fix patch 
separately. Please review it.

Please discard this patch as it is going to be invalid.

Thanks for your understanding.

Best regards,
Parthiban V
Thanks.
Woojung
quoted
-----Original Message-----
From: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
Sent: Wednesday, May 22, 2024 10:08 AM
To: steve.glendinning@shawell.net; UNGLinuxDriver
[off-list ref]; davem@davemloft.net; edumazet@google.com;
kuba@kernel.org; pabeni@redhat.com
Cc: netdev@vger.kernel.org; linux-usb@vger.kernel.org; linux-
kernel@vger.kernel.org; Parthiban Veerasooran - I17164
[off-list ref]
Subject: [PATCH] net: usb: smsc95xx: configure external LEDs function for
EVB-LAN8670-USB

By default, LAN9500A configures the external LEDs to the below function.
nSPD_LED -> Speed Indicator
nLNKA_LED -> Link and Activity Indicator
nFDX_LED -> Full Duplex Link Indicator

But, EVB-LAN8670-USB uses the below external LEDs function which can be
enabled by writing 1 to the LED Select (LED_SEL) bit in the LAN9500A.
nSPD_LED -> Speed Indicator
nLNKA_LED -> Link Indicator
nFDX_LED -> Activity Indicator

Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
---
  drivers/net/usb/smsc95xx.c | 12 ++++++++++++
  drivers/net/usb/smsc95xx.h |  1 +
  2 files changed, 13 insertions(+)
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index cbea24666479..05975461bf10 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1006,6 +1006,18 @@ static int smsc95xx_reset(struct usbnet *dev)
  	/* Configure GPIO pins as LED outputs */
  	write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
  		LED_GPIO_CFG_FDX_LED;
+
+	/* Set LED Select (LED_SEL) bit for the external LED pins
functionality
+	 * in the Microchip's EVB-LAN8670-USB 10BASE-T1S Ethernet device which
+	 * uses the below LED function.
+	 * nSPD_LED -> Speed Indicator
+	 * nLNKA_LED -> Link Indicator
+	 * nFDX_LED -> Activity Indicator
+	 */
+	if (dev->udev->descriptor.idVendor == 0x184F &&
+	    dev->udev->descriptor.idProduct == 0x0051)
+		write_buf |= LED_GPIO_CFG_LED_SEL;
+
  	ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf);
  	if (ret < 0)
  		return ret;
diff --git a/drivers/net/usb/smsc95xx.h b/drivers/net/usb/smsc95xx.h
index 013bf42e27f2..134f3c2fddd9 100644
--- a/drivers/net/usb/smsc95xx.h
+++ b/drivers/net/usb/smsc95xx.h
@@ -114,6 +114,7 @@

  /* LED General Purpose IO Configuration Register */
  #define LED_GPIO_CFG		(0x24)
+#define LED_GPIO_CFG_LED_SEL	BIT(31)		/* Separate Link/Act LEDs */
  #define LED_GPIO_CFG_SPD_LED	(0x01000000)	/* GPIOz as Speed LED */
  #define LED_GPIO_CFG_LNK_LED	(0x00100000)	/* GPIOy as Link LED */
  #define LED_GPIO_CFG_FDX_LED	(0x00010000)	/* GPIOx as Full Duplex LED
*/

base-commit: 4b377b4868ef17b040065bd468668c707d2477a5
--
2.34.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help