Skip to content

Commit bed76f6

Browse files
Sam Protsenkokrzk
authored andcommitted
clk: samsung: Extract clocks registration to common function
It might be useful to have a separate clocks registration function, so it can be called from different users. Extract that common code from samsung_cmu_register_one() to samsung_cmu_register_clocks(). Also make that new function global as it's going to be used in other modules further. Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Link: https://lore.kernel.org/r/20230307002423.24454-2-semen.protsenko@linaro.org Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
1 parent 9a8ab39 commit bed76f6

File tree

2 files changed

+30
-18
lines changed

2 files changed

+30
-18
lines changed

drivers/clk/samsung/clk.c

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,33 @@ void samsung_clk_extended_sleep_init(void __iomem *reg_base,
335335
}
336336
#endif
337337

338+
/**
339+
* samsung_cmu_register_clocks() - Register all clocks provided in CMU object
340+
* @ctx: Clock provider object
341+
* @cmu: CMU object with clocks to register
342+
*/
343+
void __init samsung_cmu_register_clocks(struct samsung_clk_provider *ctx,
344+
const struct samsung_cmu_info *cmu)
345+
{
346+
if (cmu->pll_clks)
347+
samsung_clk_register_pll(ctx, cmu->pll_clks, cmu->nr_pll_clks);
348+
if (cmu->mux_clks)
349+
samsung_clk_register_mux(ctx, cmu->mux_clks, cmu->nr_mux_clks);
350+
if (cmu->div_clks)
351+
samsung_clk_register_div(ctx, cmu->div_clks, cmu->nr_div_clks);
352+
if (cmu->gate_clks)
353+
samsung_clk_register_gate(ctx, cmu->gate_clks,
354+
cmu->nr_gate_clks);
355+
if (cmu->fixed_clks)
356+
samsung_clk_register_fixed_rate(ctx, cmu->fixed_clks,
357+
cmu->nr_fixed_clks);
358+
if (cmu->fixed_factor_clks)
359+
samsung_clk_register_fixed_factor(ctx, cmu->fixed_factor_clks,
360+
cmu->nr_fixed_factor_clks);
361+
if (cmu->cpu_clks)
362+
samsung_clk_register_cpu(ctx, cmu->cpu_clks, cmu->nr_cpu_clks);
363+
}
364+
338365
/*
339366
* Common function which registers plls, muxes, dividers and gates
340367
* for each CMU. It also add CMU register list to register cache.
@@ -353,29 +380,12 @@ struct samsung_clk_provider * __init samsung_cmu_register_one(
353380
}
354381

355382
ctx = samsung_clk_init(NULL, reg_base, cmu->nr_clk_ids);
383+
samsung_cmu_register_clocks(ctx, cmu);
356384

357-
if (cmu->pll_clks)
358-
samsung_clk_register_pll(ctx, cmu->pll_clks, cmu->nr_pll_clks);
359-
if (cmu->mux_clks)
360-
samsung_clk_register_mux(ctx, cmu->mux_clks,
361-
cmu->nr_mux_clks);
362-
if (cmu->div_clks)
363-
samsung_clk_register_div(ctx, cmu->div_clks, cmu->nr_div_clks);
364-
if (cmu->gate_clks)
365-
samsung_clk_register_gate(ctx, cmu->gate_clks,
366-
cmu->nr_gate_clks);
367-
if (cmu->fixed_clks)
368-
samsung_clk_register_fixed_rate(ctx, cmu->fixed_clks,
369-
cmu->nr_fixed_clks);
370-
if (cmu->fixed_factor_clks)
371-
samsung_clk_register_fixed_factor(ctx, cmu->fixed_factor_clks,
372-
cmu->nr_fixed_factor_clks);
373385
if (cmu->clk_regs)
374386
samsung_clk_extended_sleep_init(reg_base,
375387
cmu->clk_regs, cmu->nr_clk_regs,
376388
cmu->suspend_regs, cmu->nr_suspend_regs);
377-
if (cmu->cpu_clks)
378-
samsung_clk_register_cpu(ctx, cmu->cpu_clks, cmu->nr_cpu_clks);
379389

380390
samsung_clk_of_add_provider(np, ctx);
381391

drivers/clk/samsung/clk.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@ void samsung_clk_register_pll(struct samsung_clk_provider *ctx,
377377
void samsung_clk_register_cpu(struct samsung_clk_provider *ctx,
378378
const struct samsung_cpu_clock *list, unsigned int nr_clk);
379379

380+
void samsung_cmu_register_clocks(struct samsung_clk_provider *ctx,
381+
const struct samsung_cmu_info *cmu);
380382
struct samsung_clk_provider *samsung_cmu_register_one(
381383
struct device_node *,
382384
const struct samsung_cmu_info *);

0 commit comments

Comments
 (0)