Make `mdiobus_register_reset()` function handle both gpiod and reset-controller-based reset registration. Signed-off-by: Bence Csókás --- drivers/net/phy/mdio_bus.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index cad6ed3aa10b643ad63fac15bfe7551446c8dca1..9117f0f93756f38acb2c367e163ef06616eab6e4 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c @@ -33,8 +33,10 @@ #define CREATE_TRACE_POINTS #include -static int mdiobus_register_gpiod(struct mdio_device *mdiodev) +static int mdiobus_register_reset(struct mdio_device *mdiodev) { + struct reset_control *reset; + /* Deassert the optional reset signal */ mdiodev->reset_gpio = gpiod_get_optional(&mdiodev->dev, "reset", GPIOD_OUT_LOW); @@ -44,13 +46,6 @@ static int mdiobus_register_gpiod(struct mdio_device *mdiodev) if (mdiodev->reset_gpio) gpiod_set_consumer_name(mdiodev->reset_gpio, "PHY reset"); - return 0; -} - -static int mdiobus_register_reset(struct mdio_device *mdiodev) -{ - struct reset_control *reset; - reset = reset_control_get_optional_exclusive(&mdiodev->dev, "phy"); if (IS_ERR(reset)) return PTR_ERR(reset); @@ -68,10 +63,6 @@ int mdiobus_register_device(struct mdio_device *mdiodev) return -EBUSY; if (mdiodev->flags & MDIO_DEVICE_FLAG_PHY) { - err = mdiobus_register_gpiod(mdiodev); - if (err) - return err; - err = mdiobus_register_reset(mdiodev); if (err) return err; --- base-commit: 1b237f190eb3d36f52dffe07a40b5eb210280e00 change-id: 20250825-b4-phy-rst-mv-prep-09de61d4790f Best regards, -- Bence Csókás