summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTroy Kisky <troy.kisky@boundarydevices.com>2013-07-02 15:37:35 -0700
committerEric Nelson <eric.nelson@boundarydevices.com>2013-09-03 14:13:19 -0700
commite8cc7ada5ada64885e2e601279dc29b04f587e44 (patch)
tree3a0fa9a6cbf7e431efbca38b8495a18441b4e680 /drivers
parentd60ee4c19038dc0663a178e08c057c34178aa392 (diff)
micrel: add ksz9031 support
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/phy/micrel.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 60232a9f8a65..dc24a0d6eaf8 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -209,6 +209,21 @@ static struct phy_driver ksz9021_driver = {
.driver = { .owner = THIS_MODULE, },
};
+static struct phy_driver ksz9031_driver = {
+ .phy_id = PHY_ID_KSZ9031,
+ .phy_id_mask = 0x00fffff0,
+ .name = "Micrel KSZ9031 Gigabit PHY",
+ .features = (PHY_GBIT_FEATURES | SUPPORTED_Pause
+ | SUPPORTED_Asym_Pause),
+ .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
+ .config_init = kszphy_config_init,
+ .config_aneg = genphy_config_aneg,
+ .read_status = genphy_read_status,
+ .ack_interrupt = kszphy_ack_interrupt,
+ .config_intr = ksz9021_config_intr,
+ .driver = { .owner = THIS_MODULE, },
+};
+
static int __init ksphy_init(void)
{
int ret;
@@ -230,9 +245,14 @@ static int __init ksphy_init(void)
ret = phy_driver_register(&ks8051_driver);
if (ret)
goto err5;
+ ret = phy_driver_register(&ksz9031_driver);
+ if (ret)
+ goto err6;
return 0;
+err6:
+ phy_driver_unregister(&ksz9031_driver);
err5:
phy_driver_unregister(&ks8041_driver);
err4:
@@ -250,6 +270,7 @@ static void __exit ksphy_exit(void)
phy_driver_unregister(&ks8001_driver);
phy_driver_unregister(&ks8737_driver);
phy_driver_unregister(&ksz9021_driver);
+ phy_driver_unregister(&ksz9031_driver);
phy_driver_unregister(&ks8041_driver);
phy_driver_unregister(&ks8051_driver);
}
@@ -263,6 +284,7 @@ MODULE_LICENSE("GPL");
static struct mdio_device_id __maybe_unused micrel_tbl[] = {
{ PHY_ID_KSZ9021, 0x00ffffff },
+ { PHY_ID_KSZ9031, 0x00fffff0 },
{ PHY_ID_KS8001, 0x00ffffff },
{ PHY_ID_KS8737, 0x00ffffff },
{ PHY_ID_KS8041, 0x00ffffff },