1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
3 * Copyright (c) 2018 MediaTek Inc.
4 * Author: Ben Ho <ben.ho@mediatek.com>
5 * Erin Lo <erin.lo@mediatek.com>
8 #include <dt-bindings/clock/mt8183-clk.h>
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include "mt8183-pinfunc.h"
14 compatible = "mediatek,mt8183";
15 interrupt-parent = <&sysirq>;
57 compatible = "arm,cortex-a53";
59 enable-method = "psci";
60 capacity-dmips-mhz = <741>;
65 compatible = "arm,cortex-a53";
67 enable-method = "psci";
68 capacity-dmips-mhz = <741>;
73 compatible = "arm,cortex-a53";
75 enable-method = "psci";
76 capacity-dmips-mhz = <741>;
81 compatible = "arm,cortex-a53";
83 enable-method = "psci";
84 capacity-dmips-mhz = <741>;
89 compatible = "arm,cortex-a73";
91 enable-method = "psci";
92 capacity-dmips-mhz = <1024>;
97 compatible = "arm,cortex-a73";
99 enable-method = "psci";
100 capacity-dmips-mhz = <1024>;
105 compatible = "arm,cortex-a73";
107 enable-method = "psci";
108 capacity-dmips-mhz = <1024>;
113 compatible = "arm,cortex-a73";
115 enable-method = "psci";
116 capacity-dmips-mhz = <1024>;
121 compatible = "arm,cortex-a53-pmu";
122 interrupt-parent = <&gic>;
123 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
127 compatible = "arm,cortex-a73-pmu";
128 interrupt-parent = <&gic>;
129 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
133 compatible = "arm,psci-1.0";
138 compatible = "fixed-clock";
140 clock-frequency = <26000000>;
141 clock-output-names = "clk26m";
145 compatible = "arm,armv8-timer";
146 interrupt-parent = <&gic>;
147 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
148 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
149 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
150 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
154 #address-cells = <2>;
156 compatible = "simple-bus";
159 soc_data: soc_data@8000000 {
160 compatible = "mediatek,mt8183-efuse",
162 reg = <0 0x08000000 0 0x0010>;
163 #address-cells = <1>;
168 gic: interrupt-controller@c000000 {
169 compatible = "arm,gic-v3";
170 #interrupt-cells = <4>;
171 interrupt-parent = <&gic>;
172 interrupt-controller;
173 reg = <0 0x0c000000 0 0x40000>, /* GICD */
174 <0 0x0c100000 0 0x200000>, /* GICR */
175 <0 0x0c400000 0 0x2000>, /* GICC */
176 <0 0x0c410000 0 0x1000>, /* GICH */
177 <0 0x0c420000 0 0x2000>; /* GICV */
179 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
181 ppi_cluster0: interrupt-partition-0 {
182 affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
184 ppi_cluster1: interrupt-partition-1 {
185 affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
190 mcucfg: syscon@c530000 {
191 compatible = "mediatek,mt8183-mcucfg", "syscon";
192 reg = <0 0x0c530000 0 0x1000>;
196 sysirq: interrupt-controller@c530a80 {
197 compatible = "mediatek,mt8183-sysirq",
198 "mediatek,mt6577-sysirq";
199 interrupt-controller;
200 #interrupt-cells = <3>;
201 interrupt-parent = <&gic>;
202 reg = <0 0x0c530a80 0 0x50>;
205 topckgen: syscon@10000000 {
206 compatible = "mediatek,mt8183-topckgen", "syscon";
207 reg = <0 0x10000000 0 0x1000>;
211 infracfg: syscon@10001000 {
212 compatible = "mediatek,mt8183-infracfg", "syscon";
213 reg = <0 0x10001000 0 0x1000>;
217 pio: pinctrl@10005000 {
218 compatible = "mediatek,mt8183-pinctrl";
219 reg = <0 0x10005000 0 0x1000>,
220 <0 0x11f20000 0 0x1000>,
221 <0 0x11e80000 0 0x1000>,
222 <0 0x11e70000 0 0x1000>,
223 <0 0x11e90000 0 0x1000>,
224 <0 0x11d30000 0 0x1000>,
225 <0 0x11d20000 0 0x1000>,
226 <0 0x11c50000 0 0x1000>,
227 <0 0x11f30000 0 0x1000>,
228 <0 0x1000b000 0 0x1000>;
229 reg-names = "iocfg0", "iocfg1", "iocfg2",
230 "iocfg3", "iocfg4", "iocfg5",
231 "iocfg6", "iocfg7", "iocfg8",
235 gpio-ranges = <&pio 0 0 192>;
236 interrupt-controller;
237 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
238 #interrupt-cells = <2>;
241 apmixedsys: syscon@1000c000 {
242 compatible = "mediatek,mt8183-apmixedsys", "syscon";
243 reg = <0 0x1000c000 0 0x1000>;
247 pwrap: pwrap@1000d000 {
248 compatible = "mediatek,mt8183-pwrap";
249 reg = <0 0x1000d000 0 0x1000>;
251 interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
252 clocks = <&topckgen CLK_TOP_MUX_PMICSPI>,
253 <&infracfg CLK_INFRA_PMIC_AP>;
254 clock-names = "spi", "wrap";
257 auxadc: auxadc@11001000 {
258 compatible = "mediatek,mt8183-auxadc",
259 "mediatek,mt8173-auxadc";
260 reg = <0 0x11001000 0 0x1000>;
261 clocks = <&infracfg CLK_INFRA_AUXADC>;
262 clock-names = "main";
263 #io-channel-cells = <1>;
267 uart0: serial@11002000 {
268 compatible = "mediatek,mt8183-uart",
269 "mediatek,mt6577-uart";
270 reg = <0 0x11002000 0 0x1000>;
271 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
272 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
273 clock-names = "baud", "bus";
277 uart1: serial@11003000 {
278 compatible = "mediatek,mt8183-uart",
279 "mediatek,mt6577-uart";
280 reg = <0 0x11003000 0 0x1000>;
281 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
282 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
283 clock-names = "baud", "bus";
287 uart2: serial@11004000 {
288 compatible = "mediatek,mt8183-uart",
289 "mediatek,mt6577-uart";
290 reg = <0 0x11004000 0 0x1000>;
291 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
292 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART2>;
293 clock-names = "baud", "bus";
298 compatible = "mediatek,mt8183-spi";
299 #address-cells = <1>;
301 reg = <0 0x1100a000 0 0x1000>;
302 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_LOW>;
303 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
304 <&topckgen CLK_TOP_MUX_SPI>,
305 <&infracfg CLK_INFRA_SPI0>;
306 clock-names = "parent-clk", "sel-clk", "spi-clk";
311 compatible = "mediatek,mt8183-spi";
312 #address-cells = <1>;
314 reg = <0 0x11010000 0 0x1000>;
315 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_LOW>;
316 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
317 <&topckgen CLK_TOP_MUX_SPI>,
318 <&infracfg CLK_INFRA_SPI1>;
319 clock-names = "parent-clk", "sel-clk", "spi-clk";
324 compatible = "mediatek,mt8183-spi";
325 #address-cells = <1>;
327 reg = <0 0x11012000 0 0x1000>;
328 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_LOW>;
329 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
330 <&topckgen CLK_TOP_MUX_SPI>,
331 <&infracfg CLK_INFRA_SPI2>;
332 clock-names = "parent-clk", "sel-clk", "spi-clk";
337 compatible = "mediatek,mt8183-spi";
338 #address-cells = <1>;
340 reg = <0 0x11013000 0 0x1000>;
341 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_LOW>;
342 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
343 <&topckgen CLK_TOP_MUX_SPI>,
344 <&infracfg CLK_INFRA_SPI3>;
345 clock-names = "parent-clk", "sel-clk", "spi-clk";
350 compatible = "mediatek,mt8183-spi";
351 #address-cells = <1>;
353 reg = <0 0x11018000 0 0x1000>;
354 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_LOW>;
355 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
356 <&topckgen CLK_TOP_MUX_SPI>,
357 <&infracfg CLK_INFRA_SPI4>;
358 clock-names = "parent-clk", "sel-clk", "spi-clk";
363 compatible = "mediatek,mt8183-spi";
364 #address-cells = <1>;
366 reg = <0 0x11019000 0 0x1000>;
367 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
368 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
369 <&topckgen CLK_TOP_MUX_SPI>,
370 <&infracfg CLK_INFRA_SPI5>;
371 clock-names = "parent-clk", "sel-clk", "spi-clk";
375 audiosys: syscon@11220000 {
376 compatible = "mediatek,mt8183-audiosys", "syscon";
377 reg = <0 0x11220000 0 0x1000>;
381 efuse: efuse@11f10000 {
382 compatible = "mediatek,mt8183-efuse",
384 reg = <0 0x11f10000 0 0x1000>;
387 mfgcfg: syscon@13000000 {
388 compatible = "mediatek,mt8183-mfgcfg", "syscon";
389 reg = <0 0x13000000 0 0x1000>;
393 mmsys: syscon@14000000 {
394 compatible = "mediatek,mt8183-mmsys", "syscon";
395 reg = <0 0x14000000 0 0x1000>;
399 imgsys: syscon@15020000 {
400 compatible = "mediatek,mt8183-imgsys", "syscon";
401 reg = <0 0x15020000 0 0x1000>;
405 vdecsys: syscon@16000000 {
406 compatible = "mediatek,mt8183-vdecsys", "syscon";
407 reg = <0 0x16000000 0 0x1000>;
411 vencsys: syscon@17000000 {
412 compatible = "mediatek,mt8183-vencsys", "syscon";
413 reg = <0 0x17000000 0 0x1000>;
417 ipu_conn: syscon@19000000 {
418 compatible = "mediatek,mt8183-ipu_conn", "syscon";
419 reg = <0 0x19000000 0 0x1000>;
423 ipu_adl: syscon@19010000 {
424 compatible = "mediatek,mt8183-ipu_adl", "syscon";
425 reg = <0 0x19010000 0 0x1000>;
429 ipu_core0: syscon@19180000 {
430 compatible = "mediatek,mt8183-ipu_core0", "syscon";
431 reg = <0 0x19180000 0 0x1000>;
435 ipu_core1: syscon@19280000 {
436 compatible = "mediatek,mt8183-ipu_core1", "syscon";
437 reg = <0 0x19280000 0 0x1000>;
441 camsys: syscon@1a000000 {
442 compatible = "mediatek,mt8183-camsys", "syscon";
443 reg = <0 0x1a000000 0 0x1000>;