diff options
Diffstat (limited to 'drivers/net/phy/broadcom.c')
| -rw-r--r-- | drivers/net/phy/broadcom.c | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index b743d37532f..4accd83d3df 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c @@ -834,6 +834,21 @@ static struct phy_driver bcmac131_driver = {  	.driver		= { .owner = THIS_MODULE },  }; +static struct phy_driver bcm5241_driver = { +	.phy_id		= PHY_ID_BCM5241, +	.phy_id_mask	= 0xfffffff0, +	.name		= "Broadcom BCM5241", +	.features	= PHY_BASIC_FEATURES | +			  SUPPORTED_Pause | SUPPORTED_Asym_Pause, +	.flags		= PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT, +	.config_init	= brcm_fet_config_init, +	.config_aneg	= genphy_config_aneg, +	.read_status	= genphy_read_status, +	.ack_interrupt	= brcm_fet_ack_interrupt, +	.config_intr	= brcm_fet_config_intr, +	.driver		= { .owner = THIS_MODULE }, +}; +  static int __init broadcom_init(void)  {  	int ret; @@ -868,8 +883,13 @@ static int __init broadcom_init(void)  	ret = phy_driver_register(&bcmac131_driver);  	if (ret)  		goto out_ac131; +	ret = phy_driver_register(&bcm5241_driver); +	if (ret) +		goto out_5241;  	return ret; +out_5241: +	phy_driver_unregister(&bcmac131_driver);  out_ac131:  	phy_driver_unregister(&bcm57780_driver);  out_57780: @@ -894,6 +914,7 @@ out_5411:  static void __exit broadcom_exit(void)  { +	phy_driver_unregister(&bcm5241_driver);  	phy_driver_unregister(&bcmac131_driver);  	phy_driver_unregister(&bcm57780_driver);  	phy_driver_unregister(&bcm50610m_driver); @@ -920,6 +941,7 @@ static struct mdio_device_id broadcom_tbl[] = {  	{ PHY_ID_BCM50610M, 0xfffffff0 },  	{ PHY_ID_BCM57780, 0xfffffff0 },  	{ PHY_ID_BCMAC131, 0xfffffff0 }, +	{ PHY_ID_BCM5241, 0xfffffff0 },  	{ }  };  |