diff options
author | Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com> | 2017-11-29 06:51:43 (GMT) |
---|---|---|
committer | Xie Xiaobo <xiaobo.xie@nxp.com> | 2017-12-12 07:32:44 (GMT) |
commit | e42459af7848b7b9bfcb65714702e84b751e7043 (patch) | |
tree | aeb73ec10dd33382890078816614e7b77947b89f | |
parent | 5dbb5b7eab4f77504ea0e7b26a6a91d5690a73fc (diff) | |
download | linux-e42459af7848b7b9bfcb65714702e84b751e7043.tar.xz |
staging: fsl_ppfe/eth: Disable autonegotiation for 2.5G SGMII
PCS initialization sequence for 2.5G SGMII interface governs
auto negotiation to be in disabled mode
Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com>
-rw-r--r-- | drivers/staging/fsl_ppfe/pfe_eth.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/fsl_ppfe/pfe_eth.c b/drivers/staging/fsl_ppfe/pfe_eth.c index ec4ed09..a6d1fb7 100644 --- a/drivers/staging/fsl_ppfe/pfe_eth.c +++ b/drivers/staging/fsl_ppfe/pfe_eth.c @@ -1173,6 +1173,7 @@ static void ls1012a_configure_serdes(struct net_device *ndev) struct pfe_eth_priv_s *priv = pfe->eth.eth_priv[0]; int sgmii_2500 = 0; struct mii_bus *bus = priv->mii_bus; + u16 value = 0; if (priv->einfo->mii_config == PHY_INTERFACE_MODE_2500SGMII) sgmii_2500 = 1; @@ -1190,14 +1191,16 @@ static void ls1012a_configure_serdes(struct net_device *ndev) pfe_eth_mdio_write(bus, 0, 0x4, 0x4001); pfe_eth_mdio_write(bus, 0, 0x12, 0xa120); pfe_eth_mdio_write(bus, 0, 0x13, 0x7); + /* Autonegotiation need to be disabled for 2.5G SGMII mode*/ + value = 0x0140; + pfe_eth_mdio_write(bus, 0, 0x0, value); } else { pfe_eth_mdio_write(bus, 0, 0x14, 0xb); pfe_eth_mdio_write(bus, 0, 0x4, 0x1a1); pfe_eth_mdio_write(bus, 0, 0x12, 0x400); pfe_eth_mdio_write(bus, 0, 0x13, 0x0); + pfe_eth_mdio_write(bus, 0, 0x0, 0x1140); } - - pfe_eth_mdio_write(bus, 0, 0x0, 0x1140); } /* |