broadcom.c (ac32378f3eca55123fe917a6bb38e581118de9e3) broadcom.c (529ed12752635ba8a35dc78ec70ed6f42570b4ca)
1/*
2 * drivers/net/phy/broadcom.c
3 *
4 * Broadcom BCM5411, BCM5421 and BCM5461 Gigabit Ethernet
5 * transceivers.
6 *
7 * Copyright (c) 2006 Maciej W. Rozycki
8 *

--- 511 unchanged lines hidden (view full) ---

520 return err;
521}
522
523static struct phy_driver broadcom_drivers[] = {
524{
525 .phy_id = PHY_ID_BCM5411,
526 .phy_id_mask = 0xfffffff0,
527 .name = "Broadcom BCM5411",
1/*
2 * drivers/net/phy/broadcom.c
3 *
4 * Broadcom BCM5411, BCM5421 and BCM5461 Gigabit Ethernet
5 * transceivers.
6 *
7 * Copyright (c) 2006 Maciej W. Rozycki
8 *

--- 511 unchanged lines hidden (view full) ---

520 return err;
521}
522
523static struct phy_driver broadcom_drivers[] = {
524{
525 .phy_id = PHY_ID_BCM5411,
526 .phy_id_mask = 0xfffffff0,
527 .name = "Broadcom BCM5411",
528 .features = PHY_GBIT_FEATURES |
529 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
528 .features = PHY_GBIT_FEATURES,
530 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
531 .config_init = bcm54xx_config_init,
532 .config_aneg = genphy_config_aneg,
533 .read_status = genphy_read_status,
534 .ack_interrupt = bcm_phy_ack_intr,
535 .config_intr = bcm_phy_config_intr,
536}, {
537 .phy_id = PHY_ID_BCM5421,
538 .phy_id_mask = 0xfffffff0,
539 .name = "Broadcom BCM5421",
529 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
530 .config_init = bcm54xx_config_init,
531 .config_aneg = genphy_config_aneg,
532 .read_status = genphy_read_status,
533 .ack_interrupt = bcm_phy_ack_intr,
534 .config_intr = bcm_phy_config_intr,
535}, {
536 .phy_id = PHY_ID_BCM5421,
537 .phy_id_mask = 0xfffffff0,
538 .name = "Broadcom BCM5421",
540 .features = PHY_GBIT_FEATURES |
541 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
539 .features = PHY_GBIT_FEATURES,
542 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
543 .config_init = bcm54xx_config_init,
544 .config_aneg = genphy_config_aneg,
545 .read_status = genphy_read_status,
546 .ack_interrupt = bcm_phy_ack_intr,
547 .config_intr = bcm_phy_config_intr,
548}, {
549 .phy_id = PHY_ID_BCM5461,
550 .phy_id_mask = 0xfffffff0,
551 .name = "Broadcom BCM5461",
540 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
541 .config_init = bcm54xx_config_init,
542 .config_aneg = genphy_config_aneg,
543 .read_status = genphy_read_status,
544 .ack_interrupt = bcm_phy_ack_intr,
545 .config_intr = bcm_phy_config_intr,
546}, {
547 .phy_id = PHY_ID_BCM5461,
548 .phy_id_mask = 0xfffffff0,
549 .name = "Broadcom BCM5461",
552 .features = PHY_GBIT_FEATURES |
553 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
550 .features = PHY_GBIT_FEATURES,
554 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
555 .config_init = bcm54xx_config_init,
556 .config_aneg = genphy_config_aneg,
557 .read_status = genphy_read_status,
558 .ack_interrupt = bcm_phy_ack_intr,
559 .config_intr = bcm_phy_config_intr,
560}, {
561 .phy_id = PHY_ID_BCM54612E,
562 .phy_id_mask = 0xfffffff0,
563 .name = "Broadcom BCM54612E",
551 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
552 .config_init = bcm54xx_config_init,
553 .config_aneg = genphy_config_aneg,
554 .read_status = genphy_read_status,
555 .ack_interrupt = bcm_phy_ack_intr,
556 .config_intr = bcm_phy_config_intr,
557}, {
558 .phy_id = PHY_ID_BCM54612E,
559 .phy_id_mask = 0xfffffff0,
560 .name = "Broadcom BCM54612E",
564 .features = PHY_GBIT_FEATURES |
565 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
561 .features = PHY_GBIT_FEATURES,
566 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
567 .config_init = bcm54xx_config_init,
568 .config_aneg = bcm54612e_config_aneg,
569 .read_status = genphy_read_status,
570 .ack_interrupt = bcm_phy_ack_intr,
571 .config_intr = bcm_phy_config_intr,
572}, {
573 .phy_id = PHY_ID_BCM54616S,
574 .phy_id_mask = 0xfffffff0,
575 .name = "Broadcom BCM54616S",
562 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
563 .config_init = bcm54xx_config_init,
564 .config_aneg = bcm54612e_config_aneg,
565 .read_status = genphy_read_status,
566 .ack_interrupt = bcm_phy_ack_intr,
567 .config_intr = bcm_phy_config_intr,
568}, {
569 .phy_id = PHY_ID_BCM54616S,
570 .phy_id_mask = 0xfffffff0,
571 .name = "Broadcom BCM54616S",
576 .features = PHY_GBIT_FEATURES |
577 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
572 .features = PHY_GBIT_FEATURES,
578 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
579 .config_init = bcm54xx_config_init,
580 .config_aneg = genphy_config_aneg,
581 .read_status = genphy_read_status,
582 .ack_interrupt = bcm_phy_ack_intr,
583 .config_intr = bcm_phy_config_intr,
584}, {
585 .phy_id = PHY_ID_BCM5464,
586 .phy_id_mask = 0xfffffff0,
587 .name = "Broadcom BCM5464",
573 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
574 .config_init = bcm54xx_config_init,
575 .config_aneg = genphy_config_aneg,
576 .read_status = genphy_read_status,
577 .ack_interrupt = bcm_phy_ack_intr,
578 .config_intr = bcm_phy_config_intr,
579}, {
580 .phy_id = PHY_ID_BCM5464,
581 .phy_id_mask = 0xfffffff0,
582 .name = "Broadcom BCM5464",
588 .features = PHY_GBIT_FEATURES |
589 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
583 .features = PHY_GBIT_FEATURES,
590 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
591 .config_init = bcm54xx_config_init,
592 .config_aneg = genphy_config_aneg,
593 .read_status = genphy_read_status,
594 .ack_interrupt = bcm_phy_ack_intr,
595 .config_intr = bcm_phy_config_intr,
596}, {
597 .phy_id = PHY_ID_BCM5481,
598 .phy_id_mask = 0xfffffff0,
599 .name = "Broadcom BCM5481",
584 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
585 .config_init = bcm54xx_config_init,
586 .config_aneg = genphy_config_aneg,
587 .read_status = genphy_read_status,
588 .ack_interrupt = bcm_phy_ack_intr,
589 .config_intr = bcm_phy_config_intr,
590}, {
591 .phy_id = PHY_ID_BCM5481,
592 .phy_id_mask = 0xfffffff0,
593 .name = "Broadcom BCM5481",
600 .features = PHY_GBIT_FEATURES |
601 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
594 .features = PHY_GBIT_FEATURES,
602 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
603 .config_init = bcm54xx_config_init,
604 .config_aneg = bcm5481_config_aneg,
605 .read_status = genphy_read_status,
606 .ack_interrupt = bcm_phy_ack_intr,
607 .config_intr = bcm_phy_config_intr,
608}, {
609 .phy_id = PHY_ID_BCM54810,
610 .phy_id_mask = 0xfffffff0,
611 .name = "Broadcom BCM54810",
595 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
596 .config_init = bcm54xx_config_init,
597 .config_aneg = bcm5481_config_aneg,
598 .read_status = genphy_read_status,
599 .ack_interrupt = bcm_phy_ack_intr,
600 .config_intr = bcm_phy_config_intr,
601}, {
602 .phy_id = PHY_ID_BCM54810,
603 .phy_id_mask = 0xfffffff0,
604 .name = "Broadcom BCM54810",
612 .features = PHY_GBIT_FEATURES |
613 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
605 .features = PHY_GBIT_FEATURES,
614 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
615 .config_init = bcm54xx_config_init,
616 .config_aneg = bcm5481_config_aneg,
617 .read_status = genphy_read_status,
618 .ack_interrupt = bcm_phy_ack_intr,
619 .config_intr = bcm_phy_config_intr,
620}, {
621 .phy_id = PHY_ID_BCM5482,
622 .phy_id_mask = 0xfffffff0,
623 .name = "Broadcom BCM5482",
606 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
607 .config_init = bcm54xx_config_init,
608 .config_aneg = bcm5481_config_aneg,
609 .read_status = genphy_read_status,
610 .ack_interrupt = bcm_phy_ack_intr,
611 .config_intr = bcm_phy_config_intr,
612}, {
613 .phy_id = PHY_ID_BCM5482,
614 .phy_id_mask = 0xfffffff0,
615 .name = "Broadcom BCM5482",
624 .features = PHY_GBIT_FEATURES |
625 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
616 .features = PHY_GBIT_FEATURES,
626 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
627 .config_init = bcm5482_config_init,
628 .config_aneg = genphy_config_aneg,
629 .read_status = bcm5482_read_status,
630 .ack_interrupt = bcm_phy_ack_intr,
631 .config_intr = bcm_phy_config_intr,
632}, {
633 .phy_id = PHY_ID_BCM50610,
634 .phy_id_mask = 0xfffffff0,
635 .name = "Broadcom BCM50610",
617 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
618 .config_init = bcm5482_config_init,
619 .config_aneg = genphy_config_aneg,
620 .read_status = bcm5482_read_status,
621 .ack_interrupt = bcm_phy_ack_intr,
622 .config_intr = bcm_phy_config_intr,
623}, {
624 .phy_id = PHY_ID_BCM50610,
625 .phy_id_mask = 0xfffffff0,
626 .name = "Broadcom BCM50610",
636 .features = PHY_GBIT_FEATURES |
637 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
627 .features = PHY_GBIT_FEATURES,
638 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
639 .config_init = bcm54xx_config_init,
640 .config_aneg = genphy_config_aneg,
641 .read_status = genphy_read_status,
642 .ack_interrupt = bcm_phy_ack_intr,
643 .config_intr = bcm_phy_config_intr,
644}, {
645 .phy_id = PHY_ID_BCM50610M,
646 .phy_id_mask = 0xfffffff0,
647 .name = "Broadcom BCM50610M",
628 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
629 .config_init = bcm54xx_config_init,
630 .config_aneg = genphy_config_aneg,
631 .read_status = genphy_read_status,
632 .ack_interrupt = bcm_phy_ack_intr,
633 .config_intr = bcm_phy_config_intr,
634}, {
635 .phy_id = PHY_ID_BCM50610M,
636 .phy_id_mask = 0xfffffff0,
637 .name = "Broadcom BCM50610M",
648 .features = PHY_GBIT_FEATURES |
649 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
638 .features = PHY_GBIT_FEATURES,
650 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
651 .config_init = bcm54xx_config_init,
652 .config_aneg = genphy_config_aneg,
653 .read_status = genphy_read_status,
654 .ack_interrupt = bcm_phy_ack_intr,
655 .config_intr = bcm_phy_config_intr,
656}, {
657 .phy_id = PHY_ID_BCM57780,
658 .phy_id_mask = 0xfffffff0,
659 .name = "Broadcom BCM57780",
639 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
640 .config_init = bcm54xx_config_init,
641 .config_aneg = genphy_config_aneg,
642 .read_status = genphy_read_status,
643 .ack_interrupt = bcm_phy_ack_intr,
644 .config_intr = bcm_phy_config_intr,
645}, {
646 .phy_id = PHY_ID_BCM57780,
647 .phy_id_mask = 0xfffffff0,
648 .name = "Broadcom BCM57780",
660 .features = PHY_GBIT_FEATURES |
661 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
649 .features = PHY_GBIT_FEATURES,
662 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
663 .config_init = bcm54xx_config_init,
664 .config_aneg = genphy_config_aneg,
665 .read_status = genphy_read_status,
666 .ack_interrupt = bcm_phy_ack_intr,
667 .config_intr = bcm_phy_config_intr,
668}, {
669 .phy_id = PHY_ID_BCMAC131,
670 .phy_id_mask = 0xfffffff0,
671 .name = "Broadcom BCMAC131",
650 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
651 .config_init = bcm54xx_config_init,
652 .config_aneg = genphy_config_aneg,
653 .read_status = genphy_read_status,
654 .ack_interrupt = bcm_phy_ack_intr,
655 .config_intr = bcm_phy_config_intr,
656}, {
657 .phy_id = PHY_ID_BCMAC131,
658 .phy_id_mask = 0xfffffff0,
659 .name = "Broadcom BCMAC131",
672 .features = PHY_BASIC_FEATURES |
673 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
660 .features = PHY_BASIC_FEATURES,
674 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
675 .config_init = brcm_fet_config_init,
676 .config_aneg = genphy_config_aneg,
677 .read_status = genphy_read_status,
678 .ack_interrupt = brcm_fet_ack_interrupt,
679 .config_intr = brcm_fet_config_intr,
680}, {
681 .phy_id = PHY_ID_BCM5241,
682 .phy_id_mask = 0xfffffff0,
683 .name = "Broadcom BCM5241",
661 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
662 .config_init = brcm_fet_config_init,
663 .config_aneg = genphy_config_aneg,
664 .read_status = genphy_read_status,
665 .ack_interrupt = brcm_fet_ack_interrupt,
666 .config_intr = brcm_fet_config_intr,
667}, {
668 .phy_id = PHY_ID_BCM5241,
669 .phy_id_mask = 0xfffffff0,
670 .name = "Broadcom BCM5241",
684 .features = PHY_BASIC_FEATURES |
685 SUPPORTED_Pause | SUPPORTED_Asym_Pause,
671 .features = PHY_BASIC_FEATURES,
686 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
687 .config_init = brcm_fet_config_init,
688 .config_aneg = genphy_config_aneg,
689 .read_status = genphy_read_status,
690 .ack_interrupt = brcm_fet_ack_interrupt,
691 .config_intr = brcm_fet_config_intr,
692} };
693

--- 21 unchanged lines hidden ---
672 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
673 .config_init = brcm_fet_config_init,
674 .config_aneg = genphy_config_aneg,
675 .read_status = genphy_read_status,
676 .ack_interrupt = brcm_fet_ack_interrupt,
677 .config_intr = brcm_fet_config_intr,
678} };
679

--- 21 unchanged lines hidden ---