Hung-Te Lin has submitted this change. ( https://review.coreboot.org/c/coreboot/+/55050 )
Change subject: soc/mediatek: Move the SSPM driver to common ......................................................................
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 --- A src/soc/mediatek/common/include/soc/sspm.h R src/soc/mediatek/common/sspm.c M src/soc/mediatek/mt8183/Makefile.inc D src/soc/mediatek/mt8183/include/soc/sspm.h M src/soc/mediatek/mt8192/Makefile.inc D src/soc/mediatek/mt8192/include/soc/sspm.h D src/soc/mediatek/mt8192/sspm.c 7 files changed, 17 insertions(+), 56 deletions(-)
Approvals: build bot (Jenkins): Verified Yu-Ping Wu: Looks good to me, approved
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); -}