You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
From caae8a691922c3702fcb813f5d794f311c0609c6 Mon Sep 17 00:00:00 2001
|
|
From: Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com>
|
|
Date: Wed, 29 Nov 2017 12:21:43 +0530
|
|
Subject: [PATCH] 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>
|
|
---
|
|
drivers/staging/fsl_ppfe/pfe_eth.c | 7 +++++--
|
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/staging/fsl_ppfe/pfe_eth.c
|
|
+++ b/drivers/staging/fsl_ppfe/pfe_eth.c
|
|
@@ -1174,6 +1174,7 @@ static void ls1012a_configure_serdes(str
|
|
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;
|
|
@@ -1191,14 +1192,16 @@ static void ls1012a_configure_serdes(str
|
|
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);
|
|
}
|
|
|
|
/*
|