PCS initialization sequence for 2.5G SGMII interface governs
auto negotiation to be in disabled mode

Signed-off-by: Bhaskar Upadhaya <bhaskar.upadh...@nxp.com>
---
Depends on https://patchwork.ozlabs.org/cover/823205

 drivers/net/pfe_eth/pfe_eth.c   | 3 +++
 include/pfe_eth/pfe/cbus/emac.h | 1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c
index 4db823f..01b745b 100644
--- a/drivers/net/pfe_eth/pfe_eth.c
+++ b/drivers/net/pfe_eth/pfe_eth.c
@@ -426,6 +426,9 @@ static void ls1012a_configure_serdes(struct ls1012a_eth_dev 
*priv)
        value = PHY_SGMII_CR_DEF_VAL;
        if (!sgmii_2500)
                value |= PHY_SGMII_CR_RESET_AN;
+       /* Disable Auto neg for 2.5G SGMII as it doesn't support auto neg*/
+       if (sgmii_2500)
+               value &= ~PHY_SGMII_ENABLE_AN;
        ls1012a_phy_write(&bus, 0, MDIO_DEVAD_NONE, 0, value);
 }
 
diff --git a/include/pfe_eth/pfe/cbus/emac.h b/include/pfe_eth/pfe/cbus/emac.h
index 3cfcd99..b61f3ad 100644
--- a/include/pfe_eth/pfe/cbus/emac.h
+++ b/include/pfe_eth/pfe/cbus/emac.h
@@ -146,5 +146,6 @@ enum mac_speed {SPEED_10M, SPEED_100M, SPEED_1000M, 
SPEED_1000M_PCS};
 #define PHY_SGMII_IF_MODE_AN        0x0002
 #define PHY_SGMII_IF_MODE_SGMII     0x0001
 #define PHY_SGMII_IF_MODE_SGMII_GBT 0x0008
+#define PHY_SGMII_ENABLE_AN         0x1000
 
 #endif /* _EMAC_H_ */
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to