[PATCH] net: phy: defer PHY reset settle time off the boot path

Sascha Hauer s.hauer at pengutronix.de
Mon Jul 27 06:03:14 PDT 2026


On Fri, 10 Jul 2026 12:26:38 +0200, Sascha Hauer wrote:
> of_mdiobus_register() reset each PHY by asserting its reset GPIO, waiting
> the full reset-assert and reset-deassert delays inline, and only then
> registering the PHY (which reads its ID over MDIO). Waiting for the
> reset deassert adds to the startup time, so do it asynchronously
> 
> Split the reset so the (usually short) assert pulse is still done inline,
> but the potentially long deassert settle time is not waited for at reset
> time. of_mdiobus_reset_phy() now returns the point in time at which the
> PHY becomes usable and the PHY is queued on a per-bus deferred list
> instead of being registered immediately. The actual registration, and
> with it the wait for the remaining settle time, happens on first access
> to the bus via mdiobus_flush_deferred(), hooked into mdiobus_scan() and
> eth_open_all(). This lets the settle time elapse in the background while
> the rest of boot proceeds; by the time the PHY is first accessed the wait
> is usually already over.
> 
> [...]

Applied, thanks!

[1/1] net: phy: defer PHY reset settle time off the boot path
      https://git.pengutronix.de/cgit/barebox/commit/?id=efdbd65cbfd5 (link may not be stable)

Best regards,
-- 
Sascha Hauer <s.hauer at pengutronix.de>




More information about the barebox mailing list