diff options
author | Guennadi Liakhovetski <lg@denx.de> | 2008-10-13 00:05:14 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-10-13 00:05:14 -0400 |
commit | c6dcb8278876ebf266e2088b0b45b28aa66b7693 (patch) | |
tree | a767dbee0ec2ffcdf14bd2262ad6fd21a5a0860d | |
parent | 97e92d9d4b52c1257e7891715115e9d00c6b20bc (diff) |
smc911x: Add support for LAN921{5,7,8} chips from SMSC
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>
-rw-r--r-- | drivers/net/smc911x.c | 6 | ||||
-rw-r--r-- | drivers/net/smc911x.h | 14 |
2 files changed, 14 insertions, 6 deletions
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index 3d19d00e8eec..8aa7460ef0e3 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c | |||
@@ -685,8 +685,10 @@ static void smc911x_phy_detect(struct net_device *dev) | |||
685 | * PHY#1 to PHY#31, and then PHY#0 last. | 685 | * PHY#1 to PHY#31, and then PHY#0 last. |
686 | */ | 686 | */ |
687 | switch(lp->version) { | 687 | switch(lp->version) { |
688 | case 0x115: | 688 | case CHIP_9115: |
689 | case 0x117: | 689 | case CHIP_9117: |
690 | case CHIP_9215: | ||
691 | case CHIP_9217: | ||
690 | cfg = SMC_GET_HW_CFG(lp); | 692 | cfg = SMC_GET_HW_CFG(lp); |
691 | if (cfg & HW_CFG_EXT_PHY_DET_) { | 693 | if (cfg & HW_CFG_EXT_PHY_DET_) { |
692 | cfg &= ~HW_CFG_PHY_CLK_SEL_; | 694 | cfg &= ~HW_CFG_PHY_CLK_SEL_; |
diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h index 2abfc2845198..bf6240f23f5d 100644 --- a/drivers/net/smc911x.h +++ b/drivers/net/smc911x.h | |||
@@ -666,10 +666,13 @@ smc_pxa_dma_outsl(struct smc911x_local *lp, u_long physaddr, | |||
666 | #define LAN911X_INTERNAL_PHY_ID (0x0007C000) | 666 | #define LAN911X_INTERNAL_PHY_ID (0x0007C000) |
667 | 667 | ||
668 | /* Chip ID values */ | 668 | /* Chip ID values */ |
669 | #define CHIP_9115 0x115 | 669 | #define CHIP_9115 0x0115 |
670 | #define CHIP_9116 0x116 | 670 | #define CHIP_9116 0x0116 |
671 | #define CHIP_9117 0x117 | 671 | #define CHIP_9117 0x0117 |
672 | #define CHIP_9118 0x118 | 672 | #define CHIP_9118 0x0118 |
673 | #define CHIP_9215 0x115A | ||
674 | #define CHIP_9217 0x117A | ||
675 | #define CHIP_9218 0x118A | ||
673 | 676 | ||
674 | struct chip_id { | 677 | struct chip_id { |
675 | u16 id; | 678 | u16 id; |
@@ -681,6 +684,9 @@ static const struct chip_id chip_ids[] = { | |||
681 | { CHIP_9116, "LAN9116" }, | 684 | { CHIP_9116, "LAN9116" }, |
682 | { CHIP_9117, "LAN9117" }, | 685 | { CHIP_9117, "LAN9117" }, |
683 | { CHIP_9118, "LAN9118" }, | 686 | { CHIP_9118, "LAN9118" }, |
687 | { CHIP_9215, "LAN9215" }, | ||
688 | { CHIP_9217, "LAN9217" }, | ||
689 | { CHIP_9218, "LAN9218" }, | ||
684 | { 0, NULL }, | 690 | { 0, NULL }, |
685 | }; | 691 | }; |
686 | 692 | ||