[PATCH 0/3] clk: socfpga: convert clock managers to CLK_OF_DECLARE()

adrian.ho.yin.ng@altera.com posted 3 patches 2 weeks ago
drivers/clk/socfpga/clk-agilex.c  | 83 +++++++++++--------------------
drivers/clk/socfpga/clk-agilex5.c | 56 +++++---------------
drivers/clk/socfpga/clk-s10.c     | 50 +++++--------------
3 files changed, 56 insertions(+), 133 deletions(-)
[PATCH 0/3] clk: socfpga: convert clock managers to CLK_OF_DECLARE()
Posted by adrian.ho.yin.ng@altera.com 2 weeks ago
From: Adrian Ng Ho Yin <adrian.ho.yin.ng@altera.com>

The SoCFPGA Stratix10, Agilex, and Agilex5 clock managers are currently
registered as platform drivers via core_initcall(). That is too late for
early OF clock consumers: TIMER_OF_DECLARE callbacks run from time_init()
before those drivers probe, and the DW APB timer cannot defer, so
clk_get() fails and the timer is never brought up.

As discussed on the list [1], convert these drivers to CLK_OF_DECLARE()
so the providers are registered from of_clk_init() and clocks are
available before platform devices probe.

This series applies the same conversion to Agilex (including eASIC N5X),
Agilex5, and Stratix10.

Boot-tested on Agilex7 (agilex7dksiagf014eb): dw_apb_timer registers as
clocksource early, with no clk_get() failures.

[1] https://lore.kernel.org/all/20260903175356.BF1461F000E9@smtp.kernel.org/

Adrian Ng Ho Yin (3):
  clk: socfpga: agilex: convert to CLK_OF_DECLARE()
  clk: socfpga: agilex5: convert to CLK_OF_DECLARE()
  clk: socfpga: stratix10: convert to CLK_OF_DECLARE()

 drivers/clk/socfpga/clk-agilex.c  | 83 +++++++++++--------------------
 drivers/clk/socfpga/clk-agilex5.c | 56 +++++---------------
 drivers/clk/socfpga/clk-s10.c     | 50 +++++--------------
 3 files changed, 56 insertions(+), 133 deletions(-)

-- 
2.49.GIT
Re: [PATCH 0/3] clk: socfpga: convert clock managers to CLK_OF_DECLARE()
Posted by Dinh Nguyen 6 days, 20 hours ago

On 9/11/26 02:01, adrian.ho.yin.ng@altera.com wrote:
> From: Adrian Ng Ho Yin <adrian.ho.yin.ng@altera.com>
> 
> The SoCFPGA Stratix10, Agilex, and Agilex5 clock managers are currently
> registered as platform drivers via core_initcall(). That is too late for
> early OF clock consumers: TIMER_OF_DECLARE callbacks run from time_init()
> before those drivers probe, and the DW APB timer cannot defer, so
> clk_get() fails and the timer is never brought up.
> 
> As discussed on the list [1], convert these drivers to CLK_OF_DECLARE()
> so the providers are registered from of_clk_init() and clocks are
> available before platform devices probe.
> 
> This series applies the same conversion to Agilex (including eASIC N5X),
> Agilex5, and Stratix10.
> 
> Boot-tested on Agilex7 (agilex7dksiagf014eb): dw_apb_timer registers as
> clocksource early, with no clk_get() failures.
> 
Please provide these details in each of the commits.

Thanks,
Dinh