]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/usb/eth/smsc95xx.c
net: cosmetic: Fix var naming net <-> eth drivers
[karo-tx-uboot.git] / drivers / usb / eth / smsc95xx.c
index 15fd9a9f785de9ce20a8b185e68d910fde83598c..a7e50d6a6c566cb13e8c1f92f6717803e290e191 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2011 The Chromium OS Authors.
  * Copyright (C) 2009 NVIDIA, Corporation
+ * Copyright (C) 2007-2008 SMSC (Steve Glendinning)
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /* 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
@@ -348,7 +355,7 @@ static int smsc95xx_init_mac_address(struct eth_device *eth,
        /* try reading mac address from EEPROM */
        if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
                        eth->enetaddr) == 0) {
-               if (is_valid_ether_addr(eth->enetaddr)) {
+               if (is_valid_ethaddr(eth->enetaddr)) {
                        /* eeprom values are valid so use them */
                        debug("MAC address read from EEPROM\n");
                        return 0;
@@ -591,6 +598,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);
@@ -745,7 +760,8 @@ static int smsc95xx_recv(struct eth_device *eth)
                }
 
                /* Notify net stack */
-               NetReceive(buf_ptr + sizeof(packet_len), packet_len - 4);
+               net_process_received_packet(buf_ptr + sizeof(packet_len),
+                                           packet_len - 4);
 
                /* Adjust for next iteration */
                actual_len -= sizeof(packet_len) + packet_len;
@@ -785,6 +801,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 */
 };