soc/mediatek: Move the SSPM driver to common

The SSPM driver can be shared by MT8183, MT8192 and MT8195.

TEST=emerge-{asurada, kukui} coreboot;

Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Change-Id: If9779853becb298eeeabb3dc6096bc474baae202
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55050
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/mediatek/common/include/soc/sspm.h b/src/soc/mediatek/common/include/soc/sspm.h
new file mode 100644
index 0000000..ff405ce
--- /dev/null
+++ b/src/soc/mediatek/common/include/soc/sspm.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef SOC_MEDIATEK_COMMON_SSPM_H
+#define SOC_MEDIATEK_COMMON_SSPM_H
+
+#include <soc/addressmap.h>
+#include <types.h>
+
+struct sspm_regs {
+	u32 sw_rstn;
+};
+static struct sspm_regs *const sspm_reg = (void *)SSPM_CFG_BASE;
+void sspm_init(void);
+#endif  /* SOC_MEDIATEK_COMMON_SSPM_H */
diff --git a/src/soc/mediatek/mt8183/sspm.c b/src/soc/mediatek/common/sspm.c
similarity index 92%
rename from src/soc/mediatek/mt8183/sspm.c
rename to src/soc/mediatek/common/sspm.c
index e0ac84a..0a4d5b0 100644
--- a/src/soc/mediatek/mt8183/sspm.c
+++ b/src/soc/mediatek/common/sspm.c
@@ -7,7 +7,7 @@
 
 static void reset_sspm(struct mtk_mcu *mcu)
 {
-	write32(&mt8183_sspm->sw_rstn, 0x1);
+	write32(&sspm_reg->sw_rstn, 0x1);
 }
 
 static struct mtk_mcu sspm = {
diff --git a/src/soc/mediatek/mt8183/Makefile.inc b/src/soc/mediatek/mt8183/Makefile.inc
index e0ec810..2cf8133 100644
--- a/src/soc/mediatek/mt8183/Makefile.inc
+++ b/src/soc/mediatek/mt8183/Makefile.inc
@@ -58,7 +58,7 @@
 ramstage-y += soc.c
 ramstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c
 ramstage-y += spm.c
-ramstage-y += sspm.c
+ramstage-y += ../common/sspm.c
 ramstage-y += ../common/timer.c
 ramstage-y += ../common/uart.c
 ramstage-y += ../common/usb.c
diff --git a/src/soc/mediatek/mt8183/include/soc/sspm.h b/src/soc/mediatek/mt8183/include/soc/sspm.h
deleted file mode 100644
index 23160a8..0000000
--- a/src/soc/mediatek/mt8183/include/soc/sspm.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef SOC_MEDIATEK_MT8183_SSPM_H
-#define SOC_MEDIATEK_MT8183_SSPM_H
-
-#include <soc/addressmap.h>
-#include <types.h>
-
-struct mt8183_sspm_regs {
-	u32 sw_rstn;
-};
-static struct mt8183_sspm_regs *const mt8183_sspm = (void *)SSPM_CFG_BASE;
-void sspm_init(void);
-#endif  /* SOC_MEDIATEK_MT8183_SSPM_H */
diff --git a/src/soc/mediatek/mt8192/Makefile.inc b/src/soc/mediatek/mt8192/Makefile.inc
index bdff835..0943e7c 100644
--- a/src/soc/mediatek/mt8192/Makefile.inc
+++ b/src/soc/mediatek/mt8192/Makefile.inc
@@ -61,7 +61,7 @@
 ramstage-y += ../common/rtc.c ../common/rtc_mt6359p.c
 ramstage-y += soc.c
 ramstage-y += spm.c
-ramstage-y += sspm.c
+ramstage-y += ../common/sspm.c
 ramstage-y += ../common/timer.c
 ramstage-y += ../common/uart.c
 ramstage-y += ../common/ufs.c
diff --git a/src/soc/mediatek/mt8192/include/soc/sspm.h b/src/soc/mediatek/mt8192/include/soc/sspm.h
deleted file mode 100644
index 5749fa4..0000000
--- a/src/soc/mediatek/mt8192/include/soc/sspm.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef SOC_MEDIATEK_MT8192_SSPM_H
-#define SOC_MEDIATEK_MT8192_SSPM_H
-
-#include <soc/addressmap.h>
-#include <types.h>
-
-struct mt8192_sspm_regs {
-	u32 sw_rstn;
-};
-static struct mt8192_sspm_regs *const mt8192_sspm = (void *)SSPM_CFG_BASE;
-void sspm_init(void);
-#endif  /* SOC_MEDIATEK_MT8192_SSPM_H */
diff --git a/src/soc/mediatek/mt8192/sspm.c b/src/soc/mediatek/mt8192/sspm.c
deleted file mode 100644
index cce08c2..0000000
--- a/src/soc/mediatek/mt8192/sspm.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <device/mmio.h>
-#include <soc/mcu_common.h>
-#include <soc/sspm.h>
-#include <soc/symbols.h>
-
-static void reset_sspm(struct mtk_mcu *mcu)
-{
-	write32(&mt8192_sspm->sw_rstn, 0x1);
-}
-
-static struct mtk_mcu sspm = {
-	.firmware_name = CONFIG_SSPM_FIRMWARE,
-	.run_address = (void *)SSPM_SRAM_BASE,
-	.reset = reset_sspm,
-};
-
-void sspm_init(void)
-{
-	sspm.load_buffer = _dram_dma;
-	sspm.buffer_size = REGION_SIZE(dram_dma);
-
-	mtk_init_mcu(&sspm);
-}