aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Glendinning <steve.glendinning@smsc.com>2009-05-01 01:46:51 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-01 18:27:02 -0400
commitf293501c61c50b014ad2347661c6acd951c80fed (patch)
tree8b6327749d50bd2fdf2fb15e2bd54e1f3d028e70
parent2382b15bcc39228572ccf1d9a1185dcabb84c833 (diff)
smsc95xx: configure LED outputs
SMSC LAN9500 has dual purpose GPIO/LED pins, and by default at power-on these are configured as GPIOs. This means that if LEDs are fitted they won't ever light. This patch sets them to be LED outputs for speed, duplex and link/activity. Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/usb/smsc95xx.c10
-rw-r--r--drivers/net/usb/smsc95xx.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
index dc1665326592..0fd68a5f9d49 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -941,6 +941,16 @@ static int smsc95xx_reset(struct usbnet *dev)
941 if (netif_msg_ifup(dev)) 941 if (netif_msg_ifup(dev))
942 devdbg(dev, "ID_REV = 0x%08x", read_buf); 942 devdbg(dev, "ID_REV = 0x%08x", read_buf);
943 943
944 /* Configure GPIO pins as LED outputs */
945 write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
946 LED_GPIO_CFG_FDX_LED;
947 ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf);
948 if (ret < 0) {
949 devwarn(dev, "Failed to write LED_GPIO_CFG register, ret=%d",
950 ret);
951 return ret;
952 }
953
944 /* Init Tx */ 954 /* Init Tx */
945 write_buf = 0; 955 write_buf = 0;
946 ret = smsc95xx_write_reg(dev, FLOW, write_buf); 956 ret = smsc95xx_write_reg(dev, FLOW, write_buf);
diff --git a/drivers/net/usb/smsc95xx.h b/drivers/net/usb/smsc95xx.h
index 66b5c84f302e..86bc44977fbd 100644
--- a/drivers/net/usb/smsc95xx.h
+++ b/drivers/net/usb/smsc95xx.h
@@ -99,6 +99,9 @@
99#define PM_CTL_WUPS_MULTI_ (0x00000003) 99#define PM_CTL_WUPS_MULTI_ (0x00000003)
100 100
101#define LED_GPIO_CFG (0x24) 101#define LED_GPIO_CFG (0x24)
102#define LED_GPIO_CFG_SPD_LED (0x01000000)
103#define LED_GPIO_CFG_LNK_LED (0x00100000)
104#define LED_GPIO_CFG_FDX_LED (0x00010000)
102 105
103#define GPIO_CFG (0x28) 106#define GPIO_CFG (0x28)
104 107