| .. | .. |
|---|
| 573 | 573 | |
|---|
| 574 | 574 | static int yt8531_config_init(struct phy_device *phydev) |
|---|
| 575 | 575 | { |
|---|
| 576 | | - int ret = 0; |
|---|
| 576 | + int ret = 0, val; |
|---|
| 577 | 577 | |
|---|
| 578 | 578 | #if (YTPHY8531A_XTAL_INIT) |
|---|
| 579 | 579 | ret = yt8531a_xtal_init(phydev); |
|---|
| .. | .. |
|---|
| 591 | 591 | return ret; |
|---|
| 592 | 592 | |
|---|
| 593 | 593 | /* RXC, PHY_CLK_OUT and RXData Drive strength: |
|---|
| 594 | | - * Drive strength of RXC = 4, PHY_CLK_OUT = 3, RXD0 = 4 (default) |
|---|
| 595 | | - * If the io voltage is 3.3v, PHY_CLK_OUT = 2, set 0xa010 = 0x9acf |
|---|
| 594 | + * Drive strength of RXC = 6, PHY_CLK_OUT = 3, RXD0 = 4 (default 1.8v) |
|---|
| 595 | + * If the io voltage is 3.3v, PHY_CLK_OUT = 2, set 0xa010 = 0xdacf |
|---|
| 596 | 596 | */ |
|---|
| 597 | | - ret = ytphy_write_ext(phydev, 0xa010, 0x9bcf); |
|---|
| 597 | + ret = ytphy_write_ext(phydev, 0xa010, 0xdbcf); |
|---|
| 598 | + if (ret < 0) |
|---|
| 599 | + return ret; |
|---|
| 600 | + |
|---|
| 601 | + /* Change 100M default BGS voltage from 0x294c to 0x274c */ |
|---|
| 602 | + val = ytphy_read_ext(phydev, 0x57); |
|---|
| 603 | + val = (val & ~(0xf << 8)) | (7 << 8); |
|---|
| 604 | + ret = ytphy_write_ext(phydev, 0x57, val); |
|---|
| 598 | 605 | if (ret < 0) |
|---|
| 599 | 606 | return ret; |
|---|
| 600 | 607 | |
|---|