diff options
Diffstat (limited to 'drivers/net/phy/micrel.c')
-rw-r--r-- | drivers/net/phy/micrel.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index cf6312fafea5..e13ad6cdcc22 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c | |||
@@ -339,9 +339,18 @@ static int ksz9021_config_init(struct phy_device *phydev) | |||
339 | { | 339 | { |
340 | const struct device *dev = &phydev->dev; | 340 | const struct device *dev = &phydev->dev; |
341 | const struct device_node *of_node = dev->of_node; | 341 | const struct device_node *of_node = dev->of_node; |
342 | const struct device *dev_walker; | ||
342 | 343 | ||
343 | if (!of_node && dev->parent->of_node) | 344 | /* The Micrel driver has a deprecated option to place phy OF |
344 | of_node = dev->parent->of_node; | 345 | * properties in the MAC node. Walk up the tree of devices to |
346 | * find a device with an OF node. | ||
347 | */ | ||
348 | dev_walker = &phydev->dev; | ||
349 | do { | ||
350 | of_node = dev_walker->of_node; | ||
351 | dev_walker = dev_walker->parent; | ||
352 | |||
353 | } while (!of_node && dev_walker); | ||
345 | 354 | ||
346 | if (of_node) { | 355 | if (of_node) { |
347 | ksz9021_load_values_from_of(phydev, of_node, | 356 | ksz9021_load_values_from_of(phydev, of_node, |