netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: usb: smsc95xx: configure external LEDs function for EVB-LAN8670-USB
@ 2024-05-22 14:08 Parthiban Veerasooran
  2024-05-22 16:44 ` Andrew Lunn
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Parthiban Veerasooran @ 2024-05-22 14:08 UTC (permalink / raw)
  To: steve.glendinning, UNGLinuxDriver, davem, edumazet, kuba, pabeni
  Cc: netdev, linux-usb, linux-kernel, Parthiban Veerasooran

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


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-05-27 11:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-22 14:08 [PATCH] net: usb: smsc95xx: configure external LEDs function for EVB-LAN8670-USB Parthiban Veerasooran
2024-05-22 16:44 ` Andrew Lunn
2024-05-23  8:51   ` Parthiban.Veerasooran
2024-05-23 12:43     ` Andrew Lunn
2024-05-24 10:48       ` Parthiban.Veerasooran
2024-05-22 18:54 ` Simon Horman
2024-05-23  8:51   ` Parthiban.Veerasooran
2024-05-22 19:52 ` Woojung.Huh
2024-05-23  8:51   ` Parthiban.Veerasooran
2024-05-23  5:42 ` kernel test robot
2024-05-27  8:28 ` Oliver Neukum
2024-05-27 11:42   ` Parthiban.Veerasooran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).