Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>
---
 drivers/net/smc911x.c |   87 ++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/net/smc911x.h |   88 -------------------------------------------------
 2 files changed, 87 insertions(+), 88 deletions(-)

diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 0507a9a..0b63676 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -36,6 +36,93 @@ void pkt_data_push(u32 addr, u32 val) \
 
 #define mdelay(n)       udelay((n)*1000)
 
+static u32 smc911x_get_mac_csr(u8 reg)
+{
+       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
+               ;
+       smc911x_reg_write(MAC_CSR_CMD, MAC_CSR_CMD_CSR_BUSY | 
MAC_CSR_CMD_R_NOT_W | reg);
+       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
+               ;
+
+       return smc911x_reg_read(MAC_CSR_DATA);
+}
+
+static void smc911x_set_mac_csr(u8 reg, u32 data)
+{
+       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
+               ;
+       smc911x_reg_write(MAC_CSR_DATA, data);
+       smc911x_reg_write(MAC_CSR_CMD, MAC_CSR_CMD_CSR_BUSY | reg);
+       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
+               ;
+}
+
+static int smc911x_detect_chip(void)
+{
+       unsigned long val, i;
+
+       val = smc911x_reg_read(BYTE_TEST);
+       if (val != 0x87654321) {
+               printf(DRIVERNAME ": Invalid chip endian 0x%08lx\n", val);
+               return -1;
+       }
+
+       val = smc911x_reg_read(ID_REV) >> 16;
+       for (i = 0; chip_ids[i].id != 0; i++) {
+               if (chip_ids[i].id == val) break;
+       }
+       if (!chip_ids[i].id) {
+               printf(DRIVERNAME ": Unknown chip ID %04lx\n", val);
+               return -1;
+       }
+
+       printf(DRIVERNAME ": detected %s controller\n", chip_ids[i].name);
+
+       return 0;
+}
+
+static void smc911x_reset(void)
+{
+       int timeout;
+
+       /* Take out of PM setting first */
+       if (smc911x_reg_read(PMT_CTRL) & PMT_CTRL_READY) {
+               /* Write to the bytetest will take out of powerdown */
+               smc911x_reg_write(BYTE_TEST, 0x0);
+
+               timeout = 10;
+
+               while (timeout-- && !(smc911x_reg_read(PMT_CTRL) & 
PMT_CTRL_READY))
+                       udelay(10);
+               if (!timeout) {
+                       printf(DRIVERNAME
+                               ": timeout waiting for PM restore\n");
+                       return;
+               }
+       }
+
+       /* Disable interrupts */
+       smc911x_reg_write(INT_EN, 0);
+
+       smc911x_reg_write(HW_CFG, HW_CFG_SRST);
+
+       timeout = 1000;
+       while (timeout-- && smc911x_reg_read(E2P_CMD) & E2P_CMD_EPC_BUSY)
+               udelay(10);
+
+       if (!timeout) {
+               printf(DRIVERNAME ": reset timeout\n");
+               return;
+       }
+
+       /* Reset the FIFO level and flow control settings */
+       smc911x_set_mac_csr(FLOW, FLOW_FCPT | FLOW_FCEN);
+       smc911x_reg_write(AFC_CFG, 0x0050287F);
+
+       /* Set to LED outputs */
+       smc911x_reg_write(GPIO_CFG, 0x70070000);
+}
+
 static int smx911x_handle_mac_address(bd_t *bd)
 {
        unsigned long addrh, addrl;
diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
index 80d2ce0..9176448 100644
--- a/drivers/net/smc911x.h
+++ b/drivers/net/smc911x.h
@@ -401,94 +401,6 @@ static const struct chip_id chip_ids[] =  {
        { 0, NULL },
 };
 
-
 #define DRIVERNAME "smc911x"
 
-static u32 smc911x_get_mac_csr(u8 reg)
-{
-       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
-               ;
-       smc911x_reg_write(MAC_CSR_CMD, MAC_CSR_CMD_CSR_BUSY | 
MAC_CSR_CMD_R_NOT_W | reg);
-       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
-               ;
-
-       return smc911x_reg_read(MAC_CSR_DATA);
-}
-
-static void smc911x_set_mac_csr(u8 reg, u32 data)
-{
-       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
-               ;
-       smc911x_reg_write(MAC_CSR_DATA, data);
-       smc911x_reg_write(MAC_CSR_CMD, MAC_CSR_CMD_CSR_BUSY | reg);
-       while (smc911x_reg_read(MAC_CSR_CMD) & MAC_CSR_CMD_CSR_BUSY)
-               ;
-}
-
-static int smc911x_detect_chip(void)
-{
-       unsigned long val, i;
-
-       val = smc911x_reg_read(BYTE_TEST);
-       if (val != 0x87654321) {
-               printf(DRIVERNAME ": Invalid chip endian 0x%08lx\n", val);
-               return -1;
-       }
-
-       val = smc911x_reg_read(ID_REV) >> 16;
-       for (i = 0; chip_ids[i].id != 0; i++) {
-               if (chip_ids[i].id == val) break;
-       }
-       if (!chip_ids[i].id) {
-               printf(DRIVERNAME ": Unknown chip ID %04lx\n", val);
-               return -1;
-       }
-
-       printf(DRIVERNAME ": detected %s controller\n", chip_ids[i].name);
-
-       return 0;
-}
-
-static void smc911x_reset(void)
-{
-       int timeout;
-
-       /* Take out of PM setting first */
-       if (smc911x_reg_read(PMT_CTRL) & PMT_CTRL_READY) {
-               /* Write to the bytetest will take out of powerdown */
-               smc911x_reg_write(BYTE_TEST, 0x0);
-
-               timeout = 10;
-
-               while (timeout-- && !(smc911x_reg_read(PMT_CTRL) & 
PMT_CTRL_READY))
-                       udelay(10);
-               if (!timeout) {
-                       printf(DRIVERNAME
-                               ": timeout waiting for PM restore\n");
-                       return;
-               }
-       }
-
-       /* Disable interrupts */
-       smc911x_reg_write(INT_EN, 0);
-
-       smc911x_reg_write(HW_CFG, HW_CFG_SRST);
-
-       timeout = 1000;
-       while (timeout-- && smc911x_reg_read(E2P_CMD) & E2P_CMD_EPC_BUSY)
-               udelay(10);
-
-       if (!timeout) {
-               printf(DRIVERNAME ": reset timeout\n");
-               return;
-       }
-
-       /* Reset the FIFO level and flow control settings */
-       smc911x_set_mac_csr(FLOW, FLOW_FCPT | FLOW_FCEN);
-       smc911x_reg_write(AFC_CFG, 0x0050287F);
-
-       /* Set to LED outputs */
-       smc911x_reg_write(GPIO_CFG, 0x70070000);
-}
-
 #endif
-- 
1.6.3.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to