summaryrefslogtreecommitdiff
path: root/src/soc/mediatek/mt8186/gic.c
diff options
context:
space:
mode:
authorRex-BC Chen <rex-bc.chen@mediatek.corp-partner.google.com>2021-10-15 21:02:25 +0800
committerHung-Te Lin <hungte@chromium.org>2021-11-15 03:07:23 +0000
commitb9f95db1dcf14b7f14a4d5ad7b4340e00093c684 (patch)
tree026fe94f818fae291e0ade8150e37057da08aa6b /src/soc/mediatek/mt8186/gic.c
parent2f9e5b9e34d5812047725b4aebf612848e8f507e (diff)
soc/mediatek/mt8186: add GIC pre-initialization function
GIC (generic interrupt controller) defines architectural requirements for handling all interrupt sources and common interrupt controller programming interface. GIC needs to be pre-initialized on MT8186, so we add this initialize function. TEST=build pass BUG=b:202871018 Change-Id: I6bf439d0d9e1ca7130a69b9006b957afca8b133c Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/59252 Reviewed-by: Yu-Ping Wu <yupingso@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/mediatek/mt8186/gic.c')
-rw-r--r--src/soc/mediatek/mt8186/gic.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/soc/mediatek/mt8186/gic.c b/src/soc/mediatek/mt8186/gic.c
new file mode 100644
index 0000000000..ac077647af
--- /dev/null
+++ b/src/soc/mediatek/mt8186/gic.c
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+/*
+ * This file is created based on MT8186 Functional Specification
+ * Chapter number: 4.3
+ */
+
+#include <device/mmio.h>
+#include <soc/addressmap.h>
+#include <soc/gic.h>
+
+void mtk_gic_preinit(void)
+{
+ int i;
+
+ for (i = 3; i < 15; i++) {
+ write32((void *)((uintptr_t)MCUSYS_BASE + 0xA600 + i * 4), 0);
+ write32((void *)((uintptr_t)MCUSYS_BASE + 0xA650 + i * 4), 0xFFFFFFFF);
+ }
+}