From 035d8483acbb7fe035e87d6152c40f631e28be9c Mon Sep 17 00:00:00 2001 From: Patrick Delaunay Date: Tue, 20 Jul 2021 20:09:53 +0200 Subject: [PATCH] net: eth-phy: manage subnode mdio0 Bind any subnode with name beginning by mdio, mdio0 for example, and not only the "mdio" as namei of subnode. Reviewed-by: Ramon Fried Signed-off-by: Patrick Delaunay --- drivers/net/eth-phy-uclass.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/eth-phy-uclass.c b/drivers/net/eth-phy-uclass.c index aa5b05abc8..293579dc34 100644 --- a/drivers/net/eth-phy-uclass.c +++ b/drivers/net/eth-phy-uclass.c @@ -27,12 +27,18 @@ int eth_phy_binds_nodes(struct udevice *eth_dev) const char *node_name; int ret; - mdio_node = dev_read_subnode(eth_dev, "mdio"); + /* search a subnode named "mdio.*" */ + dev_for_each_subnode(mdio_node, eth_dev) { + node_name = ofnode_get_name(mdio_node); + if (!strncmp(node_name, "mdio", 4)) + break; + } if (!ofnode_valid(mdio_node)) { - dev_dbg(eth_dev, "%s: %s mdio subnode not found!", __func__, + dev_dbg(eth_dev, "%s: %s mdio subnode not found!\n", __func__, eth_dev->name); return -ENXIO; } + dev_dbg(eth_dev, "%s: %s subnode found!\n", __func__, node_name); ofnode_for_each_subnode(phy_node, mdio_node) { node_name = ofnode_get_name(phy_node); -- 2.39.5