diff options
author | Yidi Lin <yidilin@chromium.org> | 2022-12-20 15:30:38 +0800 |
---|---|---|
committer | Yu-Ping Wu <yupingso@google.com> | 2022-12-22 04:52:00 +0000 |
commit | 78b29f456717eaac969e35f07ccbcd3c881c5ee0 (patch) | |
tree | 6e3a50bdef91cc99dd85c36e09b8302ffe448413 /src/soc/mediatek/mt8188 | |
parent | d7326282f93c92f0bf575b9aa2e8e8411b9399ef (diff) |
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 <yidilin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71137
Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Diffstat (limited to 'src/soc/mediatek/mt8188')
-rw-r--r-- | src/soc/mediatek/mt8188/devapc.c | 29 | ||||
-rw-r--r-- | src/soc/mediatek/mt8188/include/soc/devapc.h | 3 |
2 files changed, 3 insertions, 29 deletions
diff --git a/src/soc/mediatek/mt8188/devapc.c b/src/soc/mediatek/mt8188/devapc.c index afb39d5919..5890a8ec3d 100644 --- a/src/soc/mediatek/mt8188/devapc.c +++ b/src/soc/mediatek/mt8188/devapc.c @@ -2,7 +2,6 @@ #include <console/console.h> #include <soc/devapc.h> -#include <soc/devapc_common.h> static const struct apc_infra_peri_dom_16 infra_ao_sys0_devices[] = { /* 0 */ @@ -1575,35 +1574,11 @@ static void peri_par_init(uintptr_t base) set_peri_par_ao_apc(base); } -struct devapc_init_ops { - uintptr_t base; - void (*init)(uintptr_t base); - void (*dump)(uintptr_t base); -} devapc_init[] = { +const struct devapc_init_ops devapc_init[] = { { DEVAPC_INFRA_AO_BASE, infra_init, dump_infra_ao_apc }, { DEVAPC_PERI_AO_BASE, peri_init, dump_peri_ao_apc }, { DEVAPC_PERI2_AO_BASE, peri2_init, dump_peri2_ao_apc }, { DEVAPC_PERI_PAR_AO_BASE, peri_par_init, dump_peri_par_ao_apc }, }; -void dapc_init(void) -{ - int i; - uintptr_t devapc_ao_base; - - for (i = 0; i < ARRAY_SIZE(devapc_init); 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); - } -} +const size_t devapc_init_cnt = ARRAY_SIZE(devapc_init); diff --git a/src/soc/mediatek/mt8188/include/soc/devapc.h b/src/soc/mediatek/mt8188/include/soc/devapc.h index 3cbce5c417..1ea71bfe5a 100644 --- a/src/soc/mediatek/mt8188/include/soc/devapc.h +++ b/src/soc/mediatek/mt8188/include/soc/devapc.h @@ -5,8 +5,7 @@ #include <device/mmio.h> #include <soc/addressmap.h> - -void dapc_init(void); +#include <soc/devapc_common.h> enum devapc_ao_offset { SYS0_D0_APC_0 = 0x00000, |