The RK35xx clock drivers typically initialize a few clocks when probed,
with some clocks only in SPL. However, the clock driver is only probed
on demand, so this initialization is fully skipped when there is no SPL
consumer requests a clock, e.g. when booting from RAM/USB.
Prior to the commit c6bba31dbdd4 ("rockchip: spl-boot-order: Defer probe
of boot device") all boot devices where typically probed, with a side
effect that clock driver likely also where probed, prior to the SPL
boot_from_devices() call.
This series flag RK35xx clock drivers to be probed after bind in SPL to
help ensure a deterministic probe and clock initialization behavior
prior to booting from devices.
This should help restore old behavior, e.g. that SPLL is initialized on
RK3588 and CPU core rate is initialized on RK3576 when booting from
RAM/USB.
The RK3506 clock driver is initializing a few clocks in bind() ops so
it is not affected, or rather it worked around similar issue for USB/RAM
boot using a slightly different approach.
The series may possibly depend on the series "rockchip: Miscellaneous
RK35xx clock fixes" [1] for a clean apply.
Changes in v3:
- Add an optional patch to delay ungate of PCIE30PHY_REF clocks
- Collect r-b tags
Changes in v2:
- Update cover letter and commit messages
- Collect r-b and t-b tags
[1] https://patch.msgid.link/[email protected]/
Jonas Karlman (5):
clk: rockchip: rk3568: Ungate PCIE30PHY_REF clocks when PCI is enabled
clk: rockchip: rk3568: Always initialize clocks in SPL
clk: rockchip: rk3588: Always initialize clocks in SPL
clk: rockchip: rk3576: Always initialize clocks in SPL
clk: rockchip: rk3528: Always initialize clocks in SPL
drivers/clk/rockchip/clk_rk3528.c | 4 ++++
drivers/clk/rockchip/clk_rk3568.c | 19 +++++++++++++++----
drivers/clk/rockchip/clk_rk3576.c | 4 ++++
drivers/clk/rockchip/clk_rk3588.c | 14 ++++++++++++++
4 files changed, 37 insertions(+), 4 deletions(-)
--
2.55.0