diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/phy/broadcom.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index f5310ed3760d..60c5cfe96918 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c | |||
@@ -176,6 +176,20 @@ static struct phy_driver bcm5461_driver = { | |||
176 | .driver = { .owner = THIS_MODULE }, | 176 | .driver = { .owner = THIS_MODULE }, |
177 | }; | 177 | }; |
178 | 178 | ||
179 | static struct phy_driver bcm5464_driver = { | ||
180 | .phy_id = 0x002060b0, | ||
181 | .phy_id_mask = 0xfffffff0, | ||
182 | .name = "Broadcom BCM5464", | ||
183 | .features = PHY_GBIT_FEATURES, | ||
184 | .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT, | ||
185 | .config_init = bcm54xx_config_init, | ||
186 | .config_aneg = genphy_config_aneg, | ||
187 | .read_status = genphy_read_status, | ||
188 | .ack_interrupt = bcm54xx_ack_interrupt, | ||
189 | .config_intr = bcm54xx_config_intr, | ||
190 | .driver = { .owner = THIS_MODULE }, | ||
191 | }; | ||
192 | |||
179 | static struct phy_driver bcm5481_driver = { | 193 | static struct phy_driver bcm5481_driver = { |
180 | .phy_id = 0x0143bca0, | 194 | .phy_id = 0x0143bca0, |
181 | .phy_id_mask = 0xfffffff0, | 195 | .phy_id_mask = 0xfffffff0, |
@@ -217,6 +231,9 @@ static int __init broadcom_init(void) | |||
217 | ret = phy_driver_register(&bcm5461_driver); | 231 | ret = phy_driver_register(&bcm5461_driver); |
218 | if (ret) | 232 | if (ret) |
219 | goto out_5461; | 233 | goto out_5461; |
234 | ret = phy_driver_register(&bcm5464_driver); | ||
235 | if (ret) | ||
236 | goto out_5464; | ||
220 | ret = phy_driver_register(&bcm5481_driver); | 237 | ret = phy_driver_register(&bcm5481_driver); |
221 | if (ret) | 238 | if (ret) |
222 | goto out_5481; | 239 | goto out_5481; |
@@ -228,6 +245,8 @@ static int __init broadcom_init(void) | |||
228 | out_5482: | 245 | out_5482: |
229 | phy_driver_unregister(&bcm5481_driver); | 246 | phy_driver_unregister(&bcm5481_driver); |
230 | out_5481: | 247 | out_5481: |
248 | phy_driver_unregister(&bcm5464_driver); | ||
249 | out_5464: | ||
231 | phy_driver_unregister(&bcm5461_driver); | 250 | phy_driver_unregister(&bcm5461_driver); |
232 | out_5461: | 251 | out_5461: |
233 | phy_driver_unregister(&bcm5421_driver); | 252 | phy_driver_unregister(&bcm5421_driver); |
@@ -241,6 +260,7 @@ static void __exit broadcom_exit(void) | |||
241 | { | 260 | { |
242 | phy_driver_unregister(&bcm5482_driver); | 261 | phy_driver_unregister(&bcm5482_driver); |
243 | phy_driver_unregister(&bcm5481_driver); | 262 | phy_driver_unregister(&bcm5481_driver); |
263 | phy_driver_unregister(&bcm5464_driver); | ||
244 | phy_driver_unregister(&bcm5461_driver); | 264 | phy_driver_unregister(&bcm5461_driver); |
245 | phy_driver_unregister(&bcm5421_driver); | 265 | phy_driver_unregister(&bcm5421_driver); |
246 | phy_driver_unregister(&bcm5411_driver); | 266 | phy_driver_unregister(&bcm5411_driver); |