Message ID | 20240918135957.290101-1-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive) |
---|---|
State | Awaiting Upstream, archived |
Headers | show |
Series | clk: renesas: r9a09g057: Add CA55 core clocks | expand |
Hi Prabhakar, On Wed, Sep 18, 2024 at 4:02 PM Prabhakar <prabhakar.csengg@gmail.com> wrote: > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Add CA55 core clocks which are derived from PLLCA55. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Thanks for your patch! Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> i.e. will queue in renesas-clk for v6.13. > --- a/drivers/clk/renesas/r9a09g057-cpg.c > +++ b/drivers/clk/renesas/r9a09g057-cpg.c > @@ -74,6 +82,14 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { > > /* Core Clocks */ > DEF_FIXED("sys_0_pclk", R9A09G057_SYS_0_PCLK, CLK_QEXTAL, 1, 1), > + DEF_DDIV(".ca55_0_coreclk0", R9A09G057_CA55_0_CORE_CLK0, > + CLK_PLLCA55, CDDIV1_DIVCTL0, dtable_1_8), > + DEF_DDIV(".ca55_0_coreclk1", R9A09G057_CA55_0_CORE_CLK1, > + CLK_PLLCA55, CDDIV1_DIVCTL1, dtable_1_8), > + DEF_DDIV(".ca55_0_coreclk2", R9A09G057_CA55_0_CORE_CLK2, > + CLK_PLLCA55, CDDIV1_DIVCTL2, dtable_1_8), > + DEF_DDIV(".ca55_0_coreclk3", R9A09G057_CA55_0_CORE_CLK3, > + CLK_PLLCA55, CDDIV1_DIVCTL3, dtable_1_8), I will drop the leading dots from the clocks' names while applying, as these are not internal clocks. > DEF_FIXED("iotop_0_shclk", R9A09G057_IOTOP_0_SHCLK, CLK_PLLCM33_DIV16, 1, 1), > }; Gr{oetje,eeting}s, Geert
Hi Geert, Thank you for the review. On Fri, Oct 4, 2024 at 10:22 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Prabhakar, > > On Wed, Sep 18, 2024 at 4:02 PM Prabhakar <prabhakar.csengg@gmail.com> wrote: > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > > > Add CA55 core clocks which are derived from PLLCA55. > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Thanks for your patch! > > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > i.e. will queue in renesas-clk for v6.13. > > > --- a/drivers/clk/renesas/r9a09g057-cpg.c > > +++ b/drivers/clk/renesas/r9a09g057-cpg.c > > @@ -74,6 +82,14 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { > > > > /* Core Clocks */ > > DEF_FIXED("sys_0_pclk", R9A09G057_SYS_0_PCLK, CLK_QEXTAL, 1, 1), > > + DEF_DDIV(".ca55_0_coreclk0", R9A09G057_CA55_0_CORE_CLK0, > > + CLK_PLLCA55, CDDIV1_DIVCTL0, dtable_1_8), > > + DEF_DDIV(".ca55_0_coreclk1", R9A09G057_CA55_0_CORE_CLK1, > > + CLK_PLLCA55, CDDIV1_DIVCTL1, dtable_1_8), > > + DEF_DDIV(".ca55_0_coreclk2", R9A09G057_CA55_0_CORE_CLK2, > > + CLK_PLLCA55, CDDIV1_DIVCTL2, dtable_1_8), > > + DEF_DDIV(".ca55_0_coreclk3", R9A09G057_CA55_0_CORE_CLK3, > > + CLK_PLLCA55, CDDIV1_DIVCTL3, dtable_1_8), > > I will drop the leading dots from the clocks' names while applying, > as these are not internal clocks. > Agreed, thanks for taking care of this. Cheers, Prabhakar > > DEF_FIXED("iotop_0_shclk", R9A09G057_IOTOP_0_SHCLK, CLK_PLLCM33_DIV16, 1, 1), > > }; > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds
diff --git a/drivers/clk/renesas/r9a09g057-cpg.c b/drivers/clk/renesas/r9a09g057-cpg.c index 3ee32db5c0af..d7e88550c1db 100644 --- a/drivers/clk/renesas/r9a09g057-cpg.c +++ b/drivers/clk/renesas/r9a09g057-cpg.c @@ -41,6 +41,14 @@ enum clk_ids { MOD_CLK_BASE, }; +static const struct clk_div_table dtable_1_8[] = { + {0, 1}, + {1, 2}, + {2, 4}, + {3, 8}, + {0, 0}, +}; + static const struct clk_div_table dtable_2_64[] = { {0, 2}, {1, 4}, @@ -74,6 +82,14 @@ static const struct cpg_core_clk r9a09g057_core_clks[] __initconst = { /* Core Clocks */ DEF_FIXED("sys_0_pclk", R9A09G057_SYS_0_PCLK, CLK_QEXTAL, 1, 1), + DEF_DDIV(".ca55_0_coreclk0", R9A09G057_CA55_0_CORE_CLK0, + CLK_PLLCA55, CDDIV1_DIVCTL0, dtable_1_8), + DEF_DDIV(".ca55_0_coreclk1", R9A09G057_CA55_0_CORE_CLK1, + CLK_PLLCA55, CDDIV1_DIVCTL1, dtable_1_8), + DEF_DDIV(".ca55_0_coreclk2", R9A09G057_CA55_0_CORE_CLK2, + CLK_PLLCA55, CDDIV1_DIVCTL2, dtable_1_8), + DEF_DDIV(".ca55_0_coreclk3", R9A09G057_CA55_0_CORE_CLK3, + CLK_PLLCA55, CDDIV1_DIVCTL3, dtable_1_8), DEF_FIXED("iotop_0_shclk", R9A09G057_IOTOP_0_SHCLK, CLK_PLLCM33_DIV16, 1, 1), }; diff --git a/drivers/clk/renesas/rzv2h-cpg.h b/drivers/clk/renesas/rzv2h-cpg.h index 1bd406c69015..819029c81904 100644 --- a/drivers/clk/renesas/rzv2h-cpg.h +++ b/drivers/clk/renesas/rzv2h-cpg.h @@ -32,8 +32,13 @@ struct ddiv { }) #define CPG_CDDIV0 (0x400) +#define CPG_CDDIV1 (0x404) #define CDDIV0_DIVCTL2 DDIV_PACK(CPG_CDDIV0, 8, 3, 2) +#define CDDIV1_DIVCTL0 DDIV_PACK(CPG_CDDIV1, 0, 2, 4) +#define CDDIV1_DIVCTL1 DDIV_PACK(CPG_CDDIV1, 4, 2, 5) +#define CDDIV1_DIVCTL2 DDIV_PACK(CPG_CDDIV1, 8, 2, 6) +#define CDDIV1_DIVCTL3 DDIV_PACK(CPG_CDDIV1, 12, 2, 7) /** * Definitions of CPG Core Clocks