diff options
Diffstat (limited to 'drivers/core/ofnode.c')
-rw-r--r-- | drivers/core/ofnode.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c index 445b7ad5ad..f644a593d3 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; +} |