@@ -834,6 +834,21 @@ static struct phy_driver bcmac131_driver = {
834834 .driver = { .owner = THIS_MODULE },
835835};
836836
837+ static struct phy_driver bcm5241_driver = {
838+ .phy_id = PHY_ID_BCM5241 ,
839+ .phy_id_mask = 0xfffffff0 ,
840+ .name = "Broadcom BCM5241" ,
841+ .features = PHY_BASIC_FEATURES |
842+ SUPPORTED_Pause | SUPPORTED_Asym_Pause ,
843+ .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT ,
844+ .config_init = brcm_fet_config_init ,
845+ .config_aneg = genphy_config_aneg ,
846+ .read_status = genphy_read_status ,
847+ .ack_interrupt = brcm_fet_ack_interrupt ,
848+ .config_intr = brcm_fet_config_intr ,
849+ .driver = { .owner = THIS_MODULE },
850+ };
851+
837852static int __init broadcom_init (void )
838853{
839854 int ret ;
@@ -868,8 +883,13 @@ static int __init broadcom_init(void)
868883 ret = phy_driver_register (& bcmac131_driver );
869884 if (ret )
870885 goto out_ac131 ;
886+ ret = phy_driver_register (& bcm5241_driver );
887+ if (ret )
888+ goto out_5241 ;
871889 return ret ;
872890
891+ out_5241 :
892+ phy_driver_unregister (& bcmac131_driver );
873893out_ac131 :
874894 phy_driver_unregister (& bcm57780_driver );
875895out_57780 :
@@ -894,6 +914,7 @@ static int __init broadcom_init(void)
894914
895915static void __exit broadcom_exit (void )
896916{
917+ phy_driver_unregister (& bcm5241_driver );
897918 phy_driver_unregister (& bcmac131_driver );
898919 phy_driver_unregister (& bcm57780_driver );
899920 phy_driver_unregister (& bcm50610m_driver );
@@ -920,6 +941,7 @@ static struct mdio_device_id broadcom_tbl[] = {
920941 { PHY_ID_BCM50610M , 0xfffffff0 },
921942 { PHY_ID_BCM57780 , 0xfffffff0 },
922943 { PHY_ID_BCMAC131 , 0xfffffff0 },
944+ { PHY_ID_BCM5241 , 0xfffffff0 },
923945 { }
924946};
925947
0 commit comments