[PATCH 10/20] net: phy: Simplify the logic of phy_connect_fixed()
Bin Meng
bmeng.cn at gmail.com
Tue Mar 2 16:34:41 CET 2021
Simplify the logic of phy_connect_fixed() by using the new API
ofnode_phy_is_fixed_link(), which brings additional bonus of
supporting the old DT bindings.
Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---
drivers/net/phy/phy.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 69e02685fa..0e85a80761 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -18,6 +18,7 @@
#include <phy.h>
#include <errno.h>
#include <asm/global_data.h>
+#include <dm/of_extra.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/err.h>
@@ -1002,19 +1003,12 @@ static struct phy_device *phy_connect_fixed(struct mii_dev *bus,
phy_interface_t interface)
{
struct phy_device *phydev = NULL;
- ofnode node = dev_ofnode(dev);
- const char *name;
+ ofnode eth_node = dev_ofnode(dev);
+ ofnode phy_node;
- node = ofnode_first_subnode(node);
- while (ofnode_valid(node)) {
- name = ofnode_get_name(node);
- if (name && strcmp(name, "fixed-link") == 0) {
- phydev = phy_device_create(bus, ofnode_to_offset(node),
- PHY_FIXED_ID, false,
- interface);
- break;
- }
- node = ofnode_next_subnode(node);
+ if (ofnode_phy_is_fixed_link(eth_node, &phy_node)) {
+ phydev = phy_device_create(bus, ofnode_to_offset(phy_node),
+ PHY_FIXED_ID, false, interface);
}
return phydev;
--
2.25.1
More information about the U-Boot
mailing list