Re: [PATCH 1/3] clk: socfpga: agilex: convert to CLK_OF_DECLARE()
From: Dinh Nguyen
Date: Mon Sep 21 2026 - 13:51:14 EST
Hi Brian,
On 9/21/26 09:52, Brian Masney wrote:
+ Bartosz
Hi Adrian,
On Mon, Sep 21, 2026 at 11:17:13AM +0800, Ng, Adrian Ho Yin wrote:
subsys_initcall() / subsys_platform_driver() would not fix the failure we
are hitting. Both still run after time_init(), while the DW APB timer is
registered via TIMER_OF_DECLARE from timer_probe().
So moving from core_initcall() to subsys_initcall() changes nothing for
this consumer: the timer cannot defer, clk_get() still fails, and the timer
is never brought up. That is why these patches use CLK_OF_DECLARE(): the
provider must be registered from of_clk_init() so clocks exist before
TIMER_OF_DECLARE runs.
On the broader point about CLK_OF_DECLARE abuse: I agree it should not be
used merely to beat platform device probe. If the preferred approach is to
keep the clkmgr as a platform driver (subsys_platform_driver()) and give the
DW APB timer nodes a fixed clock-frequency instead of a clocks phandle, I
can respin that way. Please let me know which you prefer.
I wanted confirmation that you wanted to use CLK_OF_DECLARE() for the
system timers.
Will you by chance be at Linux Plumbers Conference in two weeks? Bartosz
is leading a discussion about the future of CLK_OF_DECLARE() and
friends.
https://lpc.events/event/20/contributions/2503/
We want to minimize the use of CLK_OF_DECLARE(), so the preference is
to keep this as a platform driver if possible. If you are able to get
around using CLK_OF_DECLARE() by initially running the system timers
with a fixed frequency then I think that would be preferable.
I originally pushed back on hard-coding a fixed frequency for these timers because if the bootloader changed the frequency of the clocks for these timers, we may run in to a problem. But I don't think the bootloader had changed the clock frequency in a long time, so it may not really be a problem. But it just feels wrong to not take in a frequency from the clock driver.
The other option is perhaps adding the ability to defer probe these timers?
Thanks,
Dinh