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.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/net/ibm_newemac/phy.c b/drivers/net/ibm_newemac/phy.c
index a5e89c55abd5..9308fad76d57 100644
--- a/drivers/net/ibm_newemac/phy.c
+++ b/drivers/net/ibm_newemac/phy.c
@@ -327,6 +327,42 @@ static int m88e1111_init(struct mii_phy *phy)
327 return 0; 327 return 0;
328} 328}
329 329
330static int et1011c_init(struct mii_phy *phy)
331{
332 u16 reg_short;
333
334 reg_short = (u16)(phy_read(phy, 0x16));
335 reg_short &= ~(0x7);
336 reg_short |= 0x6; /* RGMII Trace Delay*/
337 phy_write(phy, 0x16, reg_short);
338
339 reg_short = (u16)(phy_read(phy, 0x17));
340 reg_short &= ~(0x40);
341 phy_write(phy, 0x17, reg_short);
342
343 phy_write(phy, 0x1c, 0x74f0);
344 return 0;
345}
346
347static struct mii_phy_ops et1011c_phy_ops = {
348 .init = et1011c_init,
349 .setup_aneg = genmii_setup_aneg,
350 .setup_forced = genmii_setup_forced,
351 .poll_link = genmii_poll_link,
352 .read_link = genmii_read_link
353};
354
355static struct mii_phy_def et1011c_phy_def = {
356 .phy_id = 0x0282f000,
357 .phy_id_mask = 0x0fffff00,
358 .name = "ET1011C Gigabit Ethernet",
359 .ops = &et1011c_phy_ops
360};
361
362
363
364
365
330static struct mii_phy_ops m88e1111_phy_ops = { 366static struct mii_phy_ops m88e1111_phy_ops = {
331 .init = m88e1111_init, 367 .init = m88e1111_init,
332 .setup_aneg = genmii_setup_aneg, 368 .setup_aneg = genmii_setup_aneg,
@@ -344,6 +380,7 @@ static struct mii_phy_def m88e1111_phy_def = {
344}; 380};
345 381
346static struct mii_phy_def *mii_phy_table[] = { 382static struct mii_phy_def *mii_phy_table[] = {
383 &et1011c_phy_def,
347 &cis8201_phy_def, 384 &cis8201_phy_def,
348 &bcm5248_phy_def, 385 &bcm5248_phy_def,
349 &m88e1111_phy_def, 386 &m88e1111_phy_def,