diff options
author | Philippe Schenker <philippe.schenker@toradex.com> | 2018-11-21 15:30:58 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2018-12-20 02:51:15 +0100 |
commit | f131579d715283e6ff7ded77bcb4271e31803ad7 (patch) | |
tree | e75d8a6654b8a7bc9704c07ab4f4497475e697ac /drivers | |
parent | 7e4af65ed85d0e1cea4551d3f77fb473932a5566 (diff) |
phy: ksz9031: Center FLP timing at 16ms
This patch centers the timing around 16ms instead of 8ms as it is in
reset.
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/phy/micrel.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index 28a14018835..45db5117643 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -436,9 +436,27 @@ static int ksz9031_of_config(struct phy_device *phydev) { return 0; } -static int ksz9031_center_flp_timing(struct phy_device *phydev) +int ksz9031_center_flp_timing(struct phy_device *phydev) { - return 0; + struct phy_driver *drv = phydev->drv; + int ret = 0; + + if (!drv || !drv->writeext) + return -EOPNOTSUPP; + + ret = drv->writeext(phydev, 0, 0, MII_KSZ9031_FLP_BURST_TX_LO, 0x1A80); + if (ret) { + puts("Write failed"); + return ret; + } + + ret = drv->writeext(phydev, 0, 0, MII_KSZ9031_FLP_BURST_TX_HI, 0x6); + if (ret) { + puts("Write failed"); + return ret; + } + + return genphy_restart_aneg(phydev); } #endif |