net: ti: cpsw: enable 10Mbps link speed support in rgmii mode

According to TRMs the 10Mbps link speed is supported in RGMII only when
CPSW2G MAC SL is configured for External Control ("in band") mode
CPSW_SL_MACCTRL.EXT_EN(18) = 1.

Hence update cpsw_slave_update_link() to follow documentation.

[1] https://patchwork.kernel.org/patch/10285239/
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
This commit is contained in:
Grygorii Strashko 2019-09-19 11:16:37 +03:00 committed by Tom Rini
parent 3b3e8a37d3
commit 60e81d0d28

View file

@ -33,6 +33,7 @@ DECLARE_GLOBAL_DATA_PTR;
#define GIGABITEN BIT(7) #define GIGABITEN BIT(7)
#define FULLDUPLEXEN BIT(0) #define FULLDUPLEXEN BIT(0)
#define MIIEN BIT(15) #define MIIEN BIT(15)
#define CTL_EXT_EN BIT(18)
/* DMA Registers */ /* DMA Registers */
#define CPDMA_TXCONTROL 0x004 #define CPDMA_TXCONTROL 0x004
#define CPDMA_RXCONTROL 0x014 #define CPDMA_RXCONTROL 0x014
@ -489,6 +490,8 @@ static int cpsw_slave_update_link(struct cpsw_slave *slave,
mac_control |= FULLDUPLEXEN; mac_control |= FULLDUPLEXEN;
if (phy->speed == 100) if (phy->speed == 100)
mac_control |= MIIEN; mac_control |= MIIEN;
if (phy->speed == 10 && phy_interface_is_rgmii(phy))
mac_control |= CTL_EXT_EN;
} }
if (mac_control == slave->mac_control) if (mac_control == slave->mac_control)