[PATCH 1/3] net: phy: Make eth_phy_get_addr() generic

Marek Vasut marek.vasut+renesas at mailbox.org
Sun Jan 21 18:29:33 CET 2024


Move eth_phy_get_addr() from drivers/net/eth-phy-uclass.c to
drivers/net/phy/phy.c . The eth_phy_get_addr() code is generic
and does not depend on DM_ETH_PHY , make it always available.

The dm/device_compat.h is pulled in to make dev_dbg() available.

Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
Cc: Joe Hershberger <joe.hershberger at ni.com>
Cc: Paul Barker <paul.barker.ct at bp.renesas.com>
Cc: Ramon Fried <rfried.dev at gmail.com>
---
 drivers/net/eth-phy-uclass.c | 16 ----------------
 drivers/net/phy/phy.c        | 25 +++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/drivers/net/eth-phy-uclass.c b/drivers/net/eth-phy-uclass.c
index 9d1e8d38ffa..237c3b7de15 100644
--- a/drivers/net/eth-phy-uclass.c
+++ b/drivers/net/eth-phy-uclass.c
@@ -109,22 +109,6 @@ struct mii_dev *eth_phy_get_mdio_bus(struct udevice *eth_dev)
 	return NULL;
 }
 
-int eth_phy_get_addr(struct udevice *dev)
-{
-	struct ofnode_phandle_args phandle_args;
-	int reg;
-
-	if (dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
-				       &phandle_args)) {
-		dev_dbg(dev, "Failed to find phy-handle");
-		return -ENODEV;
-	}
-
-	reg = ofnode_read_u32_default(phandle_args.node, "reg", 0);
-
-	return reg;
-}
-
 /* parsing generic properties of devicetree/bindings/net/ethernet-phy.yaml */
 static int eth_phy_of_to_plat(struct udevice *dev)
 {
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 63b3e46f101..0d1a98bbbca 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/device_compat.h>
 #include <dm/of_extra.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
@@ -28,6 +29,30 @@ DECLARE_GLOBAL_DATA_PTR;
 
 /* Generic PHY support and helper functions */
 
+/**
+ * eth_phy_get_addr - get PHY MDIO address from DT
+ * @dev: the udevice struct of the MAC
+ *
+ * Return PHY MDIO address read out of a PHY DT node "reg" property.
+ * The PHY DT node is located by resolving MAC "phy-handle" property.
+ * Returns PHY MDIO address on success, negative on failure.
+ */
+int eth_phy_get_addr(struct udevice *dev)
+{
+	struct ofnode_phandle_args phandle_args;
+	int reg;
+
+	if (dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
+				       &phandle_args)) {
+		dev_dbg(dev, "Failed to find phy-handle");
+		return -ENODEV;
+	}
+
+	reg = ofnode_read_u32_default(phandle_args.node, "reg", 0);
+
+	return reg;
+}
+
 /**
  * genphy_config_advert - sanitize and advertise auto-negotiation parameters
  * @phydev: target phy_device struct
-- 
2.43.0



More information about the U-Boot mailing list