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>;
72 compatible = "arm,cortex-a53";
74 enable-method = "psci";
75 capacity-dmips-mhz = <741>;
80 compatible = "arm,cortex-a53";
82 enable-method = "psci";
83 capacity-dmips-mhz = <741>;
88 compatible = "arm,cortex-a53";
90 enable-method = "psci";
91 capacity-dmips-mhz = <741>;
96 compatible = "arm,cortex-a53";
98 enable-method = "psci";
99 capacity-dmips-mhz = <741>;
104 compatible = "arm,cortex-a73";
106 enable-method = "psci";
107 capacity-dmips-mhz = <1024>;
112 compatible = "arm,cortex-a73";
114 enable-method = "psci";
115 capacity-dmips-mhz = <1024>;
120 compatible = "arm,cortex-a73";
122 enable-method = "psci";
123 capacity-dmips-mhz = <1024>;
128 compatible = "arm,cortex-a73";
130 enable-method = "psci";
131 capacity-dmips-mhz = <1024>;
136 compatible = "arm,cortex-a53-pmu";
137 interrupt-parent = <&gic>;
138 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
142 compatible = "arm,cortex-a73-pmu";
143 interrupt-parent = <&gic>;
144 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
148 compatible = "arm,psci-1.0";
153 compatible = "fixed-clock";
155 clock-frequency = <26000000>;
156 clock-output-names = "clk26m";
160 compatible = "arm,armv8-timer";
161 interrupt-parent = <&gic>;
162 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
163 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
164 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
165 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
169 #address-cells = <2>;
171 compatible = "simple-bus";
174 soc_data: soc_data@8000000 {
175 compatible = "mediatek,mt8183-efuse",
177 reg = <0 0x08000000 0 0x0010>;
178 #address-cells = <1>;
183 gic: interrupt-controller@c000000 {
184 compatible = "arm,gic-v3";
185 #interrupt-cells = <4>;
186 interrupt-parent = <&gic>;
187 interrupt-controller;
188 reg = <0 0x0c000000 0 0x40000>, /* GICD */
189 <0 0x0c100000 0 0x200000>, /* GICR */
190 <0 0x0c400000 0 0x2000>, /* GICC */
191 <0 0x0c410000 0 0x1000>, /* GICH */
192 <0 0x0c420000 0 0x2000>; /* GICV */
194 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
196 ppi_cluster0: interrupt-partition-0 {
197 affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
199 ppi_cluster1: interrupt-partition-1 {
200 affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
205 mcucfg: syscon@c530000 {
206 compatible = "mediatek,mt8183-mcucfg", "syscon";
207 reg = <0 0x0c530000 0 0x1000>;
211 sysirq: interrupt-controller@c530a80 {
212 compatible = "mediatek,mt8183-sysirq",
213 "mediatek,mt6577-sysirq";
214 interrupt-controller;
215 #interrupt-cells = <3>;
216 interrupt-parent = <&gic>;
217 reg = <0 0x0c530a80 0 0x50>;
220 topckgen: syscon@10000000 {
221 compatible = "mediatek,mt8183-topckgen", "syscon";
222 reg = <0 0x10000000 0 0x1000>;
226 infracfg: syscon@10001000 {
227 compatible = "mediatek,mt8183-infracfg", "syscon";
228 reg = <0 0x10001000 0 0x1000>;
232 pio: pinctrl@10005000 {
233 compatible = "mediatek,mt8183-pinctrl";
234 reg = <0 0x10005000 0 0x1000>,
235 <0 0x11f20000 0 0x1000>,
236 <0 0x11e80000 0 0x1000>,
237 <0 0x11e70000 0 0x1000>,
238 <0 0x11e90000 0 0x1000>,
239 <0 0x11d30000 0 0x1000>,
240 <0 0x11d20000 0 0x1000>,
241 <0 0x11c50000 0 0x1000>,
242 <0 0x11f30000 0 0x1000>,
243 <0 0x1000b000 0 0x1000>;
244 reg-names = "iocfg0", "iocfg1", "iocfg2",
245 "iocfg3", "iocfg4", "iocfg5",
246 "iocfg6", "iocfg7", "iocfg8",
250 gpio-ranges = <&pio 0 0 192>;
251 interrupt-controller;
252 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
253 #interrupt-cells = <2>;
256 apmixedsys: syscon@1000c000 {
257 compatible = "mediatek,mt8183-apmixedsys", "syscon";
258 reg = <0 0x1000c000 0 0x1000>;
262 pwrap: pwrap@1000d000 {
263 compatible = "mediatek,mt8183-pwrap";
264 reg = <0 0x1000d000 0 0x1000>;
266 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
267 clocks = <&topckgen CLK_TOP_MUX_PMICSPI>,
268 <&infracfg CLK_INFRA_PMIC_AP>;
269 clock-names = "spi", "wrap";
272 auxadc: auxadc@11001000 {
273 compatible = "mediatek,mt8183-auxadc",
274 "mediatek,mt8173-auxadc";
275 reg = <0 0x11001000 0 0x1000>;
276 clocks = <&infracfg CLK_INFRA_AUXADC>;
277 clock-names = "main";
278 #io-channel-cells = <1>;
282 uart0: serial@11002000 {
283 compatible = "mediatek,mt8183-uart",
284 "mediatek,mt6577-uart";
285 reg = <0 0x11002000 0 0x1000>;
286 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
287 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
288 clock-names = "baud", "bus";
292 uart1: serial@11003000 {
293 compatible = "mediatek,mt8183-uart",
294 "mediatek,mt6577-uart";
295 reg = <0 0x11003000 0 0x1000>;
296 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
297 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
298 clock-names = "baud", "bus";
302 uart2: serial@11004000 {
303 compatible = "mediatek,mt8183-uart",
304 "mediatek,mt6577-uart";
305 reg = <0 0x11004000 0 0x1000>;
306 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
307 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART2>;
308 clock-names = "baud", "bus";
313 compatible = "mediatek,mt8183-i2c";
314 reg = <0 0x11005000 0 0x1000>,
315 <0 0x11000600 0 0x80>;
316 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
317 clocks = <&infracfg CLK_INFRA_I2C6>,
318 <&infracfg CLK_INFRA_AP_DMA>;
319 clock-names = "main", "dma";
321 #address-cells = <1>;
327 compatible = "mediatek,mt8183-i2c";
328 reg = <0 0x11007000 0 0x1000>,
329 <0 0x11000080 0 0x80>;
330 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
331 clocks = <&infracfg CLK_INFRA_I2C0>,
332 <&infracfg CLK_INFRA_AP_DMA>;
333 clock-names = "main", "dma";
335 #address-cells = <1>;
341 compatible = "mediatek,mt8183-i2c";
342 reg = <0 0x11008000 0 0x1000>,
343 <0 0x11000100 0 0x80>;
344 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
345 clocks = <&infracfg CLK_INFRA_I2C1>,
346 <&infracfg CLK_INFRA_AP_DMA>,
347 <&infracfg CLK_INFRA_I2C1_ARBITER>;
348 clock-names = "main", "dma","arb";
350 #address-cells = <1>;
356 compatible = "mediatek,mt8183-i2c";
357 reg = <0 0x11009000 0 0x1000>,
358 <0 0x11000280 0 0x80>;
359 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
360 clocks = <&infracfg CLK_INFRA_I2C2>,
361 <&infracfg CLK_INFRA_AP_DMA>,
362 <&infracfg CLK_INFRA_I2C2_ARBITER>;
363 clock-names = "main", "dma", "arb";
365 #address-cells = <1>;
371 compatible = "mediatek,mt8183-spi";
372 #address-cells = <1>;
374 reg = <0 0x1100a000 0 0x1000>;
375 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_LOW>;
376 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
377 <&topckgen CLK_TOP_MUX_SPI>,
378 <&infracfg CLK_INFRA_SPI0>;
379 clock-names = "parent-clk", "sel-clk", "spi-clk";
384 compatible = "mediatek,mt8183-i2c";
385 reg = <0 0x1100f000 0 0x1000>,
386 <0 0x11000400 0 0x80>;
387 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
388 clocks = <&infracfg CLK_INFRA_I2C3>,
389 <&infracfg CLK_INFRA_AP_DMA>;
390 clock-names = "main", "dma";
392 #address-cells = <1>;
398 compatible = "mediatek,mt8183-spi";
399 #address-cells = <1>;
401 reg = <0 0x11010000 0 0x1000>;
402 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_LOW>;
403 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
404 <&topckgen CLK_TOP_MUX_SPI>,
405 <&infracfg CLK_INFRA_SPI1>;
406 clock-names = "parent-clk", "sel-clk", "spi-clk";
411 compatible = "mediatek,mt8183-i2c";
412 reg = <0 0x11011000 0 0x1000>,
413 <0 0x11000480 0 0x80>;
414 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
415 clocks = <&infracfg CLK_INFRA_I2C4>,
416 <&infracfg CLK_INFRA_AP_DMA>;
417 clock-names = "main", "dma";
419 #address-cells = <1>;
425 compatible = "mediatek,mt8183-spi";
426 #address-cells = <1>;
428 reg = <0 0x11012000 0 0x1000>;
429 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_LOW>;
430 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
431 <&topckgen CLK_TOP_MUX_SPI>,
432 <&infracfg CLK_INFRA_SPI2>;
433 clock-names = "parent-clk", "sel-clk", "spi-clk";
438 compatible = "mediatek,mt8183-spi";
439 #address-cells = <1>;
441 reg = <0 0x11013000 0 0x1000>;
442 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_LOW>;
443 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
444 <&topckgen CLK_TOP_MUX_SPI>,
445 <&infracfg CLK_INFRA_SPI3>;
446 clock-names = "parent-clk", "sel-clk", "spi-clk";
451 compatible = "mediatek,mt8183-i2c";
452 reg = <0 0x11014000 0 0x1000>,
453 <0 0x11000180 0 0x80>;
454 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_LOW>;
455 clocks = <&infracfg CLK_INFRA_I2C1_IMM>,
456 <&infracfg CLK_INFRA_AP_DMA>,
457 <&infracfg CLK_INFRA_I2C1_ARBITER>;
458 clock-names = "main", "dma", "arb";
460 #address-cells = <1>;
465 i2c10: i2c@11015000 {
466 compatible = "mediatek,mt8183-i2c";
467 reg = <0 0x11015000 0 0x1000>,
468 <0 0x11000300 0 0x80>;
469 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
470 clocks = <&infracfg CLK_INFRA_I2C2_IMM>,
471 <&infracfg CLK_INFRA_AP_DMA>,
472 <&infracfg CLK_INFRA_I2C2_ARBITER>;
473 clock-names = "main", "dma", "arb";
475 #address-cells = <1>;
481 compatible = "mediatek,mt8183-i2c";
482 reg = <0 0x11016000 0 0x1000>,
483 <0 0x11000500 0 0x80>;
484 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
485 clocks = <&infracfg CLK_INFRA_I2C5>,
486 <&infracfg CLK_INFRA_AP_DMA>,
487 <&infracfg CLK_INFRA_I2C5_ARBITER>;
488 clock-names = "main", "dma", "arb";
490 #address-cells = <1>;
495 i2c11: i2c@11017000 {
496 compatible = "mediatek,mt8183-i2c";
497 reg = <0 0x11017000 0 0x1000>,
498 <0 0x11000580 0 0x80>;
499 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_LOW>;
500 clocks = <&infracfg CLK_INFRA_I2C5_IMM>,
501 <&infracfg CLK_INFRA_AP_DMA>,
502 <&infracfg CLK_INFRA_I2C5_ARBITER>;
503 clock-names = "main", "dma", "arb";
505 #address-cells = <1>;
511 compatible = "mediatek,mt8183-spi";
512 #address-cells = <1>;
514 reg = <0 0x11018000 0 0x1000>;
515 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_LOW>;
516 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
517 <&topckgen CLK_TOP_MUX_SPI>,
518 <&infracfg CLK_INFRA_SPI4>;
519 clock-names = "parent-clk", "sel-clk", "spi-clk";
524 compatible = "mediatek,mt8183-spi";
525 #address-cells = <1>;
527 reg = <0 0x11019000 0 0x1000>;
528 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
529 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
530 <&topckgen CLK_TOP_MUX_SPI>,
531 <&infracfg CLK_INFRA_SPI5>;
532 clock-names = "parent-clk", "sel-clk", "spi-clk";
537 compatible = "mediatek,mt8183-i2c";
538 reg = <0 0x1101a000 0 0x1000>,
539 <0 0x11000680 0 0x80>;
540 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>;
541 clocks = <&infracfg CLK_INFRA_I2C7>,
542 <&infracfg CLK_INFRA_AP_DMA>;
543 clock-names = "main", "dma";
545 #address-cells = <1>;
551 compatible = "mediatek,mt8183-i2c";
552 reg = <0 0x1101b000 0 0x1000>,
553 <0 0x11000700 0 0x80>;
554 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_LOW>;
555 clocks = <&infracfg CLK_INFRA_I2C8>,
556 <&infracfg CLK_INFRA_AP_DMA>;
557 clock-names = "main", "dma";
559 #address-cells = <1>;
564 audiosys: syscon@11220000 {
565 compatible = "mediatek,mt8183-audiosys", "syscon";
566 reg = <0 0x11220000 0 0x1000>;
570 efuse: efuse@11f10000 {
571 compatible = "mediatek,mt8183-efuse",
573 reg = <0 0x11f10000 0 0x1000>;
576 mfgcfg: syscon@13000000 {
577 compatible = "mediatek,mt8183-mfgcfg", "syscon";
578 reg = <0 0x13000000 0 0x1000>;
582 mmsys: syscon@14000000 {
583 compatible = "mediatek,mt8183-mmsys", "syscon";
584 reg = <0 0x14000000 0 0x1000>;
588 imgsys: syscon@15020000 {
589 compatible = "mediatek,mt8183-imgsys", "syscon";
590 reg = <0 0x15020000 0 0x1000>;
594 vdecsys: syscon@16000000 {
595 compatible = "mediatek,mt8183-vdecsys", "syscon";
596 reg = <0 0x16000000 0 0x1000>;
600 vencsys: syscon@17000000 {
601 compatible = "mediatek,mt8183-vencsys", "syscon";
602 reg = <0 0x17000000 0 0x1000>;
606 ipu_conn: syscon@19000000 {
607 compatible = "mediatek,mt8183-ipu_conn", "syscon";
608 reg = <0 0x19000000 0 0x1000>;
612 ipu_adl: syscon@19010000 {
613 compatible = "mediatek,mt8183-ipu_adl", "syscon";
614 reg = <0 0x19010000 0 0x1000>;
618 ipu_core0: syscon@19180000 {
619 compatible = "mediatek,mt8183-ipu_core0", "syscon";
620 reg = <0 0x19180000 0 0x1000>;
624 ipu_core1: syscon@19280000 {
625 compatible = "mediatek,mt8183-ipu_core1", "syscon";
626 reg = <0 0x19280000 0 0x1000>;
630 camsys: syscon@1a000000 {
631 compatible = "mediatek,mt8183-camsys", "syscon";
632 reg = <0 0x1a000000 0 0x1000>;