aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2008-04-14 23:35:41 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:31:32 -0400
commitb1394f961a90a7195ea177ee56d54fe5c37181ca (patch)
treeca6b100d904a656eb599eb9d9b2f493a82be935e /drivers
parentd96a51f6b8040ef2b25b88032f23ffdb1ddba681 (diff)
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: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/phy/broadcom.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c
index f5310ed3760d..60c5cfe96918 100644
--- a/drivers/net/phy/broadcom.c
+++ b/drivers/net/phy/broadcom.c
@@ -176,6 +176,20 @@ static struct phy_driver bcm5461_driver = {
176 .driver = { .owner = THIS_MODULE }, 176 .driver = { .owner = THIS_MODULE },
177}; 177};
178 178
179static struct phy_driver bcm5464_driver = {
180 .phy_id = 0x002060b0,
181 .phy_id_mask = 0xfffffff0,
182 .name = "Broadcom BCM5464",
183 .features = PHY_GBIT_FEATURES,
184 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
185 .config_init = bcm54xx_config_init,
186 .config_aneg = genphy_config_aneg,
187 .read_status = genphy_read_status,
188 .ack_interrupt = bcm54xx_ack_interrupt,
189 .config_intr = bcm54xx_config_intr,
190 .driver = { .owner = THIS_MODULE },
191};
192
179static struct phy_driver bcm5481_driver = { 193static struct phy_driver bcm5481_driver = {
180 .phy_id = 0x0143bca0, 194 .phy_id = 0x0143bca0,
181 .phy_id_mask = 0xfffffff0, 195 .phy_id_mask = 0xfffffff0,
@@ -217,6 +231,9 @@ static int __init broadcom_init(void)
217 ret = phy_driver_register(&bcm5461_driver); 231 ret = phy_driver_register(&bcm5461_driver);
218 if (ret) 232 if (ret)
219 goto out_5461; 233 goto out_5461;
234 ret = phy_driver_register(&bcm5464_driver);
235 if (ret)
236 goto out_5464;
220 ret = phy_driver_register(&bcm5481_driver); 237 ret = phy_driver_register(&bcm5481_driver);
221 if (ret) 238 if (ret)
222 goto out_5481; 239 goto out_5481;
@@ -228,6 +245,8 @@ static int __init broadcom_init(void)
228out_5482: 245out_5482:
229 phy_driver_unregister(&bcm5481_driver); 246 phy_driver_unregister(&bcm5481_driver);
230out_5481: 247out_5481:
248 phy_driver_unregister(&bcm5464_driver);
249out_5464:
231 phy_driver_unregister(&bcm5461_driver); 250 phy_driver_unregister(&bcm5461_driver);
232out_5461: 251out_5461:
233 phy_driver_unregister(&bcm5421_driver); 252 phy_driver_unregister(&bcm5421_driver);
@@ -241,6 +260,7 @@ static void __exit broadcom_exit(void)
241{ 260{
242 phy_driver_unregister(&bcm5482_driver); 261 phy_driver_unregister(&bcm5482_driver);
243 phy_driver_unregister(&bcm5481_driver); 262 phy_driver_unregister(&bcm5481_driver);
263 phy_driver_unregister(&bcm5464_driver);
244 phy_driver_unregister(&bcm5461_driver); 264 phy_driver_unregister(&bcm5461_driver);
245 phy_driver_unregister(&bcm5421_driver); 265 phy_driver_unregister(&bcm5421_driver);
246 phy_driver_unregister(&bcm5411_driver); 266 phy_driver_unregister(&bcm5411_driver);