Message ID | 135082dfafaa8bc106286dfbe7dd94b708c33f4b.1584825247.git.mirq-linux@rere.qmqm.pl (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | clk: at91: support configuring more clock parents via DT | expand |
On 21/03/2020 22:18:04+0100, Michał Mirosław wrote: > We need to have clocks accessible via phandle to select them > as peripheral clock parent using assigned-clock-parents in DT. > PLLACK and AUDIOPLLCK were missing for sama5d2. Add them. > If we go this route, because PLLA is available on all the SoC then it makes sense adding it in all the PMC drivers instead of just the sama5d2. > Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> > --- > v2: rebase to clk/clk-at91 branch > v3: no changes > --- > drivers/clk/at91/sama5d2.c | 6 +++++- > include/dt-bindings/clock/at91.h | 2 ++ > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c > index ae5e83cadb3d..b3fa2291ccd8 100644 > --- a/drivers/clk/at91/sama5d2.c > +++ b/drivers/clk/at91/sama5d2.c > @@ -166,7 +166,7 @@ static void __init sama5d2_pmc_setup(struct device_node *np) > if (IS_ERR(regmap)) > return; > > - sama5d2_pmc = pmc_data_allocate(PMC_I2S1_MUX + 1, > + sama5d2_pmc = pmc_data_allocate(PMC_AUDIOPLLCK + 1, > nck(sama5d2_systemck), > nck(sama5d2_periph32ck), > nck(sama5d2_gck), 3); > @@ -202,6 +202,8 @@ static void __init sama5d2_pmc_setup(struct device_node *np) > if (IS_ERR(hw)) > goto err_free; > > + sama5d2_pmc->chws[PMC_PLLACK] = hw; > + > hw = at91_clk_register_audio_pll_frac(regmap, "audiopll_fracck", > "mainck"); > if (IS_ERR(hw)) > @@ -217,6 +219,8 @@ static void __init sama5d2_pmc_setup(struct device_node *np) > if (IS_ERR(hw)) > goto err_free; > > + sama5d2_pmc->chws[PMC_AUDIOPLLCK] = hw; > + > regmap_sfr = syscon_regmap_lookup_by_compatible("atmel,sama5d2-sfr"); > if (IS_ERR(regmap_sfr)) > regmap_sfr = NULL; > diff --git a/include/dt-bindings/clock/at91.h b/include/dt-bindings/clock/at91.h > index c3f4aa6a2d29..e57362e98129 100644 > --- a/include/dt-bindings/clock/at91.h > +++ b/include/dt-bindings/clock/at91.h > @@ -21,6 +21,8 @@ > #define PMC_MCK2 4 > #define PMC_I2S0_MUX 5 > #define PMC_I2S1_MUX 6 > +#define PMC_PLLACK 7 > +#define PMC_AUDIOPLLCK 8 > > #ifndef AT91_PMC_MOSCS > #define AT91_PMC_MOSCS 0 /* MOSCS Flag */ > -- > 2.20.1 >
diff --git a/drivers/clk/at91/sama5d2.c b/drivers/clk/at91/sama5d2.c index ae5e83cadb3d..b3fa2291ccd8 100644 --- a/drivers/clk/at91/sama5d2.c +++ b/drivers/clk/at91/sama5d2.c @@ -166,7 +166,7 @@ static void __init sama5d2_pmc_setup(struct device_node *np) if (IS_ERR(regmap)) return; - sama5d2_pmc = pmc_data_allocate(PMC_I2S1_MUX + 1, + sama5d2_pmc = pmc_data_allocate(PMC_AUDIOPLLCK + 1, nck(sama5d2_systemck), nck(sama5d2_periph32ck), nck(sama5d2_gck), 3); @@ -202,6 +202,8 @@ static void __init sama5d2_pmc_setup(struct device_node *np) if (IS_ERR(hw)) goto err_free; + sama5d2_pmc->chws[PMC_PLLACK] = hw; + hw = at91_clk_register_audio_pll_frac(regmap, "audiopll_fracck", "mainck"); if (IS_ERR(hw)) @@ -217,6 +219,8 @@ static void __init sama5d2_pmc_setup(struct device_node *np) if (IS_ERR(hw)) goto err_free; + sama5d2_pmc->chws[PMC_AUDIOPLLCK] = hw; + regmap_sfr = syscon_regmap_lookup_by_compatible("atmel,sama5d2-sfr"); if (IS_ERR(regmap_sfr)) regmap_sfr = NULL; diff --git a/include/dt-bindings/clock/at91.h b/include/dt-bindings/clock/at91.h index c3f4aa6a2d29..e57362e98129 100644 --- a/include/dt-bindings/clock/at91.h +++ b/include/dt-bindings/clock/at91.h @@ -21,6 +21,8 @@ #define PMC_MCK2 4 #define PMC_I2S0_MUX 5 #define PMC_I2S1_MUX 6 +#define PMC_PLLACK 7 +#define PMC_AUDIOPLLCK 8 #ifndef AT91_PMC_MOSCS #define AT91_PMC_MOSCS 0 /* MOSCS Flag */
We need to have clocks accessible via phandle to select them as peripheral clock parent using assigned-clock-parents in DT. PLLACK and AUDIOPLLCK were missing for sama5d2. Add them. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- v2: rebase to clk/clk-at91 branch v3: no changes --- drivers/clk/at91/sama5d2.c | 6 +++++- include/dt-bindings/clock/at91.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-)