From 0e03fa3f6e474aa28a9151e5d9f152619636650c Mon Sep 17 00:00:00 2001 From: Bo-Chen Chen Date: Mon, 4 Jul 2022 18:59:51 +0800 Subject: [PATCH] soc/mediatek: Move wdt_set_req() to common folder There are more and more variables which are SoC-specific, so add soc/wdt.h for each SoC and rename common/wdt.h to common/wdt_common.h. wdt_set_req() is almost the same for mt8192, mt8195 and mt8186, so move it to a common file wdt_req.c. TEST=build pass BUG=b:233720142 Signed-off-by: Bo-Chen Chen Change-Id: I7a334b3e7cd4f24a848dd31aca546dc7236d5fb8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/65636 Reviewed-by: Yidi Lin Tested-by: build bot (Jenkins) Reviewed-by: Yu-Ping Wu --- .../common/include/soc/{wdt.h => wdt_common.h} | 14 +++++++++++--- .../{mt8192/wdt.c => common/wdt_req.c} | 10 +--------- src/soc/mediatek/mt8173/include/soc/wdt.h | 8 ++++++++ src/soc/mediatek/mt8183/include/soc/wdt.h | 8 ++++++++ src/soc/mediatek/mt8186/Makefile.inc | 2 +- src/soc/mediatek/mt8186/include/soc/wdt.h | 14 ++++++++++++++ src/soc/mediatek/mt8186/wdt.c | 18 ------------------ src/soc/mediatek/mt8192/Makefile.inc | 2 +- src/soc/mediatek/mt8192/include/soc/wdt.h | 14 ++++++++++++++ src/soc/mediatek/mt8195/Makefile.inc | 2 +- src/soc/mediatek/mt8195/include/soc/wdt.h | 14 ++++++++++++++ src/soc/mediatek/mt8195/wdt.c | 17 ----------------- 12 files changed, 73 insertions(+), 50 deletions(-) rename src/soc/mediatek/common/include/soc/{wdt.h => wdt_common.h} (73%) rename src/soc/mediatek/{mt8192/wdt.c => common/wdt_req.c} (57%) create mode 100644 src/soc/mediatek/mt8173/include/soc/wdt.h create mode 100644 src/soc/mediatek/mt8183/include/soc/wdt.h create mode 100644 src/soc/mediatek/mt8186/include/soc/wdt.h create mode 100644 src/soc/mediatek/mt8192/include/soc/wdt.h create mode 100644 src/soc/mediatek/mt8195/include/soc/wdt.h diff --git a/src/soc/mediatek/common/include/soc/wdt.h b/src/soc/mediatek/common/include/soc/wdt_common.h similarity index 73% rename from src/soc/mediatek/common/include/soc/wdt.h rename to src/soc/mediatek/common/include/soc/wdt_common.h index 1277436e3c..5587d504e8 100644 --- a/src/soc/mediatek/common/include/soc/wdt.h +++ b/src/soc/mediatek/common/include/soc/wdt_common.h @@ -1,8 +1,9 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#ifndef SOC_MEDIATEK_COMMON_WDT_H -#define SOC_MEDIATEK_COMMON_WDT_H +#ifndef SOC_MEDIATEK_WDT_COMMON_H +#define SOC_MEDIATEK_WDT_COMMON_H +#include #include #include @@ -39,10 +40,17 @@ enum { MTK_WDT_STA_HW_RST = 1 << 31 }; +/* WDT_REQ */ +#define MTK_WDT_REQ_MOD_KEY_VAL 0x33 +#define MTK_WDT_REQ_IRQ_KEY_VAL 0x44 + +DEFINE_BITFIELD(MTK_WDT_REQ_MOD_KEY, 31, 24) +DEFINE_BITFIELD(MTK_WDT_REQ_IRQ_KEY, 31, 24) + static struct mtk_wdt_regs *const mtk_wdt = (void *)RGU_BASE; int mtk_wdt_init(void); void mtk_wdt_clr_status(void); void mtk_wdt_set_req(void); -#endif /* SOC_MEDIATEK_COMMON_WDT_H */ +#endif /* SOC_MEDIATEK_WDT_COMMON_H */ diff --git a/src/soc/mediatek/mt8192/wdt.c b/src/soc/mediatek/common/wdt_req.c similarity index 57% rename from src/soc/mediatek/mt8192/wdt.c rename to src/soc/mediatek/common/wdt_req.c index d3e3e74921..6dfd608b69 100644 --- a/src/soc/mediatek/mt8192/wdt.c +++ b/src/soc/mediatek/common/wdt_req.c @@ -1,20 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include -#include #include -#define MTK_WDT_REQ_MOD_KEY_VAL 0x33 -#define MTK_WDT_REQ_IRQ_KEY_VAL 0x44 - -DEFINE_BITFIELD(MTK_WDT_REQ_MOD_KEY, 31, 24) -DEFINE_BITFIELD(MTK_WDT_REQ_IRQ_KEY, 31, 24) -DEFINE_BIT(MTK_WDT_THERMAL_EN, 18) -DEFINE_BIT(MTK_WDT_THERMAL_IRQ, 18) - void mtk_wdt_set_req(void) { SET32_BITFIELDS(&mtk_wdt->wdt_req_mode, + MTK_WDT_SPM_THERMAL_EN, MTK_WDT_SPM_THERMAL_VAL, MTK_WDT_THERMAL_EN, 1, MTK_WDT_REQ_MOD_KEY, MTK_WDT_REQ_MOD_KEY_VAL); SET32_BITFIELDS(&mtk_wdt->wdt_req_irq_en, diff --git a/src/soc/mediatek/mt8173/include/soc/wdt.h b/src/soc/mediatek/mt8173/include/soc/wdt.h new file mode 100644 index 0000000000..41e4723ab3 --- /dev/null +++ b/src/soc/mediatek/mt8173/include/soc/wdt.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_MT8173_WDT_H +#define SOC_MEDIATEK_MT8173_WDT_H + +#include + +#endif /* SOC_MEDIATEK_MT8173_WDT_H */ diff --git a/src/soc/mediatek/mt8183/include/soc/wdt.h b/src/soc/mediatek/mt8183/include/soc/wdt.h new file mode 100644 index 0000000000..6a44c31ef7 --- /dev/null +++ b/src/soc/mediatek/mt8183/include/soc/wdt.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_MT8183_WDT_H +#define SOC_MEDIATEK_MT8183_WDT_H + +#include + +#endif /* SOC_MEDIATEK_MT8183_WDT_H */ diff --git a/src/soc/mediatek/mt8186/Makefile.inc b/src/soc/mediatek/mt8186/Makefile.inc index 77a6c2833c..37213bbad3 100644 --- a/src/soc/mediatek/mt8186/Makefile.inc +++ b/src/soc/mediatek/mt8186/Makefile.inc @@ -14,7 +14,7 @@ bootblock-y += gic.c bootblock-y += ../common/mmu_operations.c bootblock-y += ../common/pll.c pll.c bootblock-y += ../common/tracker.c ../common/tracker_v1.c -bootblock-y += ../common/wdt.c wdt.c +bootblock-y += ../common/wdt.c ../common/wdt_req.c wdt.c romstage-y += ../common/cbmem.c romstage-y += ../common/dram_init.c diff --git a/src/soc/mediatek/mt8186/include/soc/wdt.h b/src/soc/mediatek/mt8186/include/soc/wdt.h new file mode 100644 index 0000000000..9f06bb94d1 --- /dev/null +++ b/src/soc/mediatek/mt8186/include/soc/wdt.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_MT8186_WDT_H +#define SOC_MEDIATEK_MT8186_WDT_H + +#include + +#define MTK_WDT_SPM_THERMAL_VAL 0 + +DEFINE_BIT(MTK_WDT_SPM_THERMAL_EN, 0) +DEFINE_BIT(MTK_WDT_THERMAL_EN, 18) +DEFINE_BIT(MTK_WDT_THERMAL_IRQ, 18) + +#endif /* SOC_MEDIATEK_MT8186_WDT_H */ diff --git a/src/soc/mediatek/mt8186/wdt.c b/src/soc/mediatek/mt8186/wdt.c index 5303f9d566..fbc9bb9989 100644 --- a/src/soc/mediatek/mt8186/wdt.c +++ b/src/soc/mediatek/mt8186/wdt.c @@ -10,26 +10,8 @@ #include #define MTK_WDT_CLR_STATUS_VAL 0x22 -#define MTK_WDT_REQ_MOD_KEY_VAL 0x33 -#define MTK_WDT_REQ_IRQ_KEY_VAL 0x44 DEFINE_BITFIELD(MTK_WDT_CLR_STATUS, 31, 24) -DEFINE_BITFIELD(MTK_WDT_REQ_MOD_KEY, 31, 24) -DEFINE_BITFIELD(MTK_WDT_REQ_IRQ_KEY, 31, 24) -DEFINE_BIT(MTK_WDT_SPM_THERMAL_EN, 0) -DEFINE_BIT(MTK_WDT_THERMAL_EN, 18) -DEFINE_BIT(MTK_WDT_THERMAL_IRQ, 18) - -void mtk_wdt_set_req(void) -{ - SET32_BITFIELDS(&mtk_wdt->wdt_req_mode, - MTK_WDT_SPM_THERMAL_EN, 0, - MTK_WDT_THERMAL_EN, 1, - MTK_WDT_REQ_MOD_KEY, MTK_WDT_REQ_MOD_KEY_VAL); - SET32_BITFIELDS(&mtk_wdt->wdt_req_irq_en, - MTK_WDT_THERMAL_IRQ, 0, - MTK_WDT_REQ_IRQ_KEY, MTK_WDT_REQ_IRQ_KEY_VAL); -} void mtk_wdt_clr_status(void) { diff --git a/src/soc/mediatek/mt8192/Makefile.inc b/src/soc/mediatek/mt8192/Makefile.inc index 783bd02ef2..fd983d5b0e 100644 --- a/src/soc/mediatek/mt8192/Makefile.inc +++ b/src/soc/mediatek/mt8192/Makefile.inc @@ -13,7 +13,7 @@ bootblock-y += ../common/eint_event.c bootblock-y += ../common/mmu_operations.c bootblock-y += ../common/pll.c pll.c bootblock-y += ../common/tracker.c ../common/tracker_v2.c -bootblock-y += ../common/wdt.c wdt.c +bootblock-y += ../common/wdt.c ../common/wdt_req.c romstage-y += ../common/auxadc.c romstage-y += ../common/cbmem.c diff --git a/src/soc/mediatek/mt8192/include/soc/wdt.h b/src/soc/mediatek/mt8192/include/soc/wdt.h new file mode 100644 index 0000000000..01faaf0f10 --- /dev/null +++ b/src/soc/mediatek/mt8192/include/soc/wdt.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_MT8192_WDT_H +#define SOC_MEDIATEK_MT8192_WDT_H + +#include + +#define MTK_WDT_SPM_THERMAL_VAL 1 + +DEFINE_BIT(MTK_WDT_SPM_THERMAL_EN, 0) +DEFINE_BIT(MTK_WDT_THERMAL_EN, 18) +DEFINE_BIT(MTK_WDT_THERMAL_IRQ, 18) + +#endif /* SOC_MEDIATEK_MT8192_WDT_H */ diff --git a/src/soc/mediatek/mt8195/Makefile.inc b/src/soc/mediatek/mt8195/Makefile.inc index a96788e874..8262763ef1 100644 --- a/src/soc/mediatek/mt8195/Makefile.inc +++ b/src/soc/mediatek/mt8195/Makefile.inc @@ -15,7 +15,7 @@ bootblock-y += ../common/mmu_operations.c bootblock-$(CONFIG_PCI) += pcie.c bootblock-y += ../common/pll.c pll.c bootblock-y += ../common/tracker.c ../common/tracker_v2.c -bootblock-y += ../common/wdt.c wdt.c +bootblock-y += ../common/wdt.c ../common/wdt_req.c wdt.c romstage-y += ../common/cbmem.c romstage-y += ../common/clkbuf.c diff --git a/src/soc/mediatek/mt8195/include/soc/wdt.h b/src/soc/mediatek/mt8195/include/soc/wdt.h new file mode 100644 index 0000000000..5cfb07971e --- /dev/null +++ b/src/soc/mediatek/mt8195/include/soc/wdt.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_MT8195_WDT_H +#define SOC_MEDIATEK_MT8195_WDT_H + +#include + +#define MTK_WDT_SPM_THERMAL_VAL 1 + +DEFINE_BIT(MTK_WDT_SPM_THERMAL_EN, 0) +DEFINE_BIT(MTK_WDT_THERMAL_EN, 18) +DEFINE_BIT(MTK_WDT_THERMAL_IRQ, 18) + +#endif /* SOC_MEDIATEK_MT8195_WDT_H */ diff --git a/src/soc/mediatek/mt8195/wdt.c b/src/soc/mediatek/mt8195/wdt.c index ab2934bbc7..fcee3db21a 100644 --- a/src/soc/mediatek/mt8195/wdt.c +++ b/src/soc/mediatek/mt8195/wdt.c @@ -5,23 +5,6 @@ #include #define MTK_WDT_CLR_STATUS 0x230001FF -#define MTK_WDT_REQ_MOD_KEY_VAL 0x33 -#define MTK_WDT_REQ_IRQ_KEY_VAL 0x44 - -DEFINE_BITFIELD(MTK_WDT_REQ_MOD_KEY, 31, 24) -DEFINE_BITFIELD(MTK_WDT_REQ_IRQ_KEY, 31, 24) -DEFINE_BIT(MTK_WDT_THERMAL_EN, 18) -DEFINE_BIT(MTK_WDT_THERMAL_IRQ, 18) - -void mtk_wdt_set_req(void) -{ - SET32_BITFIELDS(&mtk_wdt->wdt_req_mode, - MTK_WDT_THERMAL_EN, 1, - MTK_WDT_REQ_MOD_KEY, MTK_WDT_REQ_MOD_KEY_VAL); - SET32_BITFIELDS(&mtk_wdt->wdt_req_irq_en, - MTK_WDT_THERMAL_IRQ, 0, - MTK_WDT_REQ_IRQ_KEY, MTK_WDT_REQ_IRQ_KEY_VAL); -} void mtk_wdt_clr_status(void) {