[PATCH 2/2] clk: renesas: Do not disable realtime modules on R8A77995 D3
Marek Vasut
marek.vasut at mailbox.org
Sun Dec 28 03:04:35 CET 2025
On 12/28/25 2:03 AM, Niklas Söderlund wrote:
> Later versions of the datasheet makes it clear D3 do not have any
> realtime module stop control registers (RMSTPCRx). Remove the
> manipulation of them from the module clock table to match this.
>
> Suggested-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas at ragnatech.se>
> ---
> drivers/clk/renesas/r8a77995-cpg-mssr.c | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/clk/renesas/r8a77995-cpg-mssr.c b/drivers/clk/renesas/r8a77995-cpg-mssr.c
> index 0a59a19cb227..736812e04d0b 100644
> --- a/drivers/clk/renesas/r8a77995-cpg-mssr.c
> +++ b/drivers/clk/renesas/r8a77995-cpg-mssr.c
> @@ -216,18 +216,18 @@ static const struct rcar_gen3_cpg_pll_config cpg_pll_configs[2] __initconst = {
> };
>
> static const struct mstp_stop_table r8a77995_mstp_table[] = {
> - { 0x00210000, 0x0, 0x00210000, 0 },
> - { 0x03e01000, 0x0, 0x03e01000, 0 },
> - { 0x000e2fdc, 0x2000, 0x000e2fd8, 0 },
> - { 0xc00014df, 0x400, 0xc00014df, 0 },
> - { 0x80000004, 0x0, 0x80000004, 0 },
> - { 0x40d20004, 0x0, 0x40d20004, 0 },
> - { 0x08c0008c, 0x0, 0x08c0008c, 0 },
> - { 0x09941c18, 0x0, 0x09941c18, 0 },
> - { 0x00801087, 0x0, 0x00801087, 0 },
> - { 0xf143dfc0, 0x0, 0xf143dfc0, 0 },
> - { 0x063e1820, 0x0, 0x063e1820, 0 },
> - { 0x00000000, 0x0, 0x00000000, 0 },
> + { 0x00210000, 0x0, 0, 0 },
> + { 0x03e01000, 0x0, 0, 0 },
> + { 0x000e2fdc, 0x2000, 0, 0 },
> + { 0xc00014df, 0x400, 0, 0 },
> + { 0x80000004, 0x0, 0, 0 },
> + { 0x40d20004, 0x0, 0, 0 },
> + { 0x08c0008c, 0x0, 0, 0 },
> + { 0x09941c18, 0x0, 0, 0 },
> + { 0x00801087, 0x0, 0, 0 },
> + { 0xf143dfc0, 0x0, 0, 0 },
> + { 0x063e1820, 0x0, 0, 0 },
> + { 0x00000000, 0x0, 0, 0 },
> };
>
> static const void *r8a77995_get_pll_config(const u32 cpg_mode)
You likely also need this part to avoid any RMSTPCR access:
diff --git a/drivers/clk/renesas/renesas-cpg-mssr.c
b/drivers/clk/renesas/renesas-cpg-mssr.c
index 39ff4541c1e..4b07dbb3277 100644
--- a/drivers/clk/renesas/renesas-cpg-mssr.c
+++ b/drivers/clk/renesas/renesas-cpg-mssr.c
@@ -127,7 +127,8 @@ int renesas_clk_remove(void __iomem *base, struct
cpg_mssr_info *info)
info->mstp_table[i].sdis,
info->mstp_table[i].sen);
- if (info->reg_layout == CLK_REG_LAYOUT_RCAR_GEN4)
+ if (info->reg_layout == CLK_REG_LAYOUT_RCAR_GEN4 ||
+ renesas_get_cpu_type() == RENESAS_CPU_TYPE_R8A77995)
continue;
clrsetbits_le32(base + RMSTPCR(i),
More information about the U-Boot
mailing list