phy: lan966x: Extend lan966x to support multiple phy interfaces.
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Tue, 30 Nov 2021 10:10:15 +0000 (11:10 +0100)
committerVinod Koul <vkoul@kernel.org>
Thu, 2 Dec 2021 04:19:23 +0000 (09:49 +0530)
Currently the driver is supporting only the interfaces QSGMII, SGMII,
RGMII and GMII. This patch extend the supported interfaces with
1000BASE-X and 2500BASE-X.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Acked-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/20211130101015.164916-1-horatiu.vultur@microchip.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/microchip/lan966x_serdes.c

index 262bb61..c0b80a1 100644 (file)
@@ -392,6 +392,10 @@ static int serdes_set_mode(struct phy *phy, enum phy_mode mode, int submode)
        if (mode != PHY_MODE_ETHERNET)
                return -EOPNOTSUPP;
 
+       if (submode == PHY_INTERFACE_MODE_1000BASEX ||
+           submode == PHY_INTERFACE_MODE_2500BASEX)
+               submode = PHY_INTERFACE_MODE_SGMII;
+
        for (i = 0; i < ARRAY_SIZE(lan966x_serdes_muxes); i++) {
                if (macro->idx != lan966x_serdes_muxes[i].idx ||
                    mode != lan966x_serdes_muxes[i].mode ||