diff options
author | Oleksij Rempel <o.rempel@pengutronix.de> | 2022-04-13 10:21:53 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-04-14 09:42:09 +0200 |
commit | a7d5e091a1b1e865b0987df9811683572c57c7b9 (patch) | |
tree | c4efb5e7a7d9714fd9f95c7607a0f889c844793d /net | |
parent | dec9b064d84ee7a3c7167cb42d1d3e8e09df07f9 (diff) | |
download | barebox-a7d5e091a1b1e865b0987df9811683572c57c7b9.tar.gz barebox-a7d5e091a1b1e865b0987df9811683572c57c7b9.tar.xz |
net: add of_find_eth_device_by_node() function
For DSA support we need to find MAC node by phandle from the switch port
node. So, provide of_find_eth_device_by_node() to solve this task.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://lore.barebox.org/20220413082205.429509-3-o.rempel@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net')
-rw-r--r-- | net/eth.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -506,6 +506,22 @@ void led_trigger_network(enum led_trigger trigger) led_trigger(LED_TRIGGER_NET_TXRX, TRIGGER_FLASH); } +struct eth_device *of_find_eth_device_by_node(struct device_node *np) +{ + struct eth_device *edev; + int ret; + + ret = of_device_ensure_probed(np); + if (ret) + return NULL; + + list_for_each_entry(edev, &netdev_list, list) + if (edev->parent->device_node == np) + return edev; + return NULL; +} +EXPORT_SYMBOL(of_find_eth_device_by_node); + static int of_populate_ethaddr(void) { char str[sizeof("xx:xx:xx:xx:xx:xx")]; |