aboutsummaryrefslogtreecommitdiff
path: root/src/soc/mediatek/common/devapc.c
diff options
context:
space:
mode:
authorYidi Lin <yidilin@chromium.org>2022-12-20 15:30:38 +0800
committerYu-Ping Wu <yupingso@google.com>2022-12-22 04:52:00 +0000
commit78b29f456717eaac969e35f07ccbcd3c881c5ee0 (patch)
tree6e3a50bdef91cc99dd85c36e09b8302ffe448413 /src/soc/mediatek/common/devapc.c
parentd7326282f93c92f0bf575b9aa2e8e8411b9399ef (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/common/devapc.c')
-rw-r--r--src/soc/mediatek/common/devapc.c22
1 files changed, 22 insertions, 0 deletions
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);
+ }
+}