Commit b1394f96 authored by Paul Gortmaker's avatar Paul Gortmaker Committed by Jeff Garzik

PHY: add BCM5464 support to broadcom PHY driver

The BCM5464 can be used with the current broadcom PHY driver
by just adding the appropriate chip ID and using the existing
support within.
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent d96a51f6
...@@ -176,6 +176,20 @@ static struct phy_driver bcm5461_driver = { ...@@ -176,6 +176,20 @@ static struct phy_driver bcm5461_driver = {
.driver = { .owner = THIS_MODULE }, .driver = { .owner = THIS_MODULE },
}; };
static struct phy_driver bcm5464_driver = {
.phy_id = 0x002060b0,
.phy_id_mask = 0xfffffff0,
.name = "Broadcom BCM5464",
.features = PHY_GBIT_FEATURES,
.flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
.config_init = bcm54xx_config_init,
.config_aneg = genphy_config_aneg,
.read_status = genphy_read_status,
.ack_interrupt = bcm54xx_ack_interrupt,
.config_intr = bcm54xx_config_intr,
.driver = { .owner = THIS_MODULE },
};
static struct phy_driver bcm5481_driver = { static struct phy_driver bcm5481_driver = {
.phy_id = 0x0143bca0, .phy_id = 0x0143bca0,
.phy_id_mask = 0xfffffff0, .phy_id_mask = 0xfffffff0,
...@@ -217,6 +231,9 @@ static int __init broadcom_init(void) ...@@ -217,6 +231,9 @@ static int __init broadcom_init(void)
ret = phy_driver_register(&bcm5461_driver); ret = phy_driver_register(&bcm5461_driver);
if (ret) if (ret)
goto out_5461; goto out_5461;
ret = phy_driver_register(&bcm5464_driver);
if (ret)
goto out_5464;
ret = phy_driver_register(&bcm5481_driver); ret = phy_driver_register(&bcm5481_driver);
if (ret) if (ret)
goto out_5481; goto out_5481;
...@@ -228,6 +245,8 @@ static int __init broadcom_init(void) ...@@ -228,6 +245,8 @@ static int __init broadcom_init(void)
out_5482: out_5482:
phy_driver_unregister(&bcm5481_driver); phy_driver_unregister(&bcm5481_driver);
out_5481: out_5481:
phy_driver_unregister(&bcm5464_driver);
out_5464:
phy_driver_unregister(&bcm5461_driver); phy_driver_unregister(&bcm5461_driver);
out_5461: out_5461:
phy_driver_unregister(&bcm5421_driver); phy_driver_unregister(&bcm5421_driver);
...@@ -241,6 +260,7 @@ static void __exit broadcom_exit(void) ...@@ -241,6 +260,7 @@ static void __exit broadcom_exit(void)
{ {
phy_driver_unregister(&bcm5482_driver); phy_driver_unregister(&bcm5482_driver);
phy_driver_unregister(&bcm5481_driver); phy_driver_unregister(&bcm5481_driver);
phy_driver_unregister(&bcm5464_driver);
phy_driver_unregister(&bcm5461_driver); phy_driver_unregister(&bcm5461_driver);
phy_driver_unregister(&bcm5421_driver); phy_driver_unregister(&bcm5421_driver);
phy_driver_unregister(&bcm5411_driver); phy_driver_unregister(&bcm5411_driver);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment