summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorShengzhou Liu <Shengzhou.Liu@freescale.com>2014-12-09 09:10:28 (GMT)
committerHonghua Yin <Hong-Hua.Yin@freescale.com>2015-03-23 03:29:54 (GMT)
commitc628372c2c1c7b913b8e611aa4e859fefcd1202f (patch)
treee34ac004800809c3cfaac336449a932d62e80165 /drivers/net/ethernet
parent9e92943c8dd782b17d7523bd664e6813654dee98 (diff)
downloadlinux-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.c3
-rw-r--r--drivers/net/ethernet/freescale/dpa/mac.c4
-rw-r--r--drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c3
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 */