From: Tim Harvey Date: Tue, 1 Mar 2022 20:15:02 +0000 (-0800) Subject: net: eth-phy: prevent undesired de-assertion of phy-reset on request X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=f3409d7ae6127b6aa33ec9cdb63808745ed4b56e;p=u-boot.git net: eth-phy: prevent undesired de-assertion of phy-reset on request When gpio_request_by_name allocates a gpio output it by default will de-assert the gpio which for phy-reset will take the PHY out of reset. As this occurs before eth_phy_reset is called to assert the reset line it can cause undesired affects if reset timings are not properly met. Configure the gpio with GPIOD_IS_OUT_ACTIVE so that reset is kept active (reset asserted) to avoid this. Cc: Sean Anderson Signed-off-by: Tim Harvey Acked-by: Joe Hershberger Reviewed-by: Ramon Fried --- diff --git a/drivers/net/eth-phy-uclass.c b/drivers/net/eth-phy-uclass.c index 1f285f7afd..27b77444a0 100644 --- a/drivers/net/eth-phy-uclass.c +++ b/drivers/net/eth-phy-uclass.c @@ -137,7 +137,7 @@ static int eth_phy_of_to_plat(struct udevice *dev) /* search "reset-gpios" in phy node */ ret = gpio_request_by_name(dev, "reset-gpios", 0, &uc_priv->reset_gpio, - GPIOD_IS_OUT); + GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); if (ret && ret != -ENOENT) return ret;