]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: samsung: exynos850: Add APM-to-AP mailbox clock
authorAlexey Klimov <alexey.klimov@linaro.org>
Fri, 20 Mar 2026 21:15:14 +0000 (21:15 +0000)
committerKrzysztof Kozlowski <krzk@kernel.org>
Tue, 24 Mar 2026 12:43:19 +0000 (13:43 +0100)
Add APM mailbox clock for communicating between APM and main application
CPUs in CMU_APM unit. This clock is needed to access this mailbox
registers. This mailbox is used for ACPM communication between kernel
and APM co-processor.

Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
Link: https://patch.msgid.link/20260320-exynos850-ap2apm-mailbox-v1-2-983eb3f296fc@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
drivers/clk/samsung/clk-exynos850.c

index 56f27697c76b13276831b151db28074387293077..eb9c80b60225efa33d85f5f3c284eb8a63a48015 100644 (file)
@@ -19,7 +19,7 @@
 
 /* NOTE: Must be equal to the last clock ID increased by one */
 #define CLKS_NR_TOP                    (CLK_DOUT_CPUCL1_SWITCH + 1)
-#define CLKS_NR_APM                    (CLK_GOUT_SYSREG_APM_PCLK + 1)
+#define CLKS_NR_APM                    (CLK_GOUT_MAILBOX_APM_AP_PCLK + 1)
 #define CLKS_NR_AUD                    (CLK_GOUT_AUD_CMU_AUD_PCLK + 1)
 #define CLKS_NR_CMGP                   (CLK_GOUT_SYSREG_CMGP_PCLK + 1)
 #define CLKS_NR_CPUCL0                 (CLK_CLUSTER0_SCLK + 1)
@@ -604,6 +604,7 @@ CLK_OF_DECLARE(exynos850_cmu_top, "samsung,exynos850-cmu-top",
 #define CLK_CON_GAT_GOUT_APM_APBIF_TOP_RTC_PCLK                0x2028
 #define CLK_CON_GAT_GOUT_APM_I3C_APM_PMIC_I_PCLK       0x2034
 #define CLK_CON_GAT_GOUT_APM_I3C_APM_PMIC_I_SCLK       0x2038
+#define CLK_CON_GAT_GOUT_APM_MAILBOX_APM_AP_PCLK       0x2060
 #define CLK_CON_GAT_GOUT_APM_SPEEDY_APM_PCLK           0x20bc
 #define CLK_CON_GAT_GOUT_APM_SYSREG_APM_PCLK           0x20c0
 
@@ -628,6 +629,7 @@ static const unsigned long apm_clk_regs[] __initconst = {
        CLK_CON_GAT_GOUT_APM_I3C_APM_PMIC_I_SCLK,
        CLK_CON_GAT_GOUT_APM_SPEEDY_APM_PCLK,
        CLK_CON_GAT_GOUT_APM_SYSREG_APM_PCLK,
+       CLK_CON_GAT_GOUT_APM_MAILBOX_APM_AP_PCLK,
 };
 
 /* List of parent clocks for Muxes in CMU_APM */
@@ -698,6 +700,9 @@ static const struct samsung_gate_clock apm_gate_clks[] __initconst = {
             CLK_CON_GAT_GOUT_APM_APBIF_PMU_ALIVE_PCLK, 21, CLK_IS_CRITICAL, 0),
        GATE(CLK_GOUT_SYSREG_APM_PCLK, "gout_sysreg_apm_pclk", "dout_apm_bus",
             CLK_CON_GAT_GOUT_APM_SYSREG_APM_PCLK, 21, 0, 0),
+       GATE(CLK_GOUT_MAILBOX_APM_AP_PCLK, "gout_mailbox_apm_ap_pclk",
+            "dout_apm_func",
+            CLK_CON_GAT_GOUT_APM_MAILBOX_APM_AP_PCLK, 21, 0, 0),
 };
 
 static const struct samsung_cmu_info apm_cmu_info __initconst = {