clk: ast2600: Add FSI parent clock with correct rate
authorEddie James <eajames@linux.ibm.com>
Thu, 15 Feb 2024 22:07:28 +0000 (16:07 -0600)
committerStephen Boyd <sboyd@kernel.org>
Thu, 22 Feb 2024 05:46:13 +0000 (21:46 -0800)
In order to calculate correct FSI bus clocks, the FSI clock must
correctly calculate the rate from the parent (APLL / 4).

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Link: https://lore.kernel.org/r/20240215220759.976998-3-eajames@linux.ibm.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-ast2600.c

index 909c3137c4283d35402e029645d987c7698115b3..faf88324f7b161c8e716cb33f16ebd7091dbfd2a 100644 (file)
@@ -19,7 +19,7 @@
  * This includes the gates (configured from aspeed_g6_gates), plus the
  * explicitly-configured clocks (ASPEED_CLK_HPLL and up).
  */
-#define ASPEED_G6_NUM_CLKS             72
+#define ASPEED_G6_NUM_CLKS             73
 
 #define ASPEED_G6_SILICON_REV          0x014
 #define CHIP_REVISION_ID                       GENMASK(23, 16)
@@ -157,7 +157,7 @@ static const struct aspeed_gate_data aspeed_g6_gates[] = {
        [ASPEED_CLK_GATE_UART11CLK]     = { 59,  -1, "uart11clk-gate",  "uartx", 0 },   /* UART11 */
        [ASPEED_CLK_GATE_UART12CLK]     = { 60,  -1, "uart12clk-gate",  "uartx", 0 },   /* UART12 */
        [ASPEED_CLK_GATE_UART13CLK]     = { 61,  -1, "uart13clk-gate",  "uartx", 0 },   /* UART13 */
-       [ASPEED_CLK_GATE_FSICLK]        = { 62,  59, "fsiclk-gate",     NULL,    0 },   /* FSI */
+       [ASPEED_CLK_GATE_FSICLK]        = { 62,  59, "fsiclk-gate",     "fsiclk", 0 },  /* FSI */
 };
 
 static const struct clk_div_table ast2600_eclk_div_table[] = {
@@ -821,6 +821,9 @@ static void __init aspeed_g6_cc(struct regmap *map)
 
        hw = clk_hw_register_fixed_factor(NULL, "i3cclk", "apll", 0, 1, 8);
        aspeed_g6_clk_data->hws[ASPEED_CLK_I3C] = hw;
+
+       hw = clk_hw_register_fixed_factor(NULL, "fsiclk", "apll", 0, 1, 4);
+       aspeed_g6_clk_data->hws[ASPEED_CLK_FSI] = hw;
 };
 
 static void __init aspeed_g6_cc_init(struct device_node *np)