]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: sunxi-ng: sun55i-a523-r: Add missing r-spi module clock
authorChen-Yu Tsai <wens@kernel.org>
Tue, 17 Feb 2026 09:30:03 +0000 (17:30 +0800)
committerChen-Yu Tsai <wens@kernel.org>
Tue, 24 Feb 2026 16:26:12 +0000 (00:26 +0800)
When the PRCM clk driver was added, somehow the r-spi module clock
was skipped over.

Add it so that r-spi can actually work.

Fixes: 8cea339cfb81 ("clk: sunxi-ng: add support for the A523/T527 PRCM CCU")
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://patch.msgid.link/20260217093004.3239051-1-wens@kernel.org
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
drivers/clk/sunxi-ng/ccu-sun55i-a523-r.c

index 0339c4af0fe5b5bad9b76e86230f07eb8cf663fc..db0e36d8838e74a8cef66920e9be281fef3e835e 100644 (file)
@@ -83,9 +83,22 @@ static SUNXI_CCU_MUX_DATA_WITH_GATE(r_pwmctrl_clk, "r-pwmctrl",
 static SUNXI_CCU_GATE_HW(bus_r_pwmctrl_clk, "bus-r-pwmctrl",
                         &r_apb0_clk.common.hw, 0x13c, BIT(0), 0);
 
-/* SPI clock is /M/N (same as new MMC?) */
+static const struct clk_parent_data r_spi_parents[] = {
+       { .fw_name = "hosc" },
+       { .fw_name = "pll-periph" },
+       { .name = "pll-periph0-300M" },
+       { .name = "pll-periph1-300M" },
+       { .name = "pll-audio" },
+};
+static SUNXI_CCU_DUALDIV_MUX_GATE(r_spi_clk, "r-spi", r_spi_parents, 0x150,
+                                 0, 5,         /* M */
+                                 8, 5,         /* P */
+                                 24, 3,        /* mux */
+                                 BIT(31),      /* gate */
+                                 0);
 static SUNXI_CCU_GATE_HW(bus_r_spi_clk, "bus-r-spi",
                         &r_ahb_clk.common.hw, 0x15c, BIT(0), 0);
+
 static SUNXI_CCU_GATE_HW(bus_r_spinlock_clk, "bus-r-spinlock",
                         &r_ahb_clk.common.hw, 0x16c, BIT(0), 0);
 static SUNXI_CCU_GATE_HW(bus_r_msgbox_clk, "bus-r-msgbox",
@@ -138,6 +151,7 @@ static struct ccu_common *sun55i_a523_r_ccu_clks[] = {
        &bus_r_twd_clk.common,
        &r_pwmctrl_clk.common,
        &bus_r_pwmctrl_clk.common,
+       &r_spi_clk.common,
        &bus_r_spi_clk.common,
        &bus_r_spinlock_clk.common,
        &bus_r_msgbox_clk.common,
@@ -169,6 +183,7 @@ static struct clk_hw_onecell_data sun55i_a523_r_hw_clks = {
                [CLK_BUS_R_TWD]         = &bus_r_twd_clk.common.hw,
                [CLK_R_PWMCTRL]         = &r_pwmctrl_clk.common.hw,
                [CLK_BUS_R_PWMCTRL]     = &bus_r_pwmctrl_clk.common.hw,
+               [CLK_R_SPI]             = &r_spi_clk.common.hw,
                [CLK_BUS_R_SPI]         = &bus_r_spi_clk.common.hw,
                [CLK_BUS_R_SPINLOCK]    = &bus_r_spinlock_clk.common.hw,
                [CLK_BUS_R_MSGBOX]      = &bus_r_msgbox_clk.common.hw,