smc911x: Add support for LAN921{5,7,8} chips from SMSC
authorGuennadi Liakhovetski <lg@denx.de>
Mon, 13 Oct 2008 04:05:14 +0000 (21:05 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Oct 2008 04:05:14 +0000 (21:05 -0700)
LAN92{5,7,8} chips from SMSC are register compatible with LAN911{5,6,7,8}
controllers, and only add support for HP Auto-MDIX. LAN9218 doesn't have
an external MII interface.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/smc911x.c
drivers/net/smc911x.h

index 3d19d00e8eecf1c1af4110b3fd1e1bf6e8327d8b..8aa7460ef0e305733ff83cb1d655108861afd4be 100644 (file)
@@ -685,8 +685,10 @@ static void smc911x_phy_detect(struct net_device *dev)
         * PHY#1 to PHY#31, and then PHY#0 last.
         */
        switch(lp->version) {
-               case 0x115:
-               case 0x117:
+               case CHIP_9115:
+               case CHIP_9117:
+               case CHIP_9215:
+               case CHIP_9217:
                        cfg = SMC_GET_HW_CFG(lp);
                        if (cfg & HW_CFG_EXT_PHY_DET_) {
                                cfg &= ~HW_CFG_PHY_CLK_SEL_;
index 2abfc284519829ee05856b26b80c0ce45f2e27b5..bf6240f23f5d77109919057cb213c06167963267 100644 (file)
@@ -666,10 +666,13 @@ smc_pxa_dma_outsl(struct smc911x_local *lp, u_long physaddr,
 #define LAN911X_INTERNAL_PHY_ID                (0x0007C000)
 
 /* Chip ID values */
-#define CHIP_9115      0x115
-#define CHIP_9116      0x116
-#define CHIP_9117      0x117
-#define CHIP_9118      0x118
+#define CHIP_9115      0x0115
+#define CHIP_9116      0x0116
+#define CHIP_9117      0x0117
+#define CHIP_9118      0x0118
+#define CHIP_9215      0x115A
+#define CHIP_9217      0x117A
+#define CHIP_9218      0x118A
 
 struct chip_id {
        u16 id;
@@ -681,6 +684,9 @@ static const struct chip_id chip_ids[] =  {
        { CHIP_9116, "LAN9116" },
        { CHIP_9117, "LAN9117" },
        { CHIP_9118, "LAN9118" },
+       { CHIP_9215, "LAN9215" },
+       { CHIP_9217, "LAN9217" },
+       { CHIP_9218, "LAN9218" },
        { 0, NULL },
 };