[PATCH 0/2] prevent undesired de-assertion of phy-reset

Tim Harvey
2022-03-01T20:15:30Z

Some PHY's have strict requirements on reset timings which can be
violated if the PHY is taken out of reset before a proper reset pulse is
performed.

When gpio_request_by_name is used for reset gpios without
GPIOD_IS_OUT_ACTIVE the GPIO will be de-asserted when requested taking
the PHY out of reset. Resolve this by adding the GPIOD_IS_OUT_ACTIVE
flag.

There are 42 occurances of gpio_request_by_name in U-Boot for gpio's
with 'reset' in their name yet the only one that uses
GPIOD_IS_OUT_ACTIVE is drivers/net/dwc_eth_qos.c. While I think setting
GPIOD_IS_OUT_ACTIVE is the right thing to do, I'm only changing the ones
that I have run into issues with:
drivers/net/eth-phy-uclass.c
drivers/net/fec_mxc.c

Both of these have functions that are called that assert, delay,
de-assert, delay such that I know they will properly be taken out of
reset.

The Linux kernel had a similar issue [1]

Tim Harvey (2):
net: fec: prevent undesired de-assertion of phy-reset on request
net: eth-phy: prevent undesired de-assertion of phy-reset on request

drivers/net/eth-phy-uclass.c | 2 +-
drivers/net/fec_mxc.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

--
[1]
https://lore.kernel.org/all/20210202143239.10714-1-mike.looijmans@topic.nl/
2.17.1