phy/micrel: Add support for KSZ8031
authorHector Palacios <hector.palacios@digi.com>
Sun, 10 Mar 2013 22:50:02 +0000 (22:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 12 Mar 2013 10:50:58 +0000 (06:50 -0400)
Micrel PHY KSZ8031 is similar to KSZ8021 and also requires the special
initialization of "Operation Mode Strap Override" in reg 0x16
introduced in 212ea99 (phy/micrel: Implement support for KSZ8021).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/micrel.c
include/linux/micrel_phy.h

index abf7b61..018af18 100644 (file)
@@ -192,6 +192,19 @@ static struct phy_driver ksphy_driver[] = {
        .config_intr    = kszphy_config_intr,
        .driver         = { .owner = THIS_MODULE,},
 }, {
+       .phy_id         = PHY_ID_KSZ8031,
+       .phy_id_mask    = 0x00ffffff,
+       .name           = "Micrel KSZ8031",
+       .features       = (PHY_BASIC_FEATURES | SUPPORTED_Pause |
+                          SUPPORTED_Asym_Pause),
+       .flags          = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
+       .config_init    = ksz8021_config_init,
+       .config_aneg    = genphy_config_aneg,
+       .read_status    = genphy_read_status,
+       .ack_interrupt  = kszphy_ack_interrupt,
+       .config_intr    = kszphy_config_intr,
+       .driver         = { .owner = THIS_MODULE,},
+}, {
        .phy_id         = PHY_ID_KSZ8041,
        .phy_id_mask    = 0x00fffff0,
        .name           = "Micrel KSZ8041",
@@ -325,6 +338,7 @@ static struct mdio_device_id __maybe_unused micrel_tbl[] = {
        { PHY_ID_KSZ8001, 0x00ffffff },
        { PHY_ID_KS8737, 0x00fffff0 },
        { PHY_ID_KSZ8021, 0x00ffffff },
+       { PHY_ID_KSZ8031, 0x00ffffff },
        { PHY_ID_KSZ8041, 0x00fffff0 },
        { PHY_ID_KSZ8051, 0x00fffff0 },
        { PHY_ID_KSZ8061, 0x00fffff0 },
index 9dbb41a..8752dbb 100644 (file)
@@ -19,6 +19,7 @@
 #define PHY_ID_KSZ9021         0x00221610
 #define PHY_ID_KS8737          0x00221720
 #define PHY_ID_KSZ8021         0x00221555
+#define PHY_ID_KSZ8031         0x00221556
 #define PHY_ID_KSZ8041         0x00221510
 #define PHY_ID_KSZ8051         0x00221550
 /* same id: ks8001 Rev. A/B, and ks8721 Rev 3. */