Skip to content

Commit

Permalink
Add support for the Davicom DM9161A PHY
Browse files Browse the repository at this point in the history
Distinguish between the Davicom DM9161A PHY and the DM9161E.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
Kim Phillips authored and Jeff Garzik committed May 11, 2007
1 parent f30cac6 commit 12414db
Showing 1 changed file with 26 additions and 8 deletions.
34 changes: 26 additions & 8 deletions drivers/net/phy/davicom.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,15 +139,26 @@ static int dm9161_ack_interrupt(struct phy_device *phydev)
return (err < 0) ? err : 0;
}

static struct phy_driver dm9161_driver = {
static struct phy_driver dm9161e_driver = {
.phy_id = 0x0181b880,
.name = "Davicom DM9161E",
.phy_id_mask = 0x0ffffff0,
.features = PHY_BASIC_FEATURES,
.config_init = dm9161_config_init,
.config_aneg = dm9161_config_aneg,
.read_status = genphy_read_status,
.driver = { .owner = THIS_MODULE,},
.driver = { .owner = THIS_MODULE,},
};

static struct phy_driver dm9161a_driver = {
.phy_id = 0x0181b8a0,
.name = "Davicom DM9161A",
.phy_id_mask = 0x0ffffff0,
.features = PHY_BASIC_FEATURES,
.config_init = dm9161_config_init,
.config_aneg = dm9161_config_aneg,
.read_status = genphy_read_status,
.driver = { .owner = THIS_MODULE,},
};

static struct phy_driver dm9131_driver = {
Expand All @@ -160,31 +171,38 @@ static struct phy_driver dm9131_driver = {
.read_status = genphy_read_status,
.ack_interrupt = dm9161_ack_interrupt,
.config_intr = dm9161_config_intr,
.driver = { .owner = THIS_MODULE,},
.driver = { .owner = THIS_MODULE,},
};

static int __init davicom_init(void)
{
int ret;

ret = phy_driver_register(&dm9161_driver);
ret = phy_driver_register(&dm9161e_driver);
if (ret)
goto err1;

ret = phy_driver_register(&dm9131_driver);
ret = phy_driver_register(&dm9161a_driver);
if (ret)
goto err2;

ret = phy_driver_register(&dm9131_driver);
if (ret)
goto err3;
return 0;

err2:
phy_driver_unregister(&dm9161_driver);
err3:
phy_driver_unregister(&dm9161a_driver);
err2:
phy_driver_unregister(&dm9161e_driver);
err1:
return ret;
}

static void __exit davicom_exit(void)
{
phy_driver_unregister(&dm9161_driver);
phy_driver_unregister(&dm9161e_driver);
phy_driver_unregister(&dm9161a_driver);
phy_driver_unregister(&dm9131_driver);
}

Expand Down

0 comments on commit 12414db

Please sign in to comment.