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:18
Also in: linux-usb, lkml

Hi Simon,

On 23/05/24 12:24 am, Simon Horman wrote:
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On Wed, May 22, 2024 at 07:38:17PM +0530, Parthiban Veerasooran wrote:
quoted
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)
Hi Parthiban,

There seems to be an endian missmatch here.
The type of .idVendor and .idProduct is __le16,
but here they are compared against host byte-order integers.
Sorry, somehow I missed to check this. Will try to avoid this in the 
future. Thanks for letting me know.

But I am not going to proceed further with this patch as Woojung pointed 
out EEPROM approach can be used instead of updating the driver. So 
please discard this patch. But the EEPROM approach mentioned by Woojung 
is needed a fix in the driver to work properly. I will send out that fix 
patch separately. Please review it.

Thanks for your understanding.

Best regards,
Parthiban V
Flagged by Sparse.
quoted
+             write_buf |= LED_GPIO_CFG_LED_SEL;
+
       ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf);
       if (ret < 0)
               return ret;
...

--
pw-bot: changes-requested
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help