net: ti: cpsw: enable 10Mbps link speed support in rgmii mode
authorGrygorii Strashko <grygorii.strashko@ti.com>
Thu, 19 Sep 2019 08:16:37 +0000 (11:16 +0300)
committerTom Rini <trini@konsulko.com>
Sun, 3 Nov 2019 14:36:06 +0000 (09:36 -0500)
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>
drivers/net/ti/cpsw.c

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