From: Leszek Polak <lpo...@arri.de>

As per Errata Section 5.1, if EEE is intended to be used, some register
writes must be done once after every hardware reset. This patch now adds
another register configuration (reg 0x7 in the 0xfb page) which is
currently missing in m88e151x_config(). Exactly as listed in the Marvell
errata.

Without this fix we experience ethernet problems on some of our boards
equipped with a new version of this ethernet PHY (different supplier).

The fix applies to Marvell Alaska 88E1510/88E1518/88E1512/88E1514
Rev. A0.

Signed-off-by: Leszek Polak <lpo...@arri.de>
Signed-off-by: Stefan Roese <s...@denx.de>
Cc: Joe Hershberger <joe.hershber...@ni.com>
Cc: Ramon Fried <rfried....@gmail.com>
---
 drivers/net/phy/marvell.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index a62c695c5c84..437912b8b4ad 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -344,6 +344,8 @@ static int m88e151x_config(struct phy_device *phydev)
        phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x214D);
        phy_write(phydev, MDIO_DEVAD_NONE, 17, 0xCC0C);
        phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2159);
+       phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 0x00fb);
+       phy_write(phydev, MDIO_DEVAD_NONE, 07, 0xC00D);
        phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 0x0000);
 
        /* SGMII-to-Copper mode initialization */
-- 
2.35.1

Reply via email to