Add platform data for MT8189 to support SCP remote processor.
This enables SCP functionality on MT8189 SoC.

Signed-off-by: Huayu Zong <[email protected]>
---
 drivers/remoteproc/mtk_common.h |  5 +++++
 drivers/remoteproc/mtk_scp.c    | 18 ++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/drivers/remoteproc/mtk_common.h b/drivers/remoteproc/mtk_common.h
index d45480ad332e..abf0dbd9978c 100644
--- a/drivers/remoteproc/mtk_common.h
+++ b/drivers/remoteproc/mtk_common.h
@@ -35,6 +35,11 @@
 #define MT8186_SCP_L1_SRAM_PD_P1       0x40B0
 #define MT8186_SCP_L1_SRAM_PD_p2       0x40B4
 
+#define MT8189_SCP2APMCU_IPC_CLR       0x30010
+#define MT8189_SCP2SPM_IPC_CLR         0x30018
+#define MT8189_SCP_SECURE_DOMAIN       0xA080
+#define MT8189_SCP_DOMAIN_VAL          0x3303003
+
 #define MT8192_L2TCM_SRAM_PD_0         0x10C0
 #define MT8192_L2TCM_SRAM_PD_1         0x10C4
 #define MT8192_L2TCM_SRAM_PD_2         0x10C8
diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index c3c37cae933a..f311e23b6d65 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -1529,6 +1529,23 @@ static const struct mtk_scp_of_data mt8188_of_data_c1 = {
        .scp_sizes = &mt8188_scp_c1_sizes,
 };
 
+static const struct mtk_scp_of_data mt8189_of_data = {
+       .scp_clk_get = mt8195_scp_clk_get,
+       .scp_before_load = mt8192_scp_before_load,
+       .scp_irq_handler = mt8192_scp_irq_handler,
+       .scp_reset_assert = mt8192_scp_reset_assert,
+       .scp_reset_deassert = mt8192_scp_reset_deassert,
+       .scp_stop = mt8192_scp_stop,
+       .scp_da_to_va = mt8192_scp_da_to_va,
+       .host_to_scp_reg = MT8192_GIPC_IN_SET,
+       .host_to_scp_int_bit = MT8192_HOST_IPC_INT_BIT,
+       .scp_to_host_ipc_clr_reg = MT8189_SCP2APMCU_IPC_CLR,
+       .scp_to_spm_ipc_clr_reg = MT8189_SCP2SPM_IPC_CLR,
+       .scp_secure_domain_reg = MT8189_SCP_SECURE_DOMAIN,
+       .scp_domain_value = MT8189_SCP_DOMAIN_VAL,
+       .scp_sizes = &default_scp_sizes,
+};
+
 static const struct mtk_scp_of_data mt8192_of_data = {
        .scp_clk_get = mt8192_scp_clk_get,
        .scp_before_load = mt8192_scp_before_load,
@@ -1587,6 +1604,7 @@ static const struct of_device_id mtk_scp_of_match[] = {
        { .compatible = "mediatek,mt8186-scp", .data = &mt8186_of_data },
        { .compatible = "mediatek,mt8188-scp", .data = &mt8188_of_data },
        { .compatible = "mediatek,mt8188-scp-dual", .data = 
&mt8188_of_data_cores },
+       { .compatible = "mediatek,mt8189-scp", .data = &mt8189_of_data },
        { .compatible = "mediatek,mt8192-scp", .data = &mt8192_of_data },
        { .compatible = "mediatek,mt8195-scp", .data = &mt8195_of_data },
        { .compatible = "mediatek,mt8195-scp-dual", .data = 
&mt8195_of_data_cores },
-- 
2.45.2


Reply via email to