diff options
Diffstat (limited to 'drivers/net/phy')
-rw-r--r-- | drivers/net/phy/broadcom.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index fd4fc66b6d6e..190efc3301c6 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c | |||
@@ -540,6 +540,21 @@ static struct phy_driver bcm50610_driver = { | |||
540 | .driver = { .owner = THIS_MODULE }, | 540 | .driver = { .owner = THIS_MODULE }, |
541 | }; | 541 | }; |
542 | 542 | ||
543 | static struct phy_driver bcm57780_driver = { | ||
544 | .phy_id = 0x03625d90, | ||
545 | .phy_id_mask = 0xfffffff0, | ||
546 | .name = "Broadcom BCM57780", | ||
547 | .features = PHY_GBIT_FEATURES | | ||
548 | SUPPORTED_Pause | SUPPORTED_Asym_Pause, | ||
549 | .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT, | ||
550 | .config_init = bcm54xx_config_init, | ||
551 | .config_aneg = genphy_config_aneg, | ||
552 | .read_status = genphy_read_status, | ||
553 | .ack_interrupt = bcm54xx_ack_interrupt, | ||
554 | .config_intr = bcm54xx_config_intr, | ||
555 | .driver = { .owner = THIS_MODULE }, | ||
556 | }; | ||
557 | |||
543 | static int __init broadcom_init(void) | 558 | static int __init broadcom_init(void) |
544 | { | 559 | { |
545 | int ret; | 560 | int ret; |
@@ -565,8 +580,13 @@ static int __init broadcom_init(void) | |||
565 | ret = phy_driver_register(&bcm50610_driver); | 580 | ret = phy_driver_register(&bcm50610_driver); |
566 | if (ret) | 581 | if (ret) |
567 | goto out_50610; | 582 | goto out_50610; |
583 | ret = phy_driver_register(&bcm57780_driver); | ||
584 | if (ret) | ||
585 | goto out_57780; | ||
568 | return ret; | 586 | return ret; |
569 | 587 | ||
588 | out_57780: | ||
589 | phy_driver_unregister(&bcm50610_driver); | ||
570 | out_50610: | 590 | out_50610: |
571 | phy_driver_unregister(&bcm5482_driver); | 591 | phy_driver_unregister(&bcm5482_driver); |
572 | out_5482: | 592 | out_5482: |
@@ -585,6 +605,7 @@ out_5411: | |||
585 | 605 | ||
586 | static void __exit broadcom_exit(void) | 606 | static void __exit broadcom_exit(void) |
587 | { | 607 | { |
608 | phy_driver_unregister(&bcm57780_driver); | ||
588 | phy_driver_unregister(&bcm50610_driver); | 609 | phy_driver_unregister(&bcm50610_driver); |
589 | phy_driver_unregister(&bcm5482_driver); | 610 | phy_driver_unregister(&bcm5482_driver); |
590 | phy_driver_unregister(&bcm5481_driver); | 611 | phy_driver_unregister(&bcm5481_driver); |