diff options
Diffstat (limited to 'drivers/net/designware.c')
-rw-r--r-- | drivers/net/designware.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 49ddaa20d8..58880b0e52 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -408,12 +408,22 @@ static void dwc_version(struct device_d *dev, u32 hwid) static int dwc_probe_dt(struct device_d *dev, struct dw_eth_dev *priv) { + struct device_node *child; + if (!IS_ENABLED(CONFIG_OFTREE)) return -ENODEV; priv->phy_addr = -1; priv->interface = of_get_phy_mode(dev->device_node); + /* Set MDIO bus device node, if present. */ + for_each_child_of_node(dev->device_node, child) { + if (of_device_is_compatible(child, "snps,dwmac-mdio")) { + priv->miibus.dev.device_node = child; + break; + } + } + return 0; } |