diff --git a/src/soc/mediatek/mt8196/Makefile.mk b/src/soc/mediatek/mt8196/Makefile.mk index 73661bd2d7..d49925b535 100644 --- a/src/soc/mediatek/mt8196/Makefile.mk +++ b/src/soc/mediatek/mt8196/Makefile.mk @@ -13,6 +13,7 @@ all-y += ../common/uart.c bootblock-y += booker.c bootblock-y += bootblock.c bootblock-y += ../common/bootblock.c bootblock.c +bootblock-y += cksys.c bootblock-y += ../common/early_init.c bootblock-y += ../common/lastbus_v2.c lastbus.c bootblock-y += mminfra.c diff --git a/src/soc/mediatek/mt8196/bootblock.c b/src/soc/mediatek/mt8196/bootblock.c index 95555d14ed..bd3c418d54 100644 --- a/src/soc/mediatek/mt8196/bootblock.c +++ b/src/soc/mediatek/mt8196/bootblock.c @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -14,6 +15,7 @@ void bootblock_soc_init(void) { booker_init(); + mtk_cksys_init(); mtk_mmu_init(); bustracker_init(); lastbus_init(); diff --git a/src/soc/mediatek/mt8196/cksys.c b/src/soc/mediatek/mt8196/cksys.c new file mode 100644 index 0000000000..0869adcb50 --- /dev/null +++ b/src/soc/mediatek/mt8196/cksys.c @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ + +#include +#include +#include +#include + +#define CKSYS_OFFSET 0x270 +#define PERI_MASK_IDLE_TO_CKSYS (PERICFG_AO_SEC_BASE + CKSYS_OFFSET) + +void mtk_cksys_init(void) +{ + setbits32p(PERI_MASK_IDLE_TO_CKSYS, BIT(0)); + printk(BIOS_INFO, "%s = %#x\n", __func__, read32p(PERI_MASK_IDLE_TO_CKSYS)); +} diff --git a/src/soc/mediatek/mt8196/include/soc/cksys.h b/src/soc/mediatek/mt8196/include/soc/cksys.h new file mode 100644 index 0000000000..bb28add1a7 --- /dev/null +++ b/src/soc/mediatek/mt8196/include/soc/cksys.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ + +#ifndef __SOC_MEDIATEK_MT8196_CKSYS_H__ +#define __SOC_MEDIATEK_MT8196_CKSYS_H__ + +void mtk_cksys_init(void); + +#endif /* __SOC_MEDIATEK_MT8196_CKSYS_H__ */