]> git.sur5r.net Git - u-boot/blobdiff - drivers/usb/eth/smsc95xx.c
Merge branch 'u-boot-sunxi/master' into 'u-boot-arm/master'
[u-boot] / drivers / usb / eth / smsc95xx.c
index 15fd9a9f785de9ce20a8b185e68d910fde83598c..7a7a6767c70637df54e4b11d923d229d3a810a58 100644 (file)
 
 /* SMSC LAN95xx based USB 2.0 Ethernet Devices */
 
+/* LED defines */
+#define LED_GPIO_CFG                   (0x24)
+#define LED_GPIO_CFG_SPD_LED           (0x01000000)
+#define LED_GPIO_CFG_LNK_LED           (0x00100000)
+#define LED_GPIO_CFG_FDX_LED           (0x00010000)
+
 /* Tx command words */
 #define TX_CMD_A_FIRST_SEG_            0x00002000
 #define TX_CMD_A_LAST_SEG_             0x00001000
@@ -591,6 +597,14 @@ static int smsc95xx_init(struct eth_device *eth, bd_t *bd)
                return ret;
        debug("ID_REV = 0x%08x\n", read_buf);
 
+       /* Configure GPIO pins as LED outputs */
+       write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
+               LED_GPIO_CFG_FDX_LED;
+       ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf);
+       if (ret < 0)
+               return ret;
+       debug("LED_GPIO_CFG set\n");
+
        /* Init Tx */
        write_buf = 0;
        ret = smsc95xx_write_reg(dev, FLOW, write_buf);
@@ -785,6 +799,7 @@ static const struct smsc95xx_dongle smsc95xx_dongles[] = {
        { 0x0424, 0x9500 },     /* LAN9500 Ethernet */
        { 0x0424, 0x9730 },     /* LAN9730 Ethernet (HSIC) */
        { 0x0424, 0x9900 },     /* SMSC9500 USB Ethernet Device (SAL10) */
+       { 0x0424, 0x9e00 },     /* LAN9500A Ethernet */
        { 0x0000, 0x0000 }      /* END - Do not remove */
 };