[PATCH v3 2/4] pci: pcie_dw_rockchip: enable clocks before PHY init
Heiko Stübner
heiko at sntech.de
Tue Jun 9 20:50:26 CEST 2026
Am Mittwoch, 20. Mai 2026, 08:05:28 Mitteleuropäische Sommerzeit schrieb Daniele Briguglio:
> rockchip_pcie_init_port() calls generic_phy_init() and
> generic_phy_power_on() before clk_enable_bulk(), so the PCIe PHY
> tries to lock its PLL while the external reference clock can still
> be off. Where the refclk is generated by an external oscillator
> gated by a regulator that is not marked regulator-always-on (e.g.
> the PI6C clock generator on radxa rock-3b modelled with the
> gated-fixed-clock binding), this results in a PHY lock timeout:
>
> rockchip_pcie3phy phy at fe8c0000: lock failed 0x6890000
> rockchip_pcie3phy phy at fe8c0000: PHY: Failed to init phy at fe8c0000: -110.
> pcie_dw_rockchip pcie at fe280000: failed to init phy (ret=-110)
>
> Move clk_enable_bulk() ahead of generic_phy_init() so that any
> clock-frequency consumer (including external gated refclks) is
> powered up before the PHY PLL attempts to lock.
>
> Reported-by: Jonas Karlman <jonas at kwiboo.se>
> Signed-off-by: Daniele Briguglio <hello at superkali.me>
Reviewed-by: Heiko Stuebner <heiko at sntech.de>
Tested-by: Heiko Stuebner <heiko at sntech.de> # rock-5-itx
More information about the U-Boot
mailing list