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

From: Parthiban.Veerasooran
Date: Thu May 23 2024 - 04:52:31 EST


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
>
>> -----Original Message-----
>> From: Parthiban Veerasooran <Parthiban.Veerasooran@xxxxxxxxxxxxx>
>> Sent: Wednesday, May 22, 2024 10:08 AM
>> To: steve.glendinning@xxxxxxxxxxx; UNGLinuxDriver
>> <UNGLinuxDriver@xxxxxxxxxxxxx>; davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx;
>> kuba@xxxxxxxxxx; pabeni@xxxxxxxxxx
>> Cc: netdev@xxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-
>> kernel@xxxxxxxxxxxxxxx; Parthiban Veerasooran - I17164
>> <Parthiban.Veerasooran@xxxxxxxxxxxxx>
>> 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@xxxxxxxxxxxxx>
>> ---
>> 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
>