[PATCH RFC 0/3] clk: support arbitrary clk_register() sequence
Yang Xiwen via B4 Relay
devnull+forbidden405.outlook.com at kernel.org
Sat Jun 21 12:54:17 CEST 2025
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,
--
Yang Xiwen <forbidden405 at outlook.com>
More information about the U-Boot
mailing list