Re: [PATCH v5 11/27] clk: at91: sama7g5: move mux table macros to header file
From: claudiu beznea
Date: Sun Jul 14 2024 - 09:40:10 EST
On 03.07.2024 13:27, Varshini Rajendran wrote:
> Move the mux table init and fill macro function definitions from the
> sama7g5 pmc driver to the pmc.h header file since they will be used
> by other SoC's pmc drivers as well like sam9x7.
>
> Signed-off-by: Varshini Rajendran <varshini.rajendran@xxxxxxxxxxxxx>
Reviewed-by: Claudiu Beznea <claudiu.beznea@xxxxxxxxx>
> ---
> drivers/clk/at91/pmc.h | 16 ++++++++++++++++
> drivers/clk/at91/sama7g5.c | 35 ++++++++++-------------------------
> 2 files changed, 26 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/clk/at91/pmc.h b/drivers/clk/at91/pmc.h
> index 91d1c6305d95..4fb29ca111f7 100644
> --- a/drivers/clk/at91/pmc.h
> +++ b/drivers/clk/at91/pmc.h
> @@ -121,6 +121,22 @@ struct at91_clk_pms {
>
> #define ndck(a, s) (a[s - 1].id + 1)
> #define nck(a) (a[ARRAY_SIZE(a) - 1].id + 1)
> +
> +#define PMC_INIT_TABLE(_table, _count) \
> + do { \
> + u8 _i; \
> + for (_i = 0; _i < (_count); _i++) \
> + (_table)[_i] = _i; \
> + } while (0)
> +
> +#define PMC_FILL_TABLE(_to, _from, _count) \
> + do { \
> + u8 _i; \
> + for (_i = 0; _i < (_count); _i++) { \
> + (_to)[_i] = (_from)[_i]; \
> + } \
> + } while (0)
> +
> struct pmc_data *pmc_data_allocate(unsigned int ncore, unsigned int nsystem,
> unsigned int nperiph, unsigned int ngck,
> unsigned int npck);
> diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c
> index e6eb5afba93d..6706d1305baa 100644
> --- a/drivers/clk/at91/sama7g5.c
> +++ b/drivers/clk/at91/sama7g5.c
> @@ -16,21 +16,6 @@
>
> #include "pmc.h"
>
> -#define SAMA7G5_INIT_TABLE(_table, _count) \
> - do { \
> - u8 _i; \
> - for (_i = 0; _i < (_count); _i++) \
> - (_table)[_i] = _i; \
> - } while (0)
> -
> -#define SAMA7G5_FILL_TABLE(_to, _from, _count) \
> - do { \
> - u8 _i; \
> - for (_i = 0; _i < (_count); _i++) { \
> - (_to)[_i] = (_from)[_i]; \
> - } \
> - } while (0)
> -
> static DEFINE_SPINLOCK(pmc_pll_lock);
> static DEFINE_SPINLOCK(pmc_mck0_lock);
> static DEFINE_SPINLOCK(pmc_mckX_lock);
> @@ -1119,17 +1104,17 @@ static void __init sama7g5_pmc_setup(struct device_node *np)
> if (!mux_table)
> goto err_free;
>
> - SAMA7G5_INIT_TABLE(mux_table, 3);
> - SAMA7G5_FILL_TABLE(&mux_table[3], sama7g5_mckx[i].ep_mux_table,
> - sama7g5_mckx[i].ep_count);
> + PMC_INIT_TABLE(mux_table, 3);
> + PMC_FILL_TABLE(&mux_table[3], sama7g5_mckx[i].ep_mux_table,
> + sama7g5_mckx[i].ep_count);
> for (j = 0; j < sama7g5_mckx[i].ep_count; j++) {
> u8 pll_id = sama7g5_mckx[i].ep[j].pll_id;
> u8 pll_compid = sama7g5_mckx[i].ep[j].pll_compid;
>
> tmp_parent_hws[j] = sama7g5_plls[pll_id][pll_compid].hw;
> }
> - SAMA7G5_FILL_TABLE(&parent_hws[3], tmp_parent_hws,
> - sama7g5_mckx[i].ep_count);
> + PMC_FILL_TABLE(&parent_hws[3], tmp_parent_hws,
> + sama7g5_mckx[i].ep_count);
>
> hw = at91_clk_sama7g5_register_master(regmap, sama7g5_mckx[i].n,
> num_parents, NULL, parent_hws, mux_table,
> @@ -1215,17 +1200,17 @@ static void __init sama7g5_pmc_setup(struct device_node *np)
> if (!mux_table)
> goto err_free;
>
> - SAMA7G5_INIT_TABLE(mux_table, 3);
> - SAMA7G5_FILL_TABLE(&mux_table[3], sama7g5_gck[i].pp_mux_table,
> - sama7g5_gck[i].pp_count);
> + PMC_INIT_TABLE(mux_table, 3);
> + PMC_FILL_TABLE(&mux_table[3], sama7g5_gck[i].pp_mux_table,
> + sama7g5_gck[i].pp_count);
> for (j = 0; j < sama7g5_gck[i].pp_count; j++) {
> u8 pll_id = sama7g5_gck[i].pp[j].pll_id;
> u8 pll_compid = sama7g5_gck[i].pp[j].pll_compid;
>
> tmp_parent_hws[j] = sama7g5_plls[pll_id][pll_compid].hw;
> }
> - SAMA7G5_FILL_TABLE(&parent_hws[3], tmp_parent_hws,
> - sama7g5_gck[i].pp_count);
> + PMC_FILL_TABLE(&parent_hws[3], tmp_parent_hws,
> + sama7g5_gck[i].pp_count);
>
> hw = at91_clk_register_generated(regmap, &pmc_pcr_lock,
> &sama7g5_pcr_layout,