summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@foss.st.com>2021-07-20 21:09:53 +0300
committerRamon Fried <rfried.dev@gmail.com>2021-07-22 22:05:44 +0300
commit035d8483acbb7fe035e87d6152c40f631e28be9c (patch)
treecfde944d1b944addc8161f002a9567da85e11677 /drivers
parent880ecb09b9d14ca3f3653e7ad8f92c1c8ca89690 (diff)
downloadu-boot-035d8483acbb7fe035e87d6152c40f631e28be9c.tar.xz
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 <rfried.dev@gmail.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/eth-phy-uclass.c10
1 files 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);