[PATCH RFC 0/3] clk: support arbitrary clk_register() sequence
Yang Xiwen
forbidden405 at outlook.com
Wed Jul 9 18:29:59 CEST 2025
On 6/21/2025 6:54 PM, Yang Xiwen via B4 Relay wrote:
> Currently U-Boot clk framework mandates the sequence of registering clks
> to begin from root, and then its children. This is an addtional
> requirement that doesn't exist in Linux kernel, which makes clk driver
> porting more difficult.
>
> Let's handle this entirely in clk framework and give driver the freedom
> to register clocks in any order.
>
> This is done by assigning the parent "lazily". It will cache the parent
> name in the core clk struct and try to refresh it when clk consumers
> call clk_get_parent(). It's transparent to clk consumers as long as they
> only use APIs provided by clk framework.
>
> I've ran `ut dm clk*` and verified these commits does not break any
> existing testcases. Though no new testcase is added because I think
> existing testcases already test the logic very well.
>
> Signed-off-by: Yang Xiwen <forbidden405 at outlook.com>
> ---
> Yang Xiwen (3):
> drivers: core: device: set new parent when old parent is NULL
> clk: allow assigning parent lazily
> clk: sandbox: reverse the order to register clk i2c_root and i2c
>
> drivers/clk/clk-uclass.c | 47 +++++++++++++++++++++++++++++++------------
> drivers/clk/clk.c | 14 +++++++++++--
> drivers/clk/clk_sandbox_ccf.c | 6 +++---
> drivers/core/device.c | 5 +++++
> include/clk.h | 2 ++
> 5 files changed, 56 insertions(+), 18 deletions(-)
> ---
> base-commit: 721eecd9cbf2cc59c5230abd37d02d4a02f75cc7
> change-id: 20250621-clk-reparent-89d75f6a8e09
>
> Best regards,
Ping for review. It's been 3 weeks already.
This patchset already passed local unit tests, so rather safe to merge.
--
Regards,
Yang Xiwen
More information about the U-Boot
mailing list