Message ID | 20220301201502.28026-3-tharvey@gateworks.com |
---|---|
State | Accepted |
Commit | f3409d7ae6127b6aa33ec9cdb63808745ed4b56e |
Delegated to: | Ramon Fried |
Headers | show |
Series | prevent undesired de-assertion of phy-reset | expand |
On Tue, Mar 1, 2022 at 2:15 PM Tim Harvey <tharvey@gateworks.com> wrote: > > 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 <sean.anderson@seco.com> > Signed-off-by: Tim Harvey <tharvey@gateworks.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
On Tue, Mar 1, 2022 at 10:38 PM Joe Hershberger <joe.hershberger@ni.com> wrote: > > On Tue, Mar 1, 2022 at 2:15 PM Tim Harvey <tharvey@gateworks.com> wrote: > > > > 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 <sean.anderson@seco.com> > > Signed-off-by: Tim Harvey <tharvey@gateworks.com> > > Acked-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
On Thu, Mar 3, 2022 at 9:55 AM Ramon Fried <rfried.dev@gmail.com> wrote: > > On Tue, Mar 1, 2022 at 10:38 PM Joe Hershberger <joe.hershberger@ni.com> wrote: > > > > On Tue, Mar 1, 2022 at 2:15 PM Tim Harvey <tharvey@gateworks.com> wrote: > > > > > > 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 <sean.anderson@seco.com> > > > Signed-off-by: Tim Harvey <tharvey@gateworks.com> > > > > Acked-by: Joe Hershberger <joe.hershberger@ni.com> > Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Applied to u-boot-net/next Thanks, Ramon
diff --git a/drivers/net/eth-phy-uclass.c b/drivers/net/eth-phy-uclass.c index 1f285f7afd20..27b77444a0c5 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;
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 <sean.anderson@seco.com> Signed-off-by: Tim Harvey <tharvey@gateworks.com> --- drivers/net/eth-phy-uclass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)