]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: renesas: r9a09g057: Add CA55 core clocks
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Wed, 18 Sep 2024 13:59:57 +0000 (14:59 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 7 Oct 2024 08:32:56 +0000 (10:32 +0200)
Add CA55 core clocks which are derived from PLLCA55.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/20240918135957.290101-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
drivers/clk/renesas/r9a09g057-cpg.c
drivers/clk/renesas/rzv2h-cpg.h

index 3ee32db5c0af794300ab9900fc4d37983dae78ee..a426d0aa459245238b0b8a036a40614e41baf257 100644 (file)
@@ -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),
 };
 
index 1bd406c69015ba5ad762ea8c4bec33e2a693bf99..819029c81904ec9a66a9beae04a623c3c99e858f 100644 (file)
@@ -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