summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2026-02-09 12:45:06 +0100
committerTom Rini <trini@konsulko.com>2026-02-23 15:28:16 -0600
commit358f97fcca9a888e7f2c074d70460b92b5222c55 (patch)
treed6392c1494a23ebb9104c13128350f46f0bc85d0
parent145487611f6875efc106be7f41e8544ff5bdadc9 (diff)
net: mdio-mt7531-mmio: improve parsing of switch register on probe
The MDIO node is ALWAYS a parent of the MT7531 switch node and the MDIO registers are in the MT7531 register space (in the context of MT7988 it's all memory-mapped) With these assumption, we can simplify and permit better usage of PHY OF automatic probing by binding the mt7531-mdio-mmio driver with the MDIO node instead of the switch node. For OF PHY to be correctly autoprobed, the MDIO driver needs to attached to the MDIO node (the parent of the PHY nodes). The driver will reach the parent node (the switch node) and will parse the register address from there. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-rw-r--r--drivers/net/mdio-mt7531-mmio.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/mdio-mt7531-mmio.c b/drivers/net/mdio-mt7531-mmio.c
index 58cb6e503b8..930454a9b0e 100644
--- a/drivers/net/mdio-mt7531-mmio.c
+++ b/drivers/net/mdio-mt7531-mmio.c
@@ -149,8 +149,13 @@ static const struct mdio_ops mt7531_mdio_ops = {
static int mt7531_mdio_probe(struct udevice *dev)
{
struct mt7531_mdio_mmio_priv *priv = dev_get_priv(dev);
+ ofnode switch_node;
- priv->switch_regs = dev_read_addr(dev);
+ switch_node = ofnode_get_parent(dev_ofnode(dev));
+ if (!ofnode_valid(switch_node))
+ return -EINVAL;
+
+ priv->switch_regs = ofnode_get_addr(switch_node);
if (priv->switch_regs == FDT_ADDR_T_NONE)
return -EINVAL;