blob: 833955d0ea3c5c74c6ecd3893170c5cc5b8117db [file] [log] [blame]
Ben Hoe526c9b2019-05-27 17:04:42 +08001// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (c) 2018 MediaTek Inc.
4 * Author: Ben Ho <ben.ho@mediatek.com>
5 * Erin Lo <erin.lo@mediatek.com>
6 */
7
8#include <dt-bindings/clock/mt8183-clk.h>
Matthias Brugger18d6e3f2021-01-31 11:17:26 +01009#include <dt-bindings/gce/mt8183-gce.h>
Ben Hoe526c9b2019-05-27 17:04:42 +080010#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/interrupt-controller/irq.h>
Enric Balletbo i Serrac6080912020-11-27 11:49:29 +010012#include <dt-bindings/memory/mt8183-larb-port.h>
Matthias Brugger37fb78b2020-10-30 12:36:19 +010013#include <dt-bindings/power/mt8183-power.h>
yong.lianga845ad12019-12-26 17:39:30 +080014#include <dt-bindings/reset-controller/mt8183-resets.h>
Enric Balletbo i Serra6b3bfa372020-06-25 12:17:56 +020015#include <dt-bindings/phy/phy.h>
Matthias Kaehlckefccf4262021-03-29 19:10:37 +020016#include <dt-bindings/thermal/thermal.h>
Zhiyong Taoda719a32019-05-27 17:04:44 +080017#include "mt8183-pinfunc.h"
Ben Hoe526c9b2019-05-27 17:04:42 +080018
19/ {
20 compatible = "mediatek,mt8183";
21 interrupt-parent = <&sysirq>;
22 #address-cells = <2>;
23 #size-cells = <2>;
24
Qii Wang251137b2019-08-22 20:35:16 +080025 aliases {
26 i2c0 = &i2c0;
27 i2c1 = &i2c1;
28 i2c2 = &i2c2;
29 i2c3 = &i2c3;
30 i2c4 = &i2c4;
31 i2c5 = &i2c5;
32 i2c6 = &i2c6;
33 i2c7 = &i2c7;
34 i2c8 = &i2c8;
35 i2c9 = &i2c9;
36 i2c10 = &i2c10;
37 i2c11 = &i2c11;
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +010038 ovl0 = &ovl0;
39 ovl-2l0 = &ovl_2l0;
40 ovl-2l1 = &ovl_2l1;
41 rdma0 = &rdma0;
42 rdma1 = &rdma1;
Qii Wang251137b2019-08-22 20:35:16 +080043 };
44
Ben Hoe526c9b2019-05-27 17:04:42 +080045 cpus {
46 #address-cells = <1>;
47 #size-cells = <0>;
48
49 cpu-map {
50 cluster0 {
51 core0 {
52 cpu = <&cpu0>;
53 };
54 core1 {
55 cpu = <&cpu1>;
56 };
57 core2 {
58 cpu = <&cpu2>;
59 };
60 core3 {
61 cpu = <&cpu3>;
62 };
63 };
64
65 cluster1 {
66 core0 {
67 cpu = <&cpu4>;
68 };
69 core1 {
70 cpu = <&cpu5>;
71 };
72 core2 {
73 cpu = <&cpu6>;
74 };
75 core3 {
76 cpu = <&cpu7>;
77 };
78 };
79 };
80
81 cpu0: cpu@0 {
82 device_type = "cpu";
83 compatible = "arm,cortex-a53";
84 reg = <0x000>;
85 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +080086 capacity-dmips-mhz = <741>;
Ikjoon Jang6b552972020-02-25 16:07:53 +080087 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
michael.kaocc103172020-01-03 14:44:01 +080088 dynamic-power-coefficient = <84>;
michael.kao5323e0f2020-01-03 14:44:02 +080089 #cooling-cells = <2>;
Ben Hoe526c9b2019-05-27 17:04:42 +080090 };
91
92 cpu1: cpu@1 {
93 device_type = "cpu";
94 compatible = "arm,cortex-a53";
95 reg = <0x001>;
96 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +080097 capacity-dmips-mhz = <741>;
Ikjoon Jang6b552972020-02-25 16:07:53 +080098 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
michael.kaocc103172020-01-03 14:44:01 +080099 dynamic-power-coefficient = <84>;
michael.kao5323e0f2020-01-03 14:44:02 +0800100 #cooling-cells = <2>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800101 };
102
103 cpu2: cpu@2 {
104 device_type = "cpu";
105 compatible = "arm,cortex-a53";
106 reg = <0x002>;
107 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +0800108 capacity-dmips-mhz = <741>;
Ikjoon Jang6b552972020-02-25 16:07:53 +0800109 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
michael.kaocc103172020-01-03 14:44:01 +0800110 dynamic-power-coefficient = <84>;
michael.kao5323e0f2020-01-03 14:44:02 +0800111 #cooling-cells = <2>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800112 };
113
114 cpu3: cpu@3 {
115 device_type = "cpu";
116 compatible = "arm,cortex-a53";
117 reg = <0x003>;
118 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +0800119 capacity-dmips-mhz = <741>;
Ikjoon Jang6b552972020-02-25 16:07:53 +0800120 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
michael.kaocc103172020-01-03 14:44:01 +0800121 dynamic-power-coefficient = <84>;
michael.kao5323e0f2020-01-03 14:44:02 +0800122 #cooling-cells = <2>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800123 };
124
125 cpu4: cpu@100 {
126 device_type = "cpu";
127 compatible = "arm,cortex-a73";
128 reg = <0x100>;
129 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +0800130 capacity-dmips-mhz = <1024>;
Ikjoon Jang6b552972020-02-25 16:07:53 +0800131 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
michael.kaocc103172020-01-03 14:44:01 +0800132 dynamic-power-coefficient = <211>;
michael.kao5323e0f2020-01-03 14:44:02 +0800133 #cooling-cells = <2>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800134 };
135
136 cpu5: cpu@101 {
137 device_type = "cpu";
138 compatible = "arm,cortex-a73";
139 reg = <0x101>;
140 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +0800141 capacity-dmips-mhz = <1024>;
Ikjoon Jang6b552972020-02-25 16:07:53 +0800142 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
michael.kaocc103172020-01-03 14:44:01 +0800143 dynamic-power-coefficient = <211>;
michael.kao5323e0f2020-01-03 14:44:02 +0800144 #cooling-cells = <2>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800145 };
146
147 cpu6: cpu@102 {
148 device_type = "cpu";
149 compatible = "arm,cortex-a73";
150 reg = <0x102>;
151 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +0800152 capacity-dmips-mhz = <1024>;
Ikjoon Jang6b552972020-02-25 16:07:53 +0800153 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
michael.kaocc103172020-01-03 14:44:01 +0800154 dynamic-power-coefficient = <211>;
michael.kao5323e0f2020-01-03 14:44:02 +0800155 #cooling-cells = <2>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800156 };
157
158 cpu7: cpu@103 {
159 device_type = "cpu";
160 compatible = "arm,cortex-a73";
161 reg = <0x103>;
162 enable-method = "psci";
Hsin-Yi, Wangcc216df2019-05-27 17:04:43 +0800163 capacity-dmips-mhz = <1024>;
Ikjoon Jang6b552972020-02-25 16:07:53 +0800164 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
michael.kaocc103172020-01-03 14:44:01 +0800165 dynamic-power-coefficient = <211>;
michael.kao5323e0f2020-01-03 14:44:02 +0800166 #cooling-cells = <2>;
James Liao6be021b2020-01-15 13:42:35 +0800167 };
168
169 idle-states {
170 entry-method = "psci";
171
172 CPU_SLEEP: cpu-sleep {
173 compatible = "arm,idle-state";
174 local-timer-stop;
175 arm,psci-suspend-param = <0x00010001>;
176 entry-latency-us = <200>;
177 exit-latency-us = <200>;
178 min-residency-us = <800>;
179 };
180
Enric Balletbo i Serra2a7abd32020-06-25 12:17:54 +0200181 CLUSTER_SLEEP0: cluster-sleep-0 {
Ikjoon Jang6b552972020-02-25 16:07:53 +0800182 compatible = "arm,idle-state";
183 local-timer-stop;
184 arm,psci-suspend-param = <0x01010001>;
185 entry-latency-us = <250>;
186 exit-latency-us = <400>;
187 min-residency-us = <1000>;
188 };
Enric Balletbo i Serra2a7abd32020-06-25 12:17:54 +0200189 CLUSTER_SLEEP1: cluster-sleep-1 {
James Liao6be021b2020-01-15 13:42:35 +0800190 compatible = "arm,idle-state";
191 local-timer-stop;
192 arm,psci-suspend-param = <0x01010001>;
193 entry-latency-us = <250>;
194 exit-latency-us = <400>;
195 min-residency-us = <1300>;
196 };
Ben Hoe526c9b2019-05-27 17:04:42 +0800197 };
198 };
199
200 pmu-a53 {
201 compatible = "arm,cortex-a53-pmu";
202 interrupt-parent = <&gic>;
203 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
204 };
205
206 pmu-a73 {
207 compatible = "arm,cortex-a73-pmu";
208 interrupt-parent = <&gic>;
209 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
210 };
211
212 psci {
213 compatible = "arm,psci-1.0";
214 method = "smc";
215 };
216
217 clk26m: oscillator {
218 compatible = "fixed-clock";
219 #clock-cells = <0>;
220 clock-frequency = <26000000>;
221 clock-output-names = "clk26m";
222 };
223
224 timer {
225 compatible = "arm,armv8-timer";
226 interrupt-parent = <&gic>;
227 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
228 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
229 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
230 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
231 };
232
233 soc {
234 #address-cells = <2>;
235 #size-cells = <2>;
236 compatible = "simple-bus";
237 ranges;
238
Michael Meide103382019-05-27 17:04:47 +0800239 soc_data: soc_data@8000000 {
240 compatible = "mediatek,mt8183-efuse",
241 "mediatek,efuse";
242 reg = <0 0x08000000 0 0x0010>;
243 #address-cells = <1>;
244 #size-cells = <1>;
245 status = "disabled";
246 };
247
Ben Hoe526c9b2019-05-27 17:04:42 +0800248 gic: interrupt-controller@c000000 {
249 compatible = "arm,gic-v3";
250 #interrupt-cells = <4>;
251 interrupt-parent = <&gic>;
252 interrupt-controller;
253 reg = <0 0x0c000000 0 0x40000>, /* GICD */
254 <0 0x0c100000 0 0x200000>, /* GICR */
255 <0 0x0c400000 0 0x2000>, /* GICC */
256 <0 0x0c410000 0 0x1000>, /* GICH */
257 <0 0x0c420000 0 0x2000>; /* GICV */
258
259 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
260 ppi-partitions {
261 ppi_cluster0: interrupt-partition-0 {
262 affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
263 };
264 ppi_cluster1: interrupt-partition-1 {
265 affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
266 };
267 };
268 };
269
270 mcucfg: syscon@c530000 {
271 compatible = "mediatek,mt8183-mcucfg", "syscon";
272 reg = <0 0x0c530000 0 0x1000>;
273 #clock-cells = <1>;
274 };
275
276 sysirq: interrupt-controller@c530a80 {
277 compatible = "mediatek,mt8183-sysirq",
278 "mediatek,mt6577-sysirq";
279 interrupt-controller;
280 #interrupt-cells = <3>;
281 interrupt-parent = <&gic>;
282 reg = <0 0x0c530a80 0 0x50>;
283 };
284
285 topckgen: syscon@10000000 {
286 compatible = "mediatek,mt8183-topckgen", "syscon";
287 reg = <0 0x10000000 0 0x1000>;
288 #clock-cells = <1>;
289 };
290
291 infracfg: syscon@10001000 {
292 compatible = "mediatek,mt8183-infracfg", "syscon";
293 reg = <0 0x10001000 0 0x1000>;
294 #clock-cells = <1>;
yong.lianga845ad12019-12-26 17:39:30 +0800295 #reset-cells = <1>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800296 };
297
Enric Balletbo i Serra72704ac2020-06-25 12:17:53 +0200298 pericfg: syscon@10003000 {
299 compatible = "mediatek,mt8183-pericfg", "syscon";
300 reg = <0 0x10003000 0 0x1000>;
301 #clock-cells = <1>;
302 };
303
Zhiyong Taoda719a32019-05-27 17:04:44 +0800304 pio: pinctrl@10005000 {
305 compatible = "mediatek,mt8183-pinctrl";
306 reg = <0 0x10005000 0 0x1000>,
307 <0 0x11f20000 0 0x1000>,
308 <0 0x11e80000 0 0x1000>,
309 <0 0x11e70000 0 0x1000>,
310 <0 0x11e90000 0 0x1000>,
311 <0 0x11d30000 0 0x1000>,
312 <0 0x11d20000 0 0x1000>,
313 <0 0x11c50000 0 0x1000>,
314 <0 0x11f30000 0 0x1000>,
315 <0 0x1000b000 0 0x1000>;
316 reg-names = "iocfg0", "iocfg1", "iocfg2",
317 "iocfg3", "iocfg4", "iocfg5",
318 "iocfg6", "iocfg7", "iocfg8",
319 "eint";
320 gpio-controller;
321 #gpio-cells = <2>;
322 gpio-ranges = <&pio 0 0 192>;
323 interrupt-controller;
324 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
325 #interrupt-cells = <2>;
326 };
327
Matthias Brugger37fb78b2020-10-30 12:36:19 +0100328 scpsys: syscon@10006000 {
329 compatible = "syscon", "simple-mfd";
330 reg = <0 0x10006000 0 0x1000>;
331 #power-domain-cells = <1>;
332
333 /* System Power Manager */
334 spm: power-controller {
335 compatible = "mediatek,mt8183-power-controller";
336 #address-cells = <1>;
337 #size-cells = <0>;
338 #power-domain-cells = <1>;
339
340 /* power domain of the SoC */
341 power-domain@MT8183_POWER_DOMAIN_AUDIO {
342 reg = <MT8183_POWER_DOMAIN_AUDIO>;
343 clocks = <&topckgen CLK_TOP_MUX_AUD_INTBUS>,
344 <&infracfg CLK_INFRA_AUDIO>,
345 <&infracfg CLK_INFRA_AUDIO_26M_BCLK>;
346 clock-names = "audio", "audio1", "audio2";
347 #power-domain-cells = <0>;
348 };
349
350 power-domain@MT8183_POWER_DOMAIN_CONN {
351 reg = <MT8183_POWER_DOMAIN_CONN>;
352 mediatek,infracfg = <&infracfg>;
353 #power-domain-cells = <0>;
354 };
355
356 power-domain@MT8183_POWER_DOMAIN_MFG_ASYNC {
357 reg = <MT8183_POWER_DOMAIN_MFG_ASYNC>;
358 clocks = <&topckgen CLK_TOP_MUX_MFG>;
359 clock-names = "mfg";
360 #address-cells = <1>;
361 #size-cells = <0>;
362 #power-domain-cells = <1>;
363
Hsin-Yi Wang9e1b7d02021-01-29 18:12:08 +0800364 mfg: power-domain@MT8183_POWER_DOMAIN_MFG {
Matthias Brugger37fb78b2020-10-30 12:36:19 +0100365 reg = <MT8183_POWER_DOMAIN_MFG>;
366 #address-cells = <1>;
367 #size-cells = <0>;
368 #power-domain-cells = <1>;
369
370 power-domain@MT8183_POWER_DOMAIN_MFG_CORE0 {
371 reg = <MT8183_POWER_DOMAIN_MFG_CORE0>;
372 #power-domain-cells = <0>;
373 };
374
375 power-domain@MT8183_POWER_DOMAIN_MFG_CORE1 {
376 reg = <MT8183_POWER_DOMAIN_MFG_CORE1>;
377 #power-domain-cells = <0>;
378 };
379
380 power-domain@MT8183_POWER_DOMAIN_MFG_2D {
381 reg = <MT8183_POWER_DOMAIN_MFG_2D>;
382 mediatek,infracfg = <&infracfg>;
383 #power-domain-cells = <0>;
384 };
385 };
386 };
387
388 power-domain@MT8183_POWER_DOMAIN_DISP {
389 reg = <MT8183_POWER_DOMAIN_DISP>;
390 clocks = <&topckgen CLK_TOP_MUX_MM>,
391 <&mmsys CLK_MM_SMI_COMMON>,
392 <&mmsys CLK_MM_SMI_LARB0>,
393 <&mmsys CLK_MM_SMI_LARB1>,
394 <&mmsys CLK_MM_GALS_COMM0>,
395 <&mmsys CLK_MM_GALS_COMM1>,
396 <&mmsys CLK_MM_GALS_CCU2MM>,
397 <&mmsys CLK_MM_GALS_IPU12MM>,
398 <&mmsys CLK_MM_GALS_IMG2MM>,
399 <&mmsys CLK_MM_GALS_CAM2MM>,
400 <&mmsys CLK_MM_GALS_IPU2MM>;
401 clock-names = "mm", "mm-0", "mm-1", "mm-2", "mm-3",
402 "mm-4", "mm-5", "mm-6", "mm-7",
403 "mm-8", "mm-9";
404 mediatek,infracfg = <&infracfg>;
405 mediatek,smi = <&smi_common>;
406 #address-cells = <1>;
407 #size-cells = <0>;
408 #power-domain-cells = <1>;
409
410 power-domain@MT8183_POWER_DOMAIN_CAM {
411 reg = <MT8183_POWER_DOMAIN_CAM>;
412 clocks = <&topckgen CLK_TOP_MUX_CAM>,
413 <&camsys CLK_CAM_LARB6>,
414 <&camsys CLK_CAM_LARB3>,
415 <&camsys CLK_CAM_SENINF>,
416 <&camsys CLK_CAM_CAMSV0>,
417 <&camsys CLK_CAM_CAMSV1>,
418 <&camsys CLK_CAM_CAMSV2>,
419 <&camsys CLK_CAM_CCU>;
420 clock-names = "cam", "cam-0", "cam-1",
421 "cam-2", "cam-3", "cam-4",
422 "cam-5", "cam-6";
423 mediatek,infracfg = <&infracfg>;
424 mediatek,smi = <&smi_common>;
425 #power-domain-cells = <0>;
426 };
427
428 power-domain@MT8183_POWER_DOMAIN_ISP {
429 reg = <MT8183_POWER_DOMAIN_ISP>;
430 clocks = <&topckgen CLK_TOP_MUX_IMG>,
431 <&imgsys CLK_IMG_LARB5>,
432 <&imgsys CLK_IMG_LARB2>;
433 clock-names = "isp", "isp-0", "isp-1";
434 mediatek,infracfg = <&infracfg>;
435 mediatek,smi = <&smi_common>;
436 #power-domain-cells = <0>;
437 };
438
439 power-domain@MT8183_POWER_DOMAIN_VDEC {
440 reg = <MT8183_POWER_DOMAIN_VDEC>;
441 mediatek,smi = <&smi_common>;
442 #power-domain-cells = <0>;
443 };
444
445 power-domain@MT8183_POWER_DOMAIN_VENC {
446 reg = <MT8183_POWER_DOMAIN_VENC>;
447 mediatek,smi = <&smi_common>;
448 #power-domain-cells = <0>;
449 };
450
451 power-domain@MT8183_POWER_DOMAIN_VPU_TOP {
452 reg = <MT8183_POWER_DOMAIN_VPU_TOP>;
453 clocks = <&topckgen CLK_TOP_MUX_IPU_IF>,
454 <&topckgen CLK_TOP_MUX_DSP>,
455 <&ipu_conn CLK_IPU_CONN_IPU>,
456 <&ipu_conn CLK_IPU_CONN_AHB>,
457 <&ipu_conn CLK_IPU_CONN_AXI>,
458 <&ipu_conn CLK_IPU_CONN_ISP>,
459 <&ipu_conn CLK_IPU_CONN_CAM_ADL>,
460 <&ipu_conn CLK_IPU_CONN_IMG_ADL>;
461 clock-names = "vpu", "vpu1", "vpu-0", "vpu-1",
462 "vpu-2", "vpu-3", "vpu-4", "vpu-5";
463 mediatek,infracfg = <&infracfg>;
464 mediatek,smi = <&smi_common>;
465 #address-cells = <1>;
466 #size-cells = <0>;
467 #power-domain-cells = <1>;
468
469 power-domain@MT8183_POWER_DOMAIN_VPU_CORE0 {
470 reg = <MT8183_POWER_DOMAIN_VPU_CORE0>;
471 clocks = <&topckgen CLK_TOP_MUX_DSP1>;
472 clock-names = "vpu2";
473 mediatek,infracfg = <&infracfg>;
474 #power-domain-cells = <0>;
475 };
476
477 power-domain@MT8183_POWER_DOMAIN_VPU_CORE1 {
478 reg = <MT8183_POWER_DOMAIN_VPU_CORE1>;
479 clocks = <&topckgen CLK_TOP_MUX_DSP2>;
480 clock-names = "vpu3";
481 mediatek,infracfg = <&infracfg>;
482 #power-domain-cells = <0>;
483 };
484 };
485 };
486 };
487 };
488
yong.lianga39f8422020-02-17 16:19:22 +0800489 watchdog: watchdog@10007000 {
Crystal Guof866c472020-08-03 15:14:58 +0800490 compatible = "mediatek,mt8183-wdt";
yong.lianga39f8422020-02-17 16:19:22 +0800491 reg = <0 0x10007000 0 0x100>;
492 #reset-cells = <1>;
493 };
494
Ben Hoe526c9b2019-05-27 17:04:42 +0800495 apmixedsys: syscon@1000c000 {
496 compatible = "mediatek,mt8183-apmixedsys", "syscon";
497 reg = <0 0x1000c000 0 0x1000>;
498 #clock-cells = <1>;
499 };
500
501 pwrap: pwrap@1000d000 {
502 compatible = "mediatek,mt8183-pwrap";
503 reg = <0 0x1000d000 0 0x1000>;
504 reg-names = "pwrap";
Hsin-Hsiung Wangcac33c12019-08-22 16:55:40 +0800505 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
Ben Hoe526c9b2019-05-27 17:04:42 +0800506 clocks = <&topckgen CLK_TOP_MUX_PMICSPI>,
507 <&infracfg CLK_INFRA_PMIC_AP>;
508 clock-names = "spi", "wrap";
509 };
510
Eddie Huang1652dbf2019-11-12 19:03:27 +0800511 scp: scp@10500000 {
512 compatible = "mediatek,mt8183-scp";
513 reg = <0 0x10500000 0 0x80000>,
514 <0 0x105c0000 0 0x19080>;
515 reg-names = "sram", "cfg";
516 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
517 clocks = <&infracfg CLK_INFRA_SCPSYS>;
518 clock-names = "main";
519 memory-region = <&scp_mem_reserved>;
520 status = "disabled";
521 };
522
Dehui Sun5bc8e282019-10-28 14:09:44 +0800523 systimer: timer@10017000 {
524 compatible = "mediatek,mt8183-timer",
525 "mediatek,mt6765-timer";
526 reg = <0 0x10017000 0 0x1000>;
527 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
528 clocks = <&topckgen CLK_TOP_CLK13M>;
529 clock-names = "clk13m";
530 };
531
Enric Balletbo i Serrac6080912020-11-27 11:49:29 +0100532 iommu: iommu@10205000 {
533 compatible = "mediatek,mt8183-m4u";
534 reg = <0 0x10205000 0 0x1000>;
535 interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>;
536 mediatek,larbs = <&larb0 &larb1 &larb2 &larb3
537 &larb4 &larb5 &larb6>;
538 #iommu-cells = <1>;
539 };
540
Bibby Hsiehd3c306e2019-11-21 09:54:10 +0800541 gce: mailbox@10238000 {
542 compatible = "mediatek,mt8183-gce";
543 reg = <0 0x10238000 0 0x4000>;
544 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_LOW>;
Fabien Parente55c56d2020-10-18 21:42:25 +0200545 #mbox-cells = <2>;
Bibby Hsiehd3c306e2019-11-21 09:54:10 +0800546 clocks = <&infracfg CLK_INFRA_GCE>;
547 clock-names = "gce";
548 };
549
Zhiyong Taoeb59b352019-05-27 17:04:45 +0800550 auxadc: auxadc@11001000 {
551 compatible = "mediatek,mt8183-auxadc",
552 "mediatek,mt8173-auxadc";
553 reg = <0 0x11001000 0 0x1000>;
554 clocks = <&infracfg CLK_INFRA_AUXADC>;
555 clock-names = "main";
556 #io-channel-cells = <1>;
557 status = "disabled";
558 };
559
Ben Hoe526c9b2019-05-27 17:04:42 +0800560 uart0: serial@11002000 {
561 compatible = "mediatek,mt8183-uart",
562 "mediatek,mt6577-uart";
563 reg = <0 0x11002000 0 0x1000>;
564 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
565 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
566 clock-names = "baud", "bus";
567 status = "disabled";
568 };
569
570 uart1: serial@11003000 {
571 compatible = "mediatek,mt8183-uart",
572 "mediatek,mt6577-uart";
573 reg = <0 0x11003000 0 0x1000>;
574 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
575 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
576 clock-names = "baud", "bus";
577 status = "disabled";
578 };
579
580 uart2: serial@11004000 {
581 compatible = "mediatek,mt8183-uart",
582 "mediatek,mt6577-uart";
583 reg = <0 0x11004000 0 0x1000>;
584 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
585 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART2>;
586 clock-names = "baud", "bus";
587 status = "disabled";
588 };
589
Qii Wang251137b2019-08-22 20:35:16 +0800590 i2c6: i2c@11005000 {
591 compatible = "mediatek,mt8183-i2c";
592 reg = <0 0x11005000 0 0x1000>,
593 <0 0x11000600 0 0x80>;
594 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
595 clocks = <&infracfg CLK_INFRA_I2C6>,
596 <&infracfg CLK_INFRA_AP_DMA>;
597 clock-names = "main", "dma";
598 clock-div = <1>;
599 #address-cells = <1>;
600 #size-cells = <0>;
601 status = "disabled";
602 };
603
604 i2c0: i2c@11007000 {
605 compatible = "mediatek,mt8183-i2c";
606 reg = <0 0x11007000 0 0x1000>,
607 <0 0x11000080 0 0x80>;
608 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
609 clocks = <&infracfg CLK_INFRA_I2C0>,
610 <&infracfg CLK_INFRA_AP_DMA>;
611 clock-names = "main", "dma";
612 clock-div = <1>;
613 #address-cells = <1>;
614 #size-cells = <0>;
615 status = "disabled";
616 };
617
618 i2c4: i2c@11008000 {
619 compatible = "mediatek,mt8183-i2c";
620 reg = <0 0x11008000 0 0x1000>,
621 <0 0x11000100 0 0x80>;
622 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
623 clocks = <&infracfg CLK_INFRA_I2C1>,
624 <&infracfg CLK_INFRA_AP_DMA>,
625 <&infracfg CLK_INFRA_I2C1_ARBITER>;
626 clock-names = "main", "dma","arb";
627 clock-div = <1>;
628 #address-cells = <1>;
629 #size-cells = <0>;
630 status = "disabled";
631 };
632
633 i2c2: i2c@11009000 {
634 compatible = "mediatek,mt8183-i2c";
635 reg = <0 0x11009000 0 0x1000>,
636 <0 0x11000280 0 0x80>;
637 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
638 clocks = <&infracfg CLK_INFRA_I2C2>,
639 <&infracfg CLK_INFRA_AP_DMA>,
640 <&infracfg CLK_INFRA_I2C2_ARBITER>;
641 clock-names = "main", "dma", "arb";
642 clock-div = <1>;
643 #address-cells = <1>;
644 #size-cells = <0>;
645 status = "disabled";
646 };
647
Erin Lo8e2dd0f2019-05-27 17:04:46 +0800648 spi0: spi@1100a000 {
649 compatible = "mediatek,mt8183-spi";
650 #address-cells = <1>;
651 #size-cells = <0>;
652 reg = <0 0x1100a000 0 0x1000>;
653 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_LOW>;
654 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
655 <&topckgen CLK_TOP_MUX_SPI>,
656 <&infracfg CLK_INFRA_SPI0>;
657 clock-names = "parent-clk", "sel-clk", "spi-clk";
658 status = "disabled";
659 };
660
michael.kaob325ce32021-03-16 15:01:42 +0800661 thermal: thermal@1100b000 {
662 #thermal-sensor-cells = <1>;
663 compatible = "mediatek,mt8183-thermal";
664 reg = <0 0x1100b000 0 0x1000>;
665 clocks = <&infracfg CLK_INFRA_THERM>,
666 <&infracfg CLK_INFRA_AUXADC>;
667 clock-names = "therm", "auxadc";
668 resets = <&infracfg MT8183_INFRACFG_AO_THERM_SW_RST>;
669 interrupts = <0 76 IRQ_TYPE_LEVEL_LOW>;
670 mediatek,auxadc = <&auxadc>;
671 mediatek,apmixedsys = <&apmixedsys>;
672 nvmem-cells = <&thermal_calibration>;
673 nvmem-cell-names = "calibration-data";
674 };
675
Michael Kao507b1b22021-06-04 17:37:55 +0800676 thermal_zones: thermal-zones {
michael.kaob325ce32021-03-16 15:01:42 +0800677 cpu_thermal: cpu_thermal {
678 polling-delay-passive = <100>;
679 polling-delay = <500>;
680 thermal-sensors = <&thermal 0>;
681 sustainable-power = <5000>;
Matthias Kaehlckefccf4262021-03-29 19:10:37 +0200682
683 trips {
Matthias Bruggerf5384372021-04-16 16:39:23 +0200684 threshold: trip-point0 {
Matthias Kaehlckefccf4262021-03-29 19:10:37 +0200685 temperature = <68000>;
686 hysteresis = <2000>;
687 type = "passive";
688 };
689
Matthias Bruggerf5384372021-04-16 16:39:23 +0200690 target: trip-point1 {
Matthias Kaehlckefccf4262021-03-29 19:10:37 +0200691 temperature = <80000>;
692 hysteresis = <2000>;
693 type = "passive";
694 };
695
696 cpu_crit: cpu-crit {
697 temperature = <115000>;
698 hysteresis = <2000>;
699 type = "critical";
700 };
701 };
702
703 cooling-maps {
704 map0 {
705 trip = <&target>;
706 cooling-device = <&cpu0
707 THERMAL_NO_LIMIT
708 THERMAL_NO_LIMIT>,
709 <&cpu1
710 THERMAL_NO_LIMIT
711 THERMAL_NO_LIMIT>,
712 <&cpu2
713 THERMAL_NO_LIMIT
714 THERMAL_NO_LIMIT>,
715 <&cpu3
716 THERMAL_NO_LIMIT
717 THERMAL_NO_LIMIT>;
718 contribution = <3072>;
719 };
720 map1 {
721 trip = <&target>;
722 cooling-device = <&cpu4
723 THERMAL_NO_LIMIT
724 THERMAL_NO_LIMIT>,
725 <&cpu5
726 THERMAL_NO_LIMIT
727 THERMAL_NO_LIMIT>,
728 <&cpu6
729 THERMAL_NO_LIMIT
730 THERMAL_NO_LIMIT>,
731 <&cpu7
732 THERMAL_NO_LIMIT
733 THERMAL_NO_LIMIT>;
734 contribution = <1024>;
735 };
736 };
michael.kaob325ce32021-03-16 15:01:42 +0800737 };
738
739 /* The tzts1 ~ tzts6 don't need to polling */
740 /* The tzts1 ~ tzts6 don't need to thermal throttle */
741
742 tzts1: tzts1 {
743 polling-delay-passive = <0>;
744 polling-delay = <0>;
745 thermal-sensors = <&thermal 1>;
746 sustainable-power = <5000>;
747 trips {};
748 cooling-maps {};
749 };
750
751 tzts2: tzts2 {
752 polling-delay-passive = <0>;
753 polling-delay = <0>;
754 thermal-sensors = <&thermal 2>;
755 sustainable-power = <5000>;
756 trips {};
757 cooling-maps {};
758 };
759
760 tzts3: tzts3 {
761 polling-delay-passive = <0>;
762 polling-delay = <0>;
763 thermal-sensors = <&thermal 3>;
764 sustainable-power = <5000>;
765 trips {};
766 cooling-maps {};
767 };
768
769 tzts4: tzts4 {
770 polling-delay-passive = <0>;
771 polling-delay = <0>;
772 thermal-sensors = <&thermal 4>;
773 sustainable-power = <5000>;
774 trips {};
775 cooling-maps {};
776 };
777
778 tzts5: tzts5 {
779 polling-delay-passive = <0>;
780 polling-delay = <0>;
781 thermal-sensors = <&thermal 5>;
782 sustainable-power = <5000>;
783 trips {};
784 cooling-maps {};
785 };
786
787 tztsABB: tztsABB {
788 polling-delay-passive = <0>;
789 polling-delay = <0>;
790 thermal-sensors = <&thermal 6>;
791 sustainable-power = <5000>;
792 trips {};
793 cooling-maps {};
794 };
795 };
796
Hsin-Yi Wangf15722c02020-11-24 12:12:54 +0800797 pwm0: pwm@1100e000 {
798 compatible = "mediatek,mt8183-disp-pwm";
799 reg = <0 0x1100e000 0 0x1000>;
800 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_LOW>;
Enric Balletbo i Serra2f99fb62021-01-13 22:57:23 +0100801 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
Hsin-Yi Wangf15722c02020-11-24 12:12:54 +0800802 #pwm-cells = <2>;
803 clocks = <&topckgen CLK_TOP_MUX_DISP_PWM>,
804 <&infracfg CLK_INFRA_DISP_PWM>;
805 clock-names = "main", "mm";
806 };
807
Fabien Parentafca1c662020-12-09 13:03:20 +0100808 pwm1: pwm@11006000 {
809 compatible = "mediatek,mt8183-pwm";
810 reg = <0 0x11006000 0 0x1000>;
811 #pwm-cells = <2>;
812 clocks = <&infracfg CLK_INFRA_PWM>,
813 <&infracfg CLK_INFRA_PWM_HCLK>,
814 <&infracfg CLK_INFRA_PWM1>,
815 <&infracfg CLK_INFRA_PWM2>,
816 <&infracfg CLK_INFRA_PWM3>,
817 <&infracfg CLK_INFRA_PWM4>;
818 clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
819 "pwm4";
820 };
821
Qii Wang251137b2019-08-22 20:35:16 +0800822 i2c3: i2c@1100f000 {
823 compatible = "mediatek,mt8183-i2c";
824 reg = <0 0x1100f000 0 0x1000>,
825 <0 0x11000400 0 0x80>;
826 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
827 clocks = <&infracfg CLK_INFRA_I2C3>,
828 <&infracfg CLK_INFRA_AP_DMA>;
829 clock-names = "main", "dma";
830 clock-div = <1>;
831 #address-cells = <1>;
832 #size-cells = <0>;
833 status = "disabled";
834 };
835
Erin Lo8e2dd0f2019-05-27 17:04:46 +0800836 spi1: spi@11010000 {
837 compatible = "mediatek,mt8183-spi";
838 #address-cells = <1>;
839 #size-cells = <0>;
840 reg = <0 0x11010000 0 0x1000>;
841 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_LOW>;
842 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
843 <&topckgen CLK_TOP_MUX_SPI>,
844 <&infracfg CLK_INFRA_SPI1>;
845 clock-names = "parent-clk", "sel-clk", "spi-clk";
846 status = "disabled";
847 };
848
Qii Wang251137b2019-08-22 20:35:16 +0800849 i2c1: i2c@11011000 {
850 compatible = "mediatek,mt8183-i2c";
851 reg = <0 0x11011000 0 0x1000>,
852 <0 0x11000480 0 0x80>;
853 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
854 clocks = <&infracfg CLK_INFRA_I2C4>,
855 <&infracfg CLK_INFRA_AP_DMA>;
856 clock-names = "main", "dma";
857 clock-div = <1>;
858 #address-cells = <1>;
859 #size-cells = <0>;
860 status = "disabled";
861 };
862
Erin Lo8e2dd0f2019-05-27 17:04:46 +0800863 spi2: spi@11012000 {
864 compatible = "mediatek,mt8183-spi";
865 #address-cells = <1>;
866 #size-cells = <0>;
867 reg = <0 0x11012000 0 0x1000>;
868 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_LOW>;
869 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
870 <&topckgen CLK_TOP_MUX_SPI>,
871 <&infracfg CLK_INFRA_SPI2>;
872 clock-names = "parent-clk", "sel-clk", "spi-clk";
873 status = "disabled";
874 };
875
876 spi3: spi@11013000 {
877 compatible = "mediatek,mt8183-spi";
878 #address-cells = <1>;
879 #size-cells = <0>;
880 reg = <0 0x11013000 0 0x1000>;
881 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_LOW>;
882 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
883 <&topckgen CLK_TOP_MUX_SPI>,
884 <&infracfg CLK_INFRA_SPI3>;
885 clock-names = "parent-clk", "sel-clk", "spi-clk";
886 status = "disabled";
887 };
888
Qii Wang251137b2019-08-22 20:35:16 +0800889 i2c9: i2c@11014000 {
890 compatible = "mediatek,mt8183-i2c";
891 reg = <0 0x11014000 0 0x1000>,
892 <0 0x11000180 0 0x80>;
893 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_LOW>;
894 clocks = <&infracfg CLK_INFRA_I2C1_IMM>,
895 <&infracfg CLK_INFRA_AP_DMA>,
896 <&infracfg CLK_INFRA_I2C1_ARBITER>;
897 clock-names = "main", "dma", "arb";
898 clock-div = <1>;
899 #address-cells = <1>;
900 #size-cells = <0>;
901 status = "disabled";
902 };
903
904 i2c10: i2c@11015000 {
905 compatible = "mediatek,mt8183-i2c";
906 reg = <0 0x11015000 0 0x1000>,
907 <0 0x11000300 0 0x80>;
908 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
909 clocks = <&infracfg CLK_INFRA_I2C2_IMM>,
910 <&infracfg CLK_INFRA_AP_DMA>,
911 <&infracfg CLK_INFRA_I2C2_ARBITER>;
912 clock-names = "main", "dma", "arb";
913 clock-div = <1>;
914 #address-cells = <1>;
915 #size-cells = <0>;
916 status = "disabled";
917 };
918
919 i2c5: i2c@11016000 {
920 compatible = "mediatek,mt8183-i2c";
921 reg = <0 0x11016000 0 0x1000>,
922 <0 0x11000500 0 0x80>;
923 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
924 clocks = <&infracfg CLK_INFRA_I2C5>,
925 <&infracfg CLK_INFRA_AP_DMA>,
926 <&infracfg CLK_INFRA_I2C5_ARBITER>;
927 clock-names = "main", "dma", "arb";
928 clock-div = <1>;
929 #address-cells = <1>;
930 #size-cells = <0>;
931 status = "disabled";
932 };
933
934 i2c11: i2c@11017000 {
935 compatible = "mediatek,mt8183-i2c";
936 reg = <0 0x11017000 0 0x1000>,
937 <0 0x11000580 0 0x80>;
938 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_LOW>;
939 clocks = <&infracfg CLK_INFRA_I2C5_IMM>,
940 <&infracfg CLK_INFRA_AP_DMA>,
941 <&infracfg CLK_INFRA_I2C5_ARBITER>;
942 clock-names = "main", "dma", "arb";
943 clock-div = <1>;
944 #address-cells = <1>;
945 #size-cells = <0>;
946 status = "disabled";
947 };
948
Erin Lo8e2dd0f2019-05-27 17:04:46 +0800949 spi4: spi@11018000 {
950 compatible = "mediatek,mt8183-spi";
951 #address-cells = <1>;
952 #size-cells = <0>;
953 reg = <0 0x11018000 0 0x1000>;
954 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_LOW>;
955 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
956 <&topckgen CLK_TOP_MUX_SPI>,
957 <&infracfg CLK_INFRA_SPI4>;
958 clock-names = "parent-clk", "sel-clk", "spi-clk";
959 status = "disabled";
960 };
961
962 spi5: spi@11019000 {
963 compatible = "mediatek,mt8183-spi";
964 #address-cells = <1>;
965 #size-cells = <0>;
966 reg = <0 0x11019000 0 0x1000>;
967 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
968 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
969 <&topckgen CLK_TOP_MUX_SPI>,
970 <&infracfg CLK_INFRA_SPI5>;
971 clock-names = "parent-clk", "sel-clk", "spi-clk";
972 status = "disabled";
973 };
974
Qii Wang251137b2019-08-22 20:35:16 +0800975 i2c7: i2c@1101a000 {
976 compatible = "mediatek,mt8183-i2c";
977 reg = <0 0x1101a000 0 0x1000>,
978 <0 0x11000680 0 0x80>;
979 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>;
980 clocks = <&infracfg CLK_INFRA_I2C7>,
981 <&infracfg CLK_INFRA_AP_DMA>;
982 clock-names = "main", "dma";
983 clock-div = <1>;
984 #address-cells = <1>;
985 #size-cells = <0>;
986 status = "disabled";
987 };
988
989 i2c8: i2c@1101b000 {
990 compatible = "mediatek,mt8183-i2c";
991 reg = <0 0x1101b000 0 0x1000>,
992 <0 0x11000700 0 0x80>;
993 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_LOW>;
994 clocks = <&infracfg CLK_INFRA_I2C8>,
995 <&infracfg CLK_INFRA_AP_DMA>;
996 clock-names = "main", "dma";
997 clock-div = <1>;
998 #address-cells = <1>;
999 #size-cells = <0>;
1000 status = "disabled";
1001 };
1002
Enric Balletbo i Serra6b3bfa372020-06-25 12:17:56 +02001003 ssusb: usb@11201000 {
1004 compatible ="mediatek,mt8183-mtu3", "mediatek,mtu3";
1005 reg = <0 0x11201000 0 0x2e00>,
1006 <0 0x11203e00 0 0x0100>;
1007 reg-names = "mac", "ippc";
1008 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
1009 phys = <&u2port0 PHY_TYPE_USB2>,
1010 <&u3port0 PHY_TYPE_USB3>;
1011 clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1012 <&infracfg CLK_INFRA_USB>;
1013 clock-names = "sys_ck", "ref_ck";
Chunfeng Yund3cbc7f2021-03-23 15:02:55 +08001014 mediatek,syscon-wakeup = <&pericfg 0x420 101>;
Enric Balletbo i Serra6b3bfa372020-06-25 12:17:56 +02001015 #address-cells = <2>;
1016 #size-cells = <2>;
1017 ranges;
1018 status = "disabled";
1019
Chunfeng Yund1c9c702021-03-16 17:22:29 +08001020 usb_host: usb@11200000 {
Enric Balletbo i Serra6b3bfa372020-06-25 12:17:56 +02001021 compatible = "mediatek,mt8183-xhci",
1022 "mediatek,mtk-xhci";
1023 reg = <0 0x11200000 0 0x1000>;
1024 reg-names = "mac";
1025 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
1026 clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1027 <&infracfg CLK_INFRA_USB>;
1028 clock-names = "sys_ck", "ref_ck";
1029 status = "disabled";
1030 };
1031 };
1032
Ben Hoe526c9b2019-05-27 17:04:42 +08001033 audiosys: syscon@11220000 {
1034 compatible = "mediatek,mt8183-audiosys", "syscon";
1035 reg = <0 0x11220000 0 0x1000>;
1036 #clock-cells = <1>;
1037 };
1038
jjian zhou5e6cdf02019-04-10 17:25:41 +08001039 mmc0: mmc@11230000 {
1040 compatible = "mediatek,mt8183-mmc";
1041 reg = <0 0x11230000 0 0x1000>,
1042 <0 0x11f50000 0 0x1000>;
1043 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
1044 clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>,
1045 <&infracfg CLK_INFRA_MSDC0>,
1046 <&infracfg CLK_INFRA_MSDC0_SCK>;
1047 clock-names = "source", "hclk", "source_cg";
1048 status = "disabled";
1049 };
1050
1051 mmc1: mmc@11240000 {
1052 compatible = "mediatek,mt8183-mmc";
1053 reg = <0 0x11240000 0 0x1000>,
1054 <0 0x11e10000 0 0x1000>;
1055 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
1056 clocks = <&topckgen CLK_TOP_MUX_MSDC30_1>,
1057 <&infracfg CLK_INFRA_MSDC1>,
1058 <&infracfg CLK_INFRA_MSDC1_SCK>;
1059 clock-names = "source", "hclk", "source_cg";
1060 status = "disabled";
1061 };
1062
Chunfeng Yund1c9c702021-03-16 17:22:29 +08001063 mipi_tx0: dsi-phy@11e50000 {
Jitao Shi88ec8402020-11-27 11:49:28 +01001064 compatible = "mediatek,mt8183-mipi-tx";
1065 reg = <0 0x11e50000 0 0x1000>;
1066 clocks = <&apmixedsys CLK_APMIXED_MIPID0_26M>;
Jitao Shi88ec8402020-11-27 11:49:28 +01001067 #clock-cells = <0>;
1068 #phy-cells = <0>;
1069 clock-output-names = "mipi_tx0_pll";
1070 nvmem-cells = <&mipi_tx_calibration>;
1071 nvmem-cell-names = "calibration-data";
1072 };
1073
Michael Meide103382019-05-27 17:04:47 +08001074 efuse: efuse@11f10000 {
1075 compatible = "mediatek,mt8183-efuse",
1076 "mediatek,efuse";
1077 reg = <0 0x11f10000 0 0x1000>;
Jitao Shi88ec8402020-11-27 11:49:28 +01001078 #address-cells = <1>;
1079 #size-cells = <1>;
michael.kaob325ce32021-03-16 15:01:42 +08001080 thermal_calibration: calib@180 {
1081 reg = <0x180 0xc>;
1082 };
1083
Jitao Shi88ec8402020-11-27 11:49:28 +01001084 mipi_tx_calibration: calib@190 {
1085 reg = <0x190 0xc>;
1086 };
Michael Meide103382019-05-27 17:04:47 +08001087 };
1088
Chunfeng Yund1c9c702021-03-16 17:22:29 +08001089 u3phy: t-phy@11f40000 {
Enric Balletbo i Serra6b3bfa372020-06-25 12:17:56 +02001090 compatible = "mediatek,mt8183-tphy",
1091 "mediatek,generic-tphy-v2";
1092 #address-cells = <1>;
Enric Balletbo i Serra6b3bfa372020-06-25 12:17:56 +02001093 #size-cells = <1>;
1094 ranges = <0 0 0x11f40000 0x1000>;
1095 status = "okay";
1096
1097 u2port0: usb-phy@0 {
1098 reg = <0x0 0x700>;
1099 clocks = <&clk26m>;
1100 clock-names = "ref";
1101 #phy-cells = <1>;
1102 mediatek,discth = <15>;
1103 status = "okay";
1104 };
1105
Matthias Bruggerf5384372021-04-16 16:39:23 +02001106 u3port0: usb-phy@700 {
Enric Balletbo i Serra6b3bfa372020-06-25 12:17:56 +02001107 reg = <0x0700 0x900>;
1108 clocks = <&clk26m>;
1109 clock-names = "ref";
1110 #phy-cells = <1>;
1111 status = "okay";
1112 };
1113 };
1114
Ben Hoe526c9b2019-05-27 17:04:42 +08001115 mfgcfg: syscon@13000000 {
1116 compatible = "mediatek,mt8183-mfgcfg", "syscon";
1117 reg = <0 0x13000000 0 0x1000>;
1118 #clock-cells = <1>;
1119 };
1120
1121 mmsys: syscon@14000000 {
1122 compatible = "mediatek,mt8183-mmsys", "syscon";
1123 reg = <0 0x14000000 0 0x1000>;
1124 #clock-cells = <1>;
Hsin-Yi Wangb7a8f502021-03-24 15:08:42 +08001125 mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
1126 <&gce 1 CMDQ_THR_PRIO_HIGHEST>;
1127 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
Ben Hoe526c9b2019-05-27 17:04:42 +08001128 };
1129
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001130 ovl0: ovl@14008000 {
1131 compatible = "mediatek,mt8183-disp-ovl";
1132 reg = <0 0x14008000 0 0x1000>;
1133 interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>;
1134 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1135 clocks = <&mmsys CLK_MM_DISP_OVL0>;
1136 iommus = <&iommu M4U_PORT_DISP_OVL0>;
1137 mediatek,larb = <&larb0>;
1138 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x8000 0x1000>;
1139 };
1140
1141 ovl_2l0: ovl@14009000 {
1142 compatible = "mediatek,mt8183-disp-ovl-2l";
1143 reg = <0 0x14009000 0 0x1000>;
1144 interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_LOW>;
1145 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1146 clocks = <&mmsys CLK_MM_DISP_OVL0_2L>;
1147 iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>;
1148 mediatek,larb = <&larb0>;
1149 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>;
1150 };
1151
1152 ovl_2l1: ovl@1400a000 {
1153 compatible = "mediatek,mt8183-disp-ovl-2l";
1154 reg = <0 0x1400a000 0 0x1000>;
1155 interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_LOW>;
1156 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1157 clocks = <&mmsys CLK_MM_DISP_OVL1_2L>;
1158 iommus = <&iommu M4U_PORT_DISP_2L_OVL1_LARB0>;
1159 mediatek,larb = <&larb0>;
1160 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xa000 0x1000>;
1161 };
1162
1163 rdma0: rdma@1400b000 {
1164 compatible = "mediatek,mt8183-disp-rdma";
1165 reg = <0 0x1400b000 0 0x1000>;
1166 interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>;
1167 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1168 clocks = <&mmsys CLK_MM_DISP_RDMA0>;
1169 iommus = <&iommu M4U_PORT_DISP_RDMA0>;
1170 mediatek,larb = <&larb0>;
Yongqiang Niu431368c2021-01-28 19:23:07 +08001171 mediatek,rdma-fifo-size = <5120>;
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001172 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xb000 0x1000>;
1173 };
1174
1175 rdma1: rdma@1400c000 {
1176 compatible = "mediatek,mt8183-disp-rdma";
1177 reg = <0 0x1400c000 0 0x1000>;
1178 interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
1179 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1180 clocks = <&mmsys CLK_MM_DISP_RDMA1>;
1181 iommus = <&iommu M4U_PORT_DISP_RDMA1>;
1182 mediatek,larb = <&larb0>;
Yongqiang Niu431368c2021-01-28 19:23:07 +08001183 mediatek,rdma-fifo-size = <2048>;
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001184 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
1185 };
1186
1187 color0: color@1400e000 {
1188 compatible = "mediatek,mt8183-disp-color",
1189 "mediatek,mt8173-disp-color";
1190 reg = <0 0x1400e000 0 0x1000>;
1191 interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_LOW>;
1192 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1193 clocks = <&mmsys CLK_MM_DISP_COLOR0>;
1194 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>;
1195 };
1196
1197 ccorr0: ccorr@1400f000 {
1198 compatible = "mediatek,mt8183-disp-ccorr";
1199 reg = <0 0x1400f000 0 0x1000>;
1200 interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>;
1201 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1202 clocks = <&mmsys CLK_MM_DISP_CCORR0>;
Hsin-Yi Wangb7a8f502021-03-24 15:08:42 +08001203 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>;
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001204 };
1205
1206 aal0: aal@14010000 {
1207 compatible = "mediatek,mt8183-disp-aal",
1208 "mediatek,mt8173-disp-aal";
1209 reg = <0 0x14010000 0 0x1000>;
1210 interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_LOW>;
1211 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1212 clocks = <&mmsys CLK_MM_DISP_AAL0>;
Hsin-Yi Wangb7a8f502021-03-24 15:08:42 +08001213 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0 0x1000>;
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001214 };
1215
1216 gamma0: gamma@14011000 {
Yongqiang Niu9a2cb5e2021-01-28 19:23:08 +08001217 compatible = "mediatek,mt8183-disp-gamma";
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001218 reg = <0 0x14011000 0 0x1000>;
1219 interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_LOW>;
1220 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1221 clocks = <&mmsys CLK_MM_DISP_GAMMA0>;
Hsin-Yi Wangb7a8f502021-03-24 15:08:42 +08001222 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>;
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001223 };
1224
1225 dither0: dither@14012000 {
1226 compatible = "mediatek,mt8183-disp-dither";
1227 reg = <0 0x14012000 0 0x1000>;
1228 interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_LOW>;
1229 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1230 clocks = <&mmsys CLK_MM_DISP_DITHER0>;
Hsin-Yi Wangb7a8f502021-03-24 15:08:42 +08001231 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>;
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001232 };
1233
Jitao Shi88ec8402020-11-27 11:49:28 +01001234 dsi0: dsi@14014000 {
1235 compatible = "mediatek,mt8183-dsi";
1236 reg = <0 0x14014000 0 0x1000>;
1237 interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_LOW>;
1238 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1239 mediatek,syscon-dsi = <&mmsys 0x140>;
1240 clocks = <&mmsys CLK_MM_DSI0_MM>,
1241 <&mmsys CLK_MM_DSI0_IF>,
1242 <&mipi_tx0>;
1243 clock-names = "engine", "digital", "hs";
1244 phys = <&mipi_tx0>;
1245 phy-names = "dphy";
1246 };
1247
Enric Balletbo i Serra91f9c962020-11-27 11:49:30 +01001248 mutex: mutex@14016000 {
1249 compatible = "mediatek,mt8183-disp-mutex";
1250 reg = <0 0x14016000 0 0x1000>;
1251 interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_LOW>;
1252 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1253 };
1254
Enric Balletbo i Serrac6080912020-11-27 11:49:29 +01001255 larb0: larb@14017000 {
1256 compatible = "mediatek,mt8183-smi-larb";
1257 reg = <0 0x14017000 0 0x1000>;
1258 mediatek,smi = <&smi_common>;
1259 clocks = <&mmsys CLK_MM_SMI_LARB0>,
1260 <&mmsys CLK_MM_SMI_LARB0>;
1261 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1262 clock-names = "apb", "smi";
1263 };
1264
Enric Balletbo i Serraddebdba2020-10-30 12:36:18 +01001265 smi_common: smi@14019000 {
Hsin-Yi Wang946437c2021-06-01 12:00:14 +08001266 compatible = "mediatek,mt8183-smi-common";
Enric Balletbo i Serraddebdba2020-10-30 12:36:18 +01001267 reg = <0 0x14019000 0 0x1000>;
1268 clocks = <&mmsys CLK_MM_SMI_COMMON>,
1269 <&mmsys CLK_MM_SMI_COMMON>,
1270 <&mmsys CLK_MM_GALS_COMM0>,
1271 <&mmsys CLK_MM_GALS_COMM1>;
1272 clock-names = "apb", "smi", "gals0", "gals1";
Hsin-Yi Wang946437c2021-06-01 12:00:14 +08001273 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
Enric Balletbo i Serraddebdba2020-10-30 12:36:18 +01001274 };
1275
Ben Hoe526c9b2019-05-27 17:04:42 +08001276 imgsys: syscon@15020000 {
1277 compatible = "mediatek,mt8183-imgsys", "syscon";
1278 reg = <0 0x15020000 0 0x1000>;
1279 #clock-cells = <1>;
1280 };
1281
Enric Balletbo i Serrac6080912020-11-27 11:49:29 +01001282 larb5: larb@15021000 {
1283 compatible = "mediatek,mt8183-smi-larb";
1284 reg = <0 0x15021000 0 0x1000>;
1285 mediatek,smi = <&smi_common>;
1286 clocks = <&imgsys CLK_IMG_LARB5>, <&imgsys CLK_IMG_LARB5>,
1287 <&mmsys CLK_MM_GALS_IMG2MM>;
1288 clock-names = "apb", "smi", "gals";
1289 power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1290 };
1291
1292 larb2: larb@1502f000 {
1293 compatible = "mediatek,mt8183-smi-larb";
1294 reg = <0 0x1502f000 0 0x1000>;
1295 mediatek,smi = <&smi_common>;
1296 clocks = <&imgsys CLK_IMG_LARB2>, <&imgsys CLK_IMG_LARB2>,
1297 <&mmsys CLK_MM_GALS_IPU2MM>;
1298 clock-names = "apb", "smi", "gals";
1299 power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1300 };
1301
Ben Hoe526c9b2019-05-27 17:04:42 +08001302 vdecsys: syscon@16000000 {
1303 compatible = "mediatek,mt8183-vdecsys", "syscon";
1304 reg = <0 0x16000000 0 0x1000>;
1305 #clock-cells = <1>;
1306 };
1307
Enric Balletbo i Serrac6080912020-11-27 11:49:29 +01001308 larb1: larb@16010000 {
1309 compatible = "mediatek,mt8183-smi-larb";
1310 reg = <0 0x16010000 0 0x1000>;
1311 mediatek,smi = <&smi_common>;
1312 clocks = <&vdecsys CLK_VDEC_VDEC>, <&vdecsys CLK_VDEC_LARB1>;
1313 clock-names = "apb", "smi";
1314 power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
1315 };
1316
Ben Hoe526c9b2019-05-27 17:04:42 +08001317 vencsys: syscon@17000000 {
1318 compatible = "mediatek,mt8183-vencsys", "syscon";
1319 reg = <0 0x17000000 0 0x1000>;
1320 #clock-cells = <1>;
1321 };
1322
Enric Balletbo i Serrac6080912020-11-27 11:49:29 +01001323 larb4: larb@17010000 {
1324 compatible = "mediatek,mt8183-smi-larb";
1325 reg = <0 0x17010000 0 0x1000>;
1326 mediatek,smi = <&smi_common>;
1327 clocks = <&vencsys CLK_VENC_LARB>,
1328 <&vencsys CLK_VENC_LARB>;
1329 clock-names = "apb", "smi";
1330 power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
1331 };
1332
Ben Hoe526c9b2019-05-27 17:04:42 +08001333 ipu_conn: syscon@19000000 {
1334 compatible = "mediatek,mt8183-ipu_conn", "syscon";
1335 reg = <0 0x19000000 0 0x1000>;
1336 #clock-cells = <1>;
1337 };
1338
1339 ipu_adl: syscon@19010000 {
1340 compatible = "mediatek,mt8183-ipu_adl", "syscon";
1341 reg = <0 0x19010000 0 0x1000>;
1342 #clock-cells = <1>;
1343 };
1344
1345 ipu_core0: syscon@19180000 {
1346 compatible = "mediatek,mt8183-ipu_core0", "syscon";
1347 reg = <0 0x19180000 0 0x1000>;
1348 #clock-cells = <1>;
1349 };
1350
1351 ipu_core1: syscon@19280000 {
1352 compatible = "mediatek,mt8183-ipu_core1", "syscon";
1353 reg = <0 0x19280000 0 0x1000>;
1354 #clock-cells = <1>;
1355 };
1356
1357 camsys: syscon@1a000000 {
1358 compatible = "mediatek,mt8183-camsys", "syscon";
1359 reg = <0 0x1a000000 0 0x1000>;
1360 #clock-cells = <1>;
1361 };
Enric Balletbo i Serrac6080912020-11-27 11:49:29 +01001362
1363 larb6: larb@1a001000 {
1364 compatible = "mediatek,mt8183-smi-larb";
1365 reg = <0 0x1a001000 0 0x1000>;
1366 mediatek,smi = <&smi_common>;
1367 clocks = <&camsys CLK_CAM_LARB6>, <&camsys CLK_CAM_LARB6>,
1368 <&mmsys CLK_MM_GALS_CAM2MM>;
1369 clock-names = "apb", "smi", "gals";
1370 power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1371 };
1372
1373 larb3: larb@1a002000 {
1374 compatible = "mediatek,mt8183-smi-larb";
1375 reg = <0 0x1a002000 0 0x1000>;
1376 mediatek,smi = <&smi_common>;
1377 clocks = <&camsys CLK_CAM_LARB3>, <&camsys CLK_CAM_LARB3>,
1378 <&mmsys CLK_MM_GALS_IPU12MM>;
1379 clock-names = "apb", "smi", "gals";
1380 power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1381 };
Ben Hoe526c9b2019-05-27 17:04:42 +08001382 };
1383};