RE: [PATCH 5/6] clk: renesas: r9a08g046-cpg: Add MIPI DSI and LCDC clock/reset entries
Biju Das <[email protected]> Tue, 28 Jul 2026 13:29:09 +0000
| Newsgroups | org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-clk,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <TY3PR01MB11346C363CC961EB46EF5E3EF86CB2@TY3PR01MB11346.jpnprd01.prod.outlook.com> |
Hi Geert, Thanks for the feedback. > -----Original Message----- > From: Geert Uytterhoeven <[email protected]> > Sent: 10 July 2026 16:50 > Subject: Re: [PATCH 5/6] clk: renesas: r9a08g046-cpg: Add MIPI DSI and LCDC clock/reset entries > > Hi Biju, > > Thanks for your patch! > > s/r9a08g046-cpg/r9a08g046/ OK. > > On Fri, 19 Jun 2026 at 18:40, Biju <[email protected]> wrote: > > From: Biju Das <[email protected]> > > > > Add clock and reset entries for the MIPI DSI and LCDC peripherals on > > the RZ/G3L (R9A08G046) SoC. > > > > Signed-off-by: Biju Das <[email protected]> > > --- > > drivers/clk/renesas/r9a08g046-cpg.c | 62 > > +++++++++++++++++++++++++++++ > > 1 file changed, 62 insertions(+) > > > > diff --git a/drivers/clk/renesas/r9a08g046-cpg.c > > b/drivers/clk/renesas/r9a08g046-cpg.c > > index 4488bd1988e8..7cea2c6d2c42 100644 > > --- a/drivers/clk/renesas/r9a08g046-cpg.c > > +++ b/drivers/clk/renesas/r9a08g046-cpg.c > > @@ -19,22 +19,26 @@ > > #define G3L_CPG_PL3_DDIV (0x208) > > #define G3L_CPG_SDHI_DDIV (0x218) > > #define G3L_CPG_GE3D_DDIV (0x224) > > +#define G3L_CPG_DSI_DDIV (0x228) > > #define G3L_CPG_CA55CORE_DDIV (0x234) > > #define G3L_CPG_RSCI_DDIV (0x238) > > #define G3L_CPG_RSPI_DDIV (0x23c) > > #define G3L_CPG_SDHI_DSEL (0x244) > > #define G3L_CLKDIVSTATUS (0x280) > > #define G3L_CLKSELSTATUS (0x284) > > +#define G3L_CPG_DSI_SSEL (0x408) > > #define G3L_CPG_GE3D_SSEL (0x40c) > > #define G3L_CPG_ETH_SSEL (0x410) > > #define G3L_CPG_RSCI_SSEL (0x414) > > #define G3L_CPG_RSPI_SSEL (0x418) > > +#define G3L_CPG_DSI_SDIV (0x430) > > #define G3L_CPG_ETH_SDIV (0x434) > > > > /* RZ/G3L Specific division configuration. */ > > #define G3L_DIVPL2A DDIV_PACK(G3L_CPG_PL2_DDIV, 0, 2) > > #define G3L_DIVPL2B DDIV_PACK(G3L_CPG_PL2_DDIV, 4, 2) > > #define G3L_DIVPL3A DDIV_PACK(G3L_CPG_PL3_DDIV, 0, 2) > > +#define G3L_DIVPL3B DDIV_PACK(G3L_CPG_PL3_DDIV, 4, 2) > > #define G3L_DIV_SDHI0 DDIV_PACK(G3L_CPG_SDHI_DDIV, 0, 2) > > #define G3L_DIV_SDHI1 DDIV_PACK(G3L_CPG_SDHI_DDIV, 4, 2) > > #define G3L_DIV_SDHI2 DDIV_PACK(G3L_CPG_SDHI_DDIV, 8, 2) > > @@ -54,11 +58,14 @@ > > #define G3L_SDIV_ETH_B DDIV_PACK(G3L_CPG_ETH_SDIV, 4, 1) > > #define G3L_SDIV_ETH_C DDIV_PACK(G3L_CPG_ETH_SDIV, 8, 2) > > #define G3L_SDIV_ETH_D DDIV_PACK(G3L_CPG_ETH_SDIV, 12, 1) > > +#define G3L_SDIV_DSI_C_SET DDIV_PACK(G3L_CPG_DSI_SDIV, 8, 1) > > +#define G3L_DIV_DSI DDIV_PACK(G3L_CPG_DSI_DDIV, 0, 2) > > Please preserve sort order for both newly-added lines. Agreed. > > > > > /* RZ/G3L Clock status configuration. */ > > #define G3L_DIVPL2A_STS DDIV_PACK(G3L_CLKDIVSTATUS, 4, 1) > > #define G3L_DIVPL2B_STS DDIV_PACK(G3L_CLKDIVSTATUS, 5, 1) > > #define G3L_DIVPL3A_STS DDIV_PACK(G3L_CLKDIVSTATUS, 8, 1) > > +#define G3L_DIVPL3B_STS DDIV_PACK(G3L_CLKDIVSTATUS, 9, 1) > > #define G3L_DIV_CA55_CORE0_STS DDIV_PACK(G3L_CLKDIVSTATUS, 12, 1) > > #define G3L_DIV_CA55_CORE1_STS DDIV_PACK(G3L_CLKDIVSTATUS, 13, 1) > > #define G3L_DIV_CA55_CORE2_STS DDIV_PACK(G3L_CLKDIVSTATUS, 14, 1) @@ > > -78,6 +85,7 @@ > > #define G3L_SEL_SDHI1_STS SEL_PLL_PACK(G3L_CLKSELSTATUS, 17, 1) > > #define G3L_SEL_SDHI2_STS SEL_PLL_PACK(G3L_CLKSELSTATUS, 18, 1) > > #define G3L_DIV_GE3D_STS DDIV_PACK(G3L_CLKDIVSTATUS, 27, 1) > > +#define G3L_DIV_DSI_STS DDIV_PACK(G3L_CLKDIVSTATUS, 28, 1) > > > > /* RZ/G3L Specific clocks select. */ > > #define G3L_SEL_SDHI0 SEL_PLL_PACK(G3L_CPG_SDHI_DSEL, 0, 2) > > @@ -101,6 +109,7 @@ > > #define G3L_SEL_RSPI0 SEL_PLL_PACK(G3L_CPG_RSPI_SSEL, 0, 2) > > #define G3L_SEL_RSPI1 SEL_PLL_PACK(G3L_CPG_RSPI_SSEL, 2, 2) > > #define G3L_SEL_RSPI2 SEL_PLL_PACK(G3L_CPG_RSPI_SSEL, 4, 2) > > +#define G3L_SEL_DSI SEL_PLL_PACK(G3L_CPG_DSI_SSEL, 0, 1) > > Sort order? Oops. missed it. > > > @@ -347,6 +388,7 @@ static const struct cpg_core_clk r9a08g046_core_clks[] __initconst = { > > DEF_G3S_DIV("G", R9A08G046_CLK_G, CLK_SEL_GE3D, G3L_DIV_GE3D, G3L_DIV_GE3D_STS, > > dtable_1_32, 0, 0, 0, NULL), > > DEF_FIXED("OSCCLK", R9A08G046_OSCCLK, CLK_EXTAL, 1, 1), > > + DEF_FIXED("dsi_pllclk", R9A08G046_MIPI_DSI_PLLCLK, > > + R9A08G046_CLK_M4, 1, 1), > > "mipi_dsi_pllclk" > > > }; > > > > static const struct rzg2l_mod_clk r9a08g046_mod_clks[] = { @@ -400,6 > > +442,22 @@ static const struct rzg2l_mod_clk r9a08g046_mod_clks[] = { > > MSTOP(BUS_PERI_VIDEO, BIT(12))), > > DEF_MOD("ge3d_ace_clk", R9A08G046_GE3D_ACE_CLK, R9A08G046_CLK_P1, 0x558, 2, > > MSTOP(BUS_PERI_VIDEO, > > BIT(12))), > > + DEF_MOD("dsi_sysclk", R9A08G046_MIPI_DSI_SYSCLK, R9A08G046_CLK_M5, 0x568, 1, > > "mipi_dsi_sysclk" > > > + MSTOP(BUS_PERI_VIDEO, BIT(5) | BIT(6))), > > + DEF_MOD("dsi_aclk", R9A08G046_MIPI_DSI_ACLK, R9A08G046_CLK_P1, 0x568, 2, > > "mipi_dsi_aclk" > > > + MSTOP(BUS_PERI_VIDEO, BIT(5) | BIT(6))), > > + DEF_MOD("dsi_pclk", R9A08G046_MIPI_DSI_PCLK, R9A08G046_CLK_P2, 0x568, 3, > > "mipi_dsi_pclk" > > > + MSTOP(BUS_PERI_VIDEO, BIT(5) | BIT(6))), > > + DEF_MOD("dsi_vclk", R9A08G046_MIPI_DSI_VCLK, R9A08G046_CLK_M3, 0x568, 4, > > "mipi_dsi_vclk" > > > + MSTOP(BUS_PERI_VIDEO, BIT(5) | BIT(6))), > > + DEF_MOD("dsi_lpclk", R9A08G046_MIPI_DSI_LPCLK, R9A08G046_CLK_M1, 0x568, 5, > > "mipi_dsi_lpclk" OK, will fix this in next version. Cheers, Biju