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>
diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index 429aee2..3bd3ba4 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -12,6 +12,7 @@
#include <dm/of.h>
#include <dm/of_access.h>
#include <log.h>
+#include <phy_interface.h>
/* Enable checks to protect against invalid calls */
#undef OF_CHECKS
@@ -1231,4 +1232,16 @@
*/
ofnode ofnode_get_phy_node(ofnode eth_node);
+/**
+ * ofnode_read_phy_mode() - Read PHY connection type from a MAC node
+ *
+ * This function parses the "phy-mode" / "phy-connection-type" property and
+ * returns the corresponding PHY interface type.
+ *
+ * @mac_node: ofnode containing the property
+ * Return: one of PHY_INTERFACE_MODE_* constants, PHY_INTERFACE_MODE_NONE on
+ * error
+ */
+phy_interface_t ofnode_read_phy_mode(ofnode mac_node);
+
#endif
diff --git a/include/dm/read.h b/include/dm/read.h
index 899eb81..bfa2645 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -757,6 +757,18 @@
*/
ofnode dev_get_phy_node(const struct udevice *dev);
+/**
+ * dev_read_phy_mode() - Read PHY connection type from a MAC
+ *
+ * This function parses the "phy-mode" / "phy-connection-type" property and
+ * returns the corresponding PHY interface type.
+ *
+ * @dev: device representing the MAC
+ * Return: one of PHY_INTERFACE_MODE_* constants, PHY_INTERFACE_MODE_NONE on
+ * error
+ */
+phy_interface_t dev_read_phy_mode(const struct udevice *dev);
+
#else /* CONFIG_DM_DEV_READ_INLINE is enabled */
#include <asm/global_data.h>
@@ -1111,6 +1123,11 @@
return ofnode_get_phy_node(dev_ofnode(dev));
}
+static inline phy_interface_t dev_read_phy_mode(const struct udevice *dev)
+{
+ return ofnode_read_phy_mode(dev_ofnode(dev));
+}
+
#endif /* CONFIG_DM_DEV_READ_INLINE */
/**
diff --git a/include/phy.h b/include/phy.h
index 9ea4bd4..399e050 100644
--- a/include/phy.h
+++ b/include/phy.h
@@ -569,14 +569,6 @@
int get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id);
/**
- * phy_get_interface_by_name() - Look up a PHY interface name
- *
- * @str: PHY interface name, e.g. "mii"
- * @return: PHY_INTERFACE_MODE_... value, or -1 if not found
- */
-int phy_get_interface_by_name(const char *str);
-
-/**
* phy_interface_is_rgmii - Convenience function for testing if a PHY interface
* is RGMII (all variants)
* @phydev: the phy_device struct