[PATCH v5 11/27] clk: at91: sama7g5: move mux table macros to header file

claudiu beznea claudiu.beznea at tuxon.dev
Sun Jul 14 06:39:51 PDT 2024



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 at microchip.com>

Reviewed-by: Claudiu Beznea <claudiu.beznea at tuxon.dev>

> ---
>  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,



More information about the linux-arm-kernel mailing list