diff options
Diffstat (limited to 'drivers/net/phy/broadcom.c')
| -rw-r--r-- | drivers/net/phy/broadcom.c | 46 | 
1 files changed, 34 insertions, 12 deletions
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index cecdbbd549e..4accd83d3df 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c @@ -685,7 +685,7 @@ static int brcm_fet_config_intr(struct phy_device *phydev)  }  static struct phy_driver bcm5411_driver = { -	.phy_id		= 0x00206070, +	.phy_id		= PHY_ID_BCM5411,  	.phy_id_mask	= 0xfffffff0,  	.name		= "Broadcom BCM5411",  	.features	= PHY_GBIT_FEATURES | @@ -700,7 +700,7 @@ static struct phy_driver bcm5411_driver = {  };  static struct phy_driver bcm5421_driver = { -	.phy_id		= 0x002060e0, +	.phy_id		= PHY_ID_BCM5421,  	.phy_id_mask	= 0xfffffff0,  	.name		= "Broadcom BCM5421",  	.features	= PHY_GBIT_FEATURES | @@ -715,7 +715,7 @@ static struct phy_driver bcm5421_driver = {  };  static struct phy_driver bcm5461_driver = { -	.phy_id		= 0x002060c0, +	.phy_id		= PHY_ID_BCM5461,  	.phy_id_mask	= 0xfffffff0,  	.name		= "Broadcom BCM5461",  	.features	= PHY_GBIT_FEATURES | @@ -730,7 +730,7 @@ static struct phy_driver bcm5461_driver = {  };  static struct phy_driver bcm5464_driver = { -	.phy_id		= 0x002060b0, +	.phy_id		= PHY_ID_BCM5464,  	.phy_id_mask	= 0xfffffff0,  	.name		= "Broadcom BCM5464",  	.features	= PHY_GBIT_FEATURES | @@ -745,7 +745,7 @@ static struct phy_driver bcm5464_driver = {  };  static struct phy_driver bcm5481_driver = { -	.phy_id		= 0x0143bca0, +	.phy_id		= PHY_ID_BCM5481,  	.phy_id_mask	= 0xfffffff0,  	.name		= "Broadcom BCM5481",  	.features	= PHY_GBIT_FEATURES | @@ -760,7 +760,7 @@ static struct phy_driver bcm5481_driver = {  };  static struct phy_driver bcm5482_driver = { -	.phy_id		= 0x0143bcb0, +	.phy_id		= PHY_ID_BCM5482,  	.phy_id_mask	= 0xfffffff0,  	.name		= "Broadcom BCM5482",  	.features	= PHY_GBIT_FEATURES | @@ -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); @@ -910,16 +931,17 @@ module_init(broadcom_init);  module_exit(broadcom_exit);  static struct mdio_device_id broadcom_tbl[] = { -	{ 0x00206070, 0xfffffff0 }, -	{ 0x002060e0, 0xfffffff0 }, -	{ 0x002060c0, 0xfffffff0 }, -	{ 0x002060b0, 0xfffffff0 }, -	{ 0x0143bca0, 0xfffffff0 }, -	{ 0x0143bcb0, 0xfffffff0 }, +	{ PHY_ID_BCM5411, 0xfffffff0 }, +	{ PHY_ID_BCM5421, 0xfffffff0 }, +	{ PHY_ID_BCM5461, 0xfffffff0 }, +	{ PHY_ID_BCM5464, 0xfffffff0 }, +	{ PHY_ID_BCM5482, 0xfffffff0 }, +	{ PHY_ID_BCM5482, 0xfffffff0 },  	{ PHY_ID_BCM50610, 0xfffffff0 },  	{ PHY_ID_BCM50610M, 0xfffffff0 },  	{ PHY_ID_BCM57780, 0xfffffff0 },  	{ PHY_ID_BCMAC131, 0xfffffff0 }, +	{ PHY_ID_BCM5241, 0xfffffff0 },  	{ }  };  |