
On Wed, May 31, 2023 at 1:51 AM Marek Vasut marek.vasut+renesas@mailbox.org wrote:
In case a new PHY is created and DM_ETH_PHY is enabled, bind a generic PHY driver from ETH_PHY uclass to the PHY to have a matching DM representation of that PHY.
Signed-off-by: Marek Vasut marek.vasut+renesas@mailbox.org
Cc: Geert Uytterhoeven geert+renesas@glider.be Cc: Joe Hershberger joe.hershberger@ni.com Cc: Michal Simek michal.simek@amd.com Cc: Nishanth Menon nm@ti.com Cc: Ramon Fried rfried.dev@gmail.com
drivers/net/phy/ethernet_id.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/drivers/net/phy/ethernet_id.c b/drivers/net/phy/ethernet_id.c index a715e83db98..877a51c3d00 100644 --- a/drivers/net/phy/ethernet_id.c +++ b/drivers/net/phy/ethernet_id.c @@ -7,6 +7,8 @@
#include <common.h> #include <dm/device_compat.h> +#include <dm/device-internal.h> +#include <dm/lists.h> #include <phy.h> #include <linux/delay.h> #include <asm/gpio.h> @@ -17,6 +19,8 @@ struct phy_device *phy_connect_phy_id(struct mii_dev *bus, struct udevice *dev, struct phy_device *phydev; struct ofnode_phandle_args phandle_args; struct gpio_desc gpio;
const char *node_name;
struct udevice *pdev; ofnode node; u32 id, assert, deassert; u16 vendor, device;
@@ -72,5 +76,18 @@ struct phy_device *phy_connect_phy_id(struct mii_dev *bus, struct udevice *dev, if (phydev) phydev->node = node;
if (IS_ENABLED(CONFIG_DM_ETH_PHY) && ofnode_valid(node)) {
node_name = ofnode_get_name(node);
ret = device_bind_driver_to_node(dev, "eth_phy_generic_drv",
node_name, node,
&pdev);
if (ret)
return NULL;
ret = device_probe(pdev);
if (ret)
return NULL;
}
return phydev;
}
2.39.2
Reviewed-by: Ramon Fried rfried.dev@gmail.com