diff options
author | Mandy Lavi <mandy.lavi@freescale.com> | 2014-11-10 16:57:36 (GMT) |
---|---|---|
committer | Honghua Yin <Hong-Hua.Yin@freescale.com> | 2015-03-17 07:05:31 (GMT) |
commit | 2462b796f59d627774e8dc796bb5aad26652c12e (patch) | |
tree | 3d72f1ec8383e0dbfe50fe127a0635c6ab4e82af /drivers/net/ethernet/freescale/fman | |
parent | 71702d053d60b5d53931f7d8cd62e1a9e37c7939 (diff) | |
download | linux-fsl-qoriq-2462b796f59d627774e8dc796bb5aad26652c12e.tar.xz |
fmd: disable auto-neg if ports is SGMII2.5G
In order to do so it was also required to introduce
a new if type for SGMII2.5G
Change-Id: Iddbe223d8b716c3ed348c7a8a53bee0c037f04f4
Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com>
Reviewed-on: http://git.am.freescale.net:8181/23474
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Reviewed-by: Honghua Yin <Hong-Hua.Yin@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman')
3 files changed, 5 insertions, 0 deletions
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 9566521..73c7769 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/memac.c @@ -93,6 +93,8 @@ static void SetupSgmiiInternalPhy(t_Memac *p_Memac, uint8_t phyAddr) /* 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; MEMAC_MII_WritePhyReg(p_Memac, phyAddr, 0x14, tmpReg16); /* Device ability according to SGMII specification */ diff --git a/drivers/net/ethernet/freescale/fman/inc/enet_ext.h b/drivers/net/ethernet/freescale/fman/inc/enet_ext.h index c6b9071..ef3bee5 100644 --- a/drivers/net/ethernet/freescale/fman/inc/enet_ext.h +++ b/drivers/net/ethernet/freescale/fman/inc/enet_ext.h @@ -104,6 +104,7 @@ typedef enum e_EnetSpeed e_ENET_SPEED_10 = E_ENET_SPEED_10, /**< 10 Mbps */ e_ENET_SPEED_100 = E_ENET_SPEED_100, /**< 100 Mbps */ e_ENET_SPEED_1000 = E_ENET_SPEED_1000, /**< 1000 Mbps = 1 Gbps */ + e_ENET_SPEED_2500 = E_ENET_SPEED_2500, /**< 2500 Mbps = 2.5 Gbps */ e_ENET_SPEED_10000 = E_ENET_SPEED_10000 /**< 10000 Mbps = 10 Gbps */ } e_EnetSpeed; @@ -134,6 +135,7 @@ typedef enum e_EnetMode e_ENET_MODE_SGMII_1000 = (e_ENET_IF_SGMII | e_ENET_SPEED_1000), /**< 1000 Mbps SGMII with auto-negotiation between MAC and SGMII phy according to Cisco SGMII specification */ + e_ENET_MODE_SGMII_2500 = (e_ENET_IF_SGMII | e_ENET_SPEED_2500), e_ENET_MODE_SGMII_BASEX_10 = (ENET_IF_SGMII_BASEX | e_ENET_IF_SGMII | e_ENET_SPEED_10), /**< 10 Mbps SGMII with 1000BaseX auto-negotiation between MAC and SGMII phy or backplane */ diff --git a/drivers/net/ethernet/freescale/fman/inc/flib/fsl_enet.h b/drivers/net/ethernet/freescale/fman/inc/flib/fsl_enet.h index dde6a4e..caa87fc 100644 --- a/drivers/net/ethernet/freescale/fman/inc/flib/fsl_enet.h +++ b/drivers/net/ethernet/freescale/fman/inc/flib/fsl_enet.h @@ -58,6 +58,7 @@ enum enet_speed { E_ENET_SPEED_10 = 10, /**< 10 Mbps */ E_ENET_SPEED_100 = 100, /**< 100 Mbps */ E_ENET_SPEED_1000 = 1000, /**< 1000 Mbps = 1 Gbps */ + E_ENET_SPEED_2500 = 2500, /**< 2500 Mbps = 2.5 Gbps */ E_ENET_SPEED_10000 = 10000 /**< 10000 Mbps = 10 Gbps */ }; |