aboutsummaryrefslogtreecommitdiff
path: root/drivers/core/ofnode.c
diff options
context:
space:
mode:
authorMarek BehĂșn <marek.behun@nic.cz>2022-04-07 00:33:01 +0200
committerRamon Fried <ramon@neureality.ai>2022-04-10 08:44:12 +0300
commit123ca114e07ecf28aa2538748d733e2b22d8b8b5 (patch)
tree0a5481e51e4e50b33daf4d10f37574f6f797b04f /drivers/core/ofnode.c
parent9c06b4815ce1d663085c214133762614bba79fbe (diff)
downloadu-boot-123ca114e07ecf28aa2538748d733e2b22d8b8b5.zip
u-boot-123ca114e07ecf28aa2538748d733e2b22d8b8b5.tar.gz
u-boot-123ca114e07ecf28aa2538748d733e2b22d8b8b5.tar.bz2
net: introduce helpers to get PHY interface mode from a device/ofnode
Add helpers ofnode_read_phy_mode() and dev_read_phy_mode() to parse the "phy-mode" / "phy-connection-type" property. Add corresponding UT test. Use them treewide. This allows us to inline the phy_get_interface_by_name() into ofnode_read_phy_mode(), since the former is not used anymore. Signed-off-by: Marek BehĂșn <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
Diffstat (limited to 'drivers/core/ofnode.c')
-rw-r--r--drivers/core/ofnode.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index 445b7ad..f644a59 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -1219,3 +1219,26 @@ ofnode ofnode_get_phy_node(ofnode node)
return args.node;
}
+
+phy_interface_t ofnode_read_phy_mode(ofnode node)
+{
+ const char *mode;
+ int i;
+
+ assert(ofnode_valid(node));
+
+ mode = ofnode_read_string(node, "phy-mode");
+ if (!mode)
+ mode = ofnode_read_string(node, "phy-connection-type");
+
+ if (!mode)
+ return PHY_INTERFACE_MODE_NONE;
+
+ for (i = 0; i < PHY_INTERFACE_MODE_COUNT; i++)
+ if (!strcmp(mode, phy_interface_strings[i]))
+ return i;
+
+ debug("%s: Invalid PHY interface '%s'\n", __func__, mode);
+
+ return PHY_INTERFACE_MODE_NONE;
+}