From 78b29f456717eaac969e35f07ccbcd3c881c5ee0 Mon Sep 17 00:00:00 2001 From: Yidi Lin Date: Tue, 20 Dec 2022 15:30:38 +0800 Subject: soc/mediatek: Move dapc_init to common dapc_init flow is the same on MT8186, MT8188 and MT8195. So move this function to common/devapc.c TEST=emerge-corsola coreboot; emerge-cherry coreboot; emerge-geralt coreboot TEST=devapc log is shown as expected and the system boots to kernel Change-Id: I979c3a3721a82d40c9e2db7fbe62e14a9bbd53d8 Signed-off-by: Yidi Lin Reviewed-on: https://review.coreboot.org/c/coreboot/+/71137 Reviewed-by: Rex-BC Chen Tested-by: build bot (Jenkins) Reviewed-by: Yu-Ping Wu --- src/soc/mediatek/common/devapc.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/soc/mediatek/common/devapc.c') diff --git a/src/soc/mediatek/common/devapc.c b/src/soc/mediatek/common/devapc.c index f491817f06..5859c9af85 100644 --- a/src/soc/mediatek/common/devapc.c +++ b/src/soc/mediatek/common/devapc.c @@ -28,3 +28,25 @@ void set_module_apc(uintptr_t base, uint32_t module, enum domain_id domain_id, 0x3 << (apc_set_index * 2), perm << (apc_set_index * 2)); } + +void dapc_init(void) +{ + size_t i; + uintptr_t devapc_ao_base; + + for (i = 0; i < devapc_init_cnt; i++) { + devapc_ao_base = devapc_init[i].base; + + /* Init dapc */ + write32(getreg(devapc_ao_base, AO_APC_CON), 0x0); + write32(getreg(devapc_ao_base, AO_APC_CON), 0x1); + + /* Initialization */ + if (devapc_init[i].init) + devapc_init[i].init(devapc_ao_base); + + /* Dump Setting */ + if (devapc_init[i].dump) + devapc_init[i].dump(devapc_ao_base); + } +} -- cgit v1.2.3