summaryrefslogtreecommitdiff
path: root/src/soc/mediatek/mt8195
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/mt8195
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/mt8195')
-rw-r--r--src/soc/mediatek/mt8195/apusys_devapc.c1
-rw-r--r--src/soc/mediatek/mt8195/devapc.c33
-rw-r--r--src/soc/mediatek/mt8195/include/soc/devapc.h3
-rw-r--r--src/soc/mediatek/mt8195/soc.c2
4 files changed, 5 insertions, 34 deletions
diff --git a/src/soc/mediatek/mt8195/apusys_devapc.c b/src/soc/mediatek/mt8195/apusys_devapc.c
index f02ed0e7b7..d5f89786e5 100644
--- a/src/soc/mediatek/mt8195/apusys_devapc.c
+++ b/src/soc/mediatek/mt8195/apusys_devapc.c
@@ -3,7 +3,6 @@
#include <console/console.h>
#include <soc/apusys_devapc.h>
#include <soc/devapc.h>
-#include <soc/devapc_common.h>
static const enum domain_id domain_map[] = {
DOMAIN_0, DOMAIN_1, DOMAIN_2, DOMAIN_3, DOMAIN_4, DOMAIN_5, DOMAIN_6, DOMAIN_7,
diff --git a/src/soc/mediatek/mt8195/devapc.c b/src/soc/mediatek/mt8195/devapc.c
index 5a2c3125c0..5d0bead5ed 100644
--- a/src/soc/mediatek/mt8195/devapc.c
+++ b/src/soc/mediatek/mt8195/devapc.c
@@ -2,8 +2,6 @@
#include <console/console.h>
#include <soc/devapc.h>
-#include <soc/devapc_common.h>
-#include <soc/apusys_devapc.h>
static const struct apc_infra_peri_dom_16 infra_ao_sys0_devices[] = {
/* 0 */
@@ -1939,11 +1937,7 @@ static void scp_master_init(uintptr_t base)
write32(getreg(base, ONETIME_LOCK), 0x5);
}
-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 },
@@ -1953,27 +1947,4 @@ struct devapc_init_ops {
{ SCP_CFG_BASE, scp_master_init, dump_scp_master },
};
-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);
- }
-
- /* Set up APUSYS Permission */
- start_apusys_devapc();
-}
+const size_t devapc_init_cnt = ARRAY_SIZE(devapc_init);
diff --git a/src/soc/mediatek/mt8195/include/soc/devapc.h b/src/soc/mediatek/mt8195/include/soc/devapc.h
index f2f0e9a3f0..ecf171eba3 100644
--- a/src/soc/mediatek/mt8195/include/soc/devapc.h
+++ b/src/soc/mediatek/mt8195/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 = 0x0,
diff --git a/src/soc/mediatek/mt8195/soc.c b/src/soc/mediatek/mt8195/soc.c
index 9383ac7f66..2ecc31e551 100644
--- a/src/soc/mediatek/mt8195/soc.c
+++ b/src/soc/mediatek/mt8195/soc.c
@@ -5,6 +5,7 @@
#include <device/device.h>
#include <device/pci.h>
#include <soc/apusys.h>
+#include <soc/apusys_devapc.h>
#include <soc/devapc.h>
#include <soc/dfd.h>
#include <soc/emi.h>
@@ -31,6 +32,7 @@ static void soc_init(struct device *dev)
{
mtk_mmu_disable_l2c_sram();
dapc_init();
+ start_apusys_devapc();
apusys_init();
mcupm_init();
sspm_init();