[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