netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] net: mdiobus: reset deassert delay
@ 2020-07-28  9:02 Bruno Thomsen
  2020-07-28  9:02 ` [PATCH 2/2] dt-bindings: net: mdio: update reset-delay-us description Bruno Thomsen
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Bruno Thomsen @ 2020-07-28  9:02 UTC (permalink / raw)
  To: netdev
  Cc: Bruno Thomsen, Andrew Lunn, Fabio Estevam, Florian Fainelli,
	Russell King - ARM Linux, Heiner Kallweit, Lars Alex Pedersen,
	Bruno Thomsen

The current reset logic only has a delay during assert.
This reuses the delay value as deassert delay to ensure
PHYs are ready for commands. Delays are typically needed
when external hardware slows down reset release with a
RC network. This solution does not need any new device
tree bindings.
It also improves handling of long delays (>20ms) by using
the generic fsleep() for selecting appropriate delay
function.

Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
---
 drivers/net/phy/mdio_bus.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 6ceee82b2839..84d5ab07fe16 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -627,8 +627,9 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner)
 		bus->reset_gpiod = gpiod;
 
 		gpiod_set_value_cansleep(gpiod, 1);
-		udelay(bus->reset_delay_us);
+		fsleep(bus->reset_delay_us);
 		gpiod_set_value_cansleep(gpiod, 0);
+		fsleep(bus->reset_delay_us);
 	}
 
 	if (bus->reset) {

base-commit: 92ed301919932f777713b9172e525674157e983d
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-07-28 18:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-28  9:02 [PATCH 1/2] net: mdiobus: reset deassert delay Bruno Thomsen
2020-07-28  9:02 ` [PATCH 2/2] dt-bindings: net: mdio: update reset-delay-us description Bruno Thomsen
2020-07-28 12:32 ` [PATCH 1/2] net: mdiobus: reset deassert delay Fabio Estevam
2020-07-28 12:49   ` Bruno Thomsen
2020-07-28 18:47   ` Andrew Lunn
2020-07-28 18:41 ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).