[PATCH 1/5] net: mediatek: mt7988: fix broken phy_setting config

Christian Marangi ansuelsmth at gmail.com
Sat Sep 20 16:36:46 CEST 2025


The PHY setting for MT7988 are actually never configured for the
affected PHY as we are read/writing to the wrong PHY address.

This is caused by the fact that we use the index of the NUM_PHYS loop as
the PHY address without first offsetting it to the base address.

Correctly offset the PHY address before configuring the PHY setting.

Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 drivers/net/mtk_eth/mt7988.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/mtk_eth/mt7988.c b/drivers/net/mtk_eth/mt7988.c
index a416d87840c..bc58462af26 100644
--- a/drivers/net/mtk_eth/mt7988.c
+++ b/drivers/net/mtk_eth/mt7988.c
@@ -34,16 +34,18 @@ static void mt7988_phy_setting(struct mt753x_switch_priv *priv)
 	u32 i;
 
 	for (i = 0; i < MT753X_NUM_PHYS; i++) {
+		u16 addr = MT753X_PHY_ADDR(priv->phy_base, i);
+
 		/* Enable HW auto downshift */
-		mt7531_mii_write(priv, i, 0x1f, 0x1);
-		val = mt7531_mii_read(priv, i, PHY_EXT_REG_14);
+		mt7531_mii_write(priv, addr, 0x1f, 0x1);
+		val = mt7531_mii_read(priv, addr, PHY_EXT_REG_14);
 		val |= PHY_EN_DOWN_SHFIT;
-		mt7531_mii_write(priv, i, PHY_EXT_REG_14, val);
+		mt7531_mii_write(priv, addr, PHY_EXT_REG_14, val);
 
 		/* PHY link down power saving enable */
-		val = mt7531_mii_read(priv, i, PHY_EXT_REG_17);
+		val = mt7531_mii_read(priv, addr, PHY_EXT_REG_17);
 		val |= PHY_LINKDOWN_POWER_SAVING_EN;
-		mt7531_mii_write(priv, i, PHY_EXT_REG_17, val);
+		mt7531_mii_write(priv, addr, PHY_EXT_REG_17, val);
 	}
 }
 
-- 
2.51.0



More information about the U-Boot mailing list