]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: stmmac: lpc18xx: use plat_dat->phy_interface
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Thu, 19 Jun 2025 09:47:26 +0000 (10:47 +0100)
committerJakub Kicinski <kuba@kernel.org>
Mon, 23 Jun 2025 18:57:33 +0000 (11:57 -0700)
lpc18xx uses plat_dat->mac_interface, despite wanting to validate the
PHY interface. Checking the DT files (arch/arm/boot/dts/nxp/lpc/), none
of them specify mac-mode which means mac_interface and phy_interface
will be identical.

mac_interface is only used when there is some kind of MII converter
between the DesignWare MAC and PHY, and describes the interface mode
that the DW MAC needs to use, whereas phy_interface describes the
interface mode that the PHY uses.

Noting that lpc18xx only supports MII and RMII interface modes, switch
this glue driver to use plat_dat->phy_interface, and to mark that the
mac_interface is not used, explicitly set it to PHY_INTERFACE_MODE_NA.
The latter is safe as the only user of mac_interface for this platform
would be in stmmac_check_pcs_mode(), which only checks for RGMII or
SGMII.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Yanteng Si <siyanteng@cqsoftware.com.cn>
Link: https://patch.msgid.link/E1uSBri-004fL5-FI@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c

index 22653ffd2a0488e78f0e783bbb2dd91ad94c1aa8..c0c44916f8497bdee05681091f4983fd5d2b399a 100644 (file)
@@ -41,6 +41,7 @@ static int lpc18xx_dwmac_probe(struct platform_device *pdev)
        if (IS_ERR(plat_dat))
                return PTR_ERR(plat_dat);
 
+       plat_dat->mac_interface = PHY_INTERFACE_MODE_NA;
        plat_dat->has_gmac = true;
 
        reg = syscon_regmap_lookup_by_compatible("nxp,lpc1850-creg");
@@ -49,9 +50,9 @@ static int lpc18xx_dwmac_probe(struct platform_device *pdev)
                return PTR_ERR(reg);
        }
 
-       if (plat_dat->mac_interface == PHY_INTERFACE_MODE_MII) {
+       if (plat_dat->phy_interface == PHY_INTERFACE_MODE_MII) {
                ethmode = LPC18XX_CREG_CREG6_ETHMODE_MII;
-       } else if (plat_dat->mac_interface == PHY_INTERFACE_MODE_RMII) {
+       } else if (plat_dat->phy_interface == PHY_INTERFACE_MODE_RMII) {
                ethmode = LPC18XX_CREG_CREG6_ETHMODE_RMII;
        } else {
                dev_err(&pdev->dev, "Only MII and RMII mode supported\n");