Commit 5bf194ad authored by Varshini Rajendran's avatar Varshini Rajendran Committed by Claudiu Beznea
Browse files

clk: at91: sama7g5: move mux table macros to header file



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: default avatarVarshini Rajendran <varshini.rajendran@microchip.com>
Reviewed-by: default avatarClaudiu Beznea <claudiu.beznea@tuxon.dev>
Link: https://lore.kernel.org/r/20240729070753.1990866-1-varshini.rajendran@microchip.com


Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea@tuxon.dev>
parent 5299f801
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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);
+10 −25
Original line number Diff line number Diff line
@@ -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,8 +1104,8 @@ 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,
		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;
@@ -1128,7 +1113,7 @@ static void __init sama7g5_pmc_setup(struct device_node *np)

			tmp_parent_hws[j] = sama7g5_plls[pll_id][pll_compid].hw;
		}
		SAMA7G5_FILL_TABLE(&parent_hws[3], tmp_parent_hws,
		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,
@@ -1215,8 +1200,8 @@ 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,
		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;
@@ -1224,7 +1209,7 @@ static void __init sama7g5_pmc_setup(struct device_node *np)

			tmp_parent_hws[j] = sama7g5_plls[pll_id][pll_compid].hw;
		}
		SAMA7G5_FILL_TABLE(&parent_hws[3], tmp_parent_hws,
		PMC_FILL_TABLE(&parent_hws[3], tmp_parent_hws,
			       sama7g5_gck[i].pp_count);

		hw = at91_clk_register_generated(regmap, &pmc_pcr_lock,