diff options
author | Shengzhou Liu <Shengzhou.Liu@freescale.com> | 2014-12-09 09:10:28 (GMT) |
---|---|---|
committer | Honghua Yin <Hong-Hua.Yin@freescale.com> | 2015-03-23 03:29:54 (GMT) |
commit | c628372c2c1c7b913b8e611aa4e859fefcd1202f (patch) | |
tree | e34ac004800809c3cfaac336449a932d62e80165 /drivers/net/ethernet | |
parent | 9e92943c8dd782b17d7523bd664e6813654dee98 (diff) | |
download | linux-fsl-qoriq-c628372c2c1c7b913b8e611aa4e859fefcd1202f.tar.xz |
fsl/dpa: fixup to support 2.5G SGMII
- correct the location of disabling auto-neg for 2.5G in SetupSgmiiInternalPhy.
- add the missing condition e_ENET_MODE_SGMII_2500 in memac_init_phy.
- fix sgmii_2500 to sgmii-2500 to match u-boot.
Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Change-Id: I3e3481f1a22e0931acaaaf739dccce944e91e76c
Reviewed-on: http://git.am.freescale.net:8181/25752
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Mandy Lavi <Mandy.Lavi@freescale.com>
Reviewed-by: Honghua Yin <Hong-Hua.Yin@freescale.com>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/mac-api.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/mac.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/mac-api.c b/drivers/net/ethernet/freescale/dpa/mac-api.c index 7fe569e..10a13e8 100644 --- a/drivers/net/ethernet/freescale/dpa/mac-api.c +++ b/drivers/net/ethernet/freescale/dpa/mac-api.c @@ -498,7 +498,8 @@ static int memac_init_phy(struct net_device *net_dev, { struct phy_device *phy_dev; - if (macdev2enetinterface(mac_dev) == e_ENET_MODE_XGMII_10000) { + if ((macdev2enetinterface(mac_dev) == e_ENET_MODE_XGMII_10000) || + (macdev2enetinterface(mac_dev) == e_ENET_MODE_SGMII_2500)){ if (!mac_dev->phy_node) { mac_dev->phy_dev = NULL; return 0; diff --git a/drivers/net/ethernet/freescale/dpa/mac.c b/drivers/net/ethernet/freescale/dpa/mac.c index faf00a1..19f163a 100644 --- a/drivers/net/ethernet/freescale/dpa/mac.c +++ b/drivers/net/ethernet/freescale/dpa/mac.c @@ -73,7 +73,7 @@ static const char phy_str[][11] = { [PHY_INTERFACE_MODE_RGMII_TXID] = "rgmii-txid", [PHY_INTERFACE_MODE_RTBI] = "rtbi", [PHY_INTERFACE_MODE_XGMII] = "xgmii", - [PHY_INTERFACE_MODE_SGMII_2500] = "sgmii_2500" + [PHY_INTERFACE_MODE_SGMII_2500] = "sgmii-2500" }; static phy_interface_t __pure __attribute__((nonnull)) str2phy(const char *str) @@ -339,7 +339,7 @@ static int __cold mac_probe(struct platform_device *_of_dev) mac_dev->if_support &= ~(SUPPORTED_10baseT_Half | SUPPORTED_100baseT_Half); - if (strstr(char_prop, "sgmii_2500")) + if (strstr(char_prop, "sgmii-2500")) mac_dev->if_support &= ~(SUPPORTED_10baseT_Half | SUPPORTED_100baseT_Half); diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c index 8782ad2..34eefb9 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c @@ -89,12 +89,13 @@ static void SetupSgmiiInternalPhy(t_Memac *p_Memac, uint8_t phyAddr) speed=10000 is provided for SGMII ports. Temporary modify enet mode to 1G one, so MII functions can work correctly. */ enetMode = p_Memac->enetMode; - p_Memac->enetMode = MAKE_ENET_MODE(ENET_INTERFACE_FROM_MODE(p_Memac->enetMode), e_ENET_SPEED_1000); /* SGMII mode + AN enable */ tmpReg16 = PHY_SGMII_IF_MODE_AN | PHY_SGMII_IF_MODE_SGMII; if ((p_Memac->enetMode) == e_ENET_MODE_SGMII_2500) tmpReg16 = PHY_SGMII_CR_PHY_RESET | PHY_SGMII_IF_MODE_SGMII; + + p_Memac->enetMode = MAKE_ENET_MODE(ENET_INTERFACE_FROM_MODE(p_Memac->enetMode), e_ENET_SPEED_1000); MEMAC_MII_WritePhyReg(p_Memac, phyAddr, 0x14, tmpReg16); /* Device ability according to SGMII specification */ |