Attention is currently required from: Hung-Te Lin. Rex-BC Chen has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/64675 )
Change subject: soc/mediatek/mt8195: Enable thermal hardware reset ......................................................................
soc/mediatek/mt8195: Enable thermal hardware reset
System will not trigger rebooting when heat is high because thermal control is irq mode for current setting. To enable thermal hardware reset, we need to enable thermal control request and set it to reboot mode.
This feauture will not influence the thermal control because this thermal hardware reset is only triggered if we disable thermal throttle policy. Furthermore, the mcupm also helps to control thermal. Therefore, we think it's not a normal situation to trigger thermal hardware reset.
This feature is only for new hardware structure for thermal. Therefore, we only need to take care for MT8192/MT8195/MT8186.
BUG=none TEST=build pass
Signed-off-by: Rex-BC Chen rex-bc.chen@mediatek.com Change-Id: Ia6489bb953d148a43af173454d6f2b3e2a1dfcf9 --- M src/soc/mediatek/mt8195/wdt.c 1 file changed, 17 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/75/64675/1
diff --git a/src/soc/mediatek/mt8195/wdt.c b/src/soc/mediatek/mt8195/wdt.c index fcee3db..54038c9 100644 --- a/src/soc/mediatek/mt8195/wdt.c +++ b/src/soc/mediatek/mt8195/wdt.c @@ -5,6 +5,23 @@ #include <soc/wdt.h>
#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_preinit(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) {