aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ibm_newemac/phy.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ibm_newemac/phy.c')
-rw-r--r--drivers/net/ibm_newemac/phy.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/drivers/net/ibm_newemac/phy.c b/drivers/net/ibm_newemac/phy.c
index aa1f0ddf1e3e..a5e89c55abd5 100644
--- a/drivers/net/ibm_newemac/phy.c
+++ b/drivers/net/ibm_newemac/phy.c
@@ -306,8 +306,47 @@ static struct mii_phy_def cis8201_phy_def = {
306 .ops = &cis8201_phy_ops 306 .ops = &cis8201_phy_ops
307}; 307};
308 308
309static struct mii_phy_def bcm5248_phy_def = {
310
311 .phy_id = 0x0143bc00,
312 .phy_id_mask = 0x0ffffff0,
313 .name = "BCM5248 10/100 SMII Ethernet",
314 .ops = &generic_phy_ops
315};
316
317static int m88e1111_init(struct mii_phy *phy)
318{
319 pr_debug("%s: Marvell 88E1111 Ethernet\n", __FUNCTION__);
320 phy_write(phy, 0x14, 0x0ce3);
321 phy_write(phy, 0x18, 0x4101);
322 phy_write(phy, 0x09, 0x0e00);
323 phy_write(phy, 0x04, 0x01e1);
324 phy_write(phy, 0x00, 0x9140);
325 phy_write(phy, 0x00, 0x1140);
326
327 return 0;
328}
329
330static struct mii_phy_ops m88e1111_phy_ops = {
331 .init = m88e1111_init,
332 .setup_aneg = genmii_setup_aneg,
333 .setup_forced = genmii_setup_forced,
334 .poll_link = genmii_poll_link,
335 .read_link = genmii_read_link
336};
337
338static struct mii_phy_def m88e1111_phy_def = {
339
340 .phy_id = 0x01410CC0,
341 .phy_id_mask = 0x0ffffff0,
342 .name = "Marvell 88E1111 Ethernet",
343 .ops = &m88e1111_phy_ops,
344};
345
309static struct mii_phy_def *mii_phy_table[] = { 346static struct mii_phy_def *mii_phy_table[] = {
310 &cis8201_phy_def, 347 &cis8201_phy_def,
348 &bcm5248_phy_def,
349 &m88e1111_phy_def,
311 &genmii_phy_def, 350 &genmii_phy_def,
312 NULL 351 NULL
313}; 352};