soc/mediatek/mt8186: Disable unused spm_thermal

In MT8186, we need to disable spm_thermal to prevent it from
influencing other wdt status.

There are two hardware pathes which are used for asserting watchdog
from thermal. We can disable status of path 1 because status of
path 2 is used.
1. Thermal -> SPM -> WDT
2. Thermal -> WDT

Spm_thermal (path 1) is a flexible option for software control, and
the hardware designer suggests that we should disable it if we don't
use it.

BUG=none
TEST=build pass

Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Change-Id: I0ffde6bad3000a64e3b5782edaa72c62da034302
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62890
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Rex-BC Chen 2022-03-09 20:42:56 +08:00 committed by Felix Held
parent 1e24b20475
commit bff1210f24
3 changed files with 15 additions and 1 deletions

View File

@ -14,7 +14,9 @@ struct mtk_wdt_regs {
u32 wdt_interval;
u32 wdt_swrst;
u32 wdt_swsysrst;
u32 reserved[9];
u32 reserved0[5];
u32 wdt_req_mode;
u32 reserved1[3];
u32 wdt_debug_ctrl;
};
@ -38,6 +40,7 @@ enum {
static struct mtk_wdt_regs *const mtk_wdt = (void *)RGU_BASE;
void mtk_wdt_preinit(void);
int mtk_wdt_init(void);
void mtk_wdt_clr_status(void);

View File

@ -12,6 +12,7 @@ void bootblock_soc_init(void)
{
mtk_mmu_init();
bustracker_init();
mtk_wdt_preinit();
mtk_wdt_init();
mt_pll_init();
unmask_eint_event_mask();

View File

@ -10,8 +10,18 @@
#include <soc/wdt.h>
#define MTK_WDT_CLR_STATUS_VAL 0x22
#define MTK_WDT_REQ_MOD_KEY_VAL 0x33
DEFINE_BITFIELD(MTK_WDT_CLR_STATUS, 31, 24)
DEFINE_BITFIELD(MTK_WDT_REQ_MOD_KEY, 31, 24)
DEFINE_BIT(MTK_WDT_SPM_THERMAL_EN, 0)
void mtk_wdt_preinit(void)
{
SET32_BITFIELDS(&mtk_wdt->wdt_req_mode,
MTK_WDT_SPM_THERMAL_EN, 0,
MTK_WDT_REQ_MOD_KEY, MTK_WDT_REQ_MOD_KEY_VAL);
}
void mtk_wdt_clr_status(void)
{