[PATCH net-next] net: stmmac: lpc18xx: use plat_dat->phy_interface

Yanteng Si si.yanteng at linux.dev
Sun Jun 22 18:56:39 PDT 2025


在 6/19/25 5:47 PM, Russell King (Oracle) 写道:
> 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 at armlinux.org.uk>
Reviewed-by: Yanteng Si <siyanteng at cqsoftware.com.cn>

Thanks,
Yanteng
> ---
>   drivers/net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c
> index 22653ffd2a04..c0c44916f849 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c
> @@ -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");




More information about the linux-arm-kernel mailing list