1// 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>
9#include <dt-bindings/gce/mt8183-gce.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/memory/mt8183-larb-port.h>
13#include <dt-bindings/power/mt8183-power.h>
14#include <dt-bindings/reset-controller/mt8183-resets.h>
15#include <dt-bindings/phy/phy.h>
16#include <dt-bindings/thermal/thermal.h>
17#include "mt8183-pinfunc.h"
18
19/ {
20	compatible = "mediatek,mt8183";
21	interrupt-parent = <&sysirq>;
22	#address-cells = <2>;
23	#size-cells = <2>;
24
25	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;
38		ovl0 = &ovl0;
39		ovl-2l0 = &ovl_2l0;
40		ovl-2l1 = &ovl_2l1;
41		rdma0 = &rdma0;
42		rdma1 = &rdma1;
43	};
44
45	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";
86			capacity-dmips-mhz = <741>;
87			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
88			dynamic-power-coefficient = <84>;
89			#cooling-cells = <2>;
90		};
91
92		cpu1: cpu@1 {
93			device_type = "cpu";
94			compatible = "arm,cortex-a53";
95			reg = <0x001>;
96			enable-method = "psci";
97			capacity-dmips-mhz = <741>;
98			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
99			dynamic-power-coefficient = <84>;
100			#cooling-cells = <2>;
101		};
102
103		cpu2: cpu@2 {
104			device_type = "cpu";
105			compatible = "arm,cortex-a53";
106			reg = <0x002>;
107			enable-method = "psci";
108			capacity-dmips-mhz = <741>;
109			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
110			dynamic-power-coefficient = <84>;
111			#cooling-cells = <2>;
112		};
113
114		cpu3: cpu@3 {
115			device_type = "cpu";
116			compatible = "arm,cortex-a53";
117			reg = <0x003>;
118			enable-method = "psci";
119			capacity-dmips-mhz = <741>;
120			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>;
121			dynamic-power-coefficient = <84>;
122			#cooling-cells = <2>;
123		};
124
125		cpu4: cpu@100 {
126			device_type = "cpu";
127			compatible = "arm,cortex-a73";
128			reg = <0x100>;
129			enable-method = "psci";
130			capacity-dmips-mhz = <1024>;
131			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
132			dynamic-power-coefficient = <211>;
133			#cooling-cells = <2>;
134		};
135
136		cpu5: cpu@101 {
137			device_type = "cpu";
138			compatible = "arm,cortex-a73";
139			reg = <0x101>;
140			enable-method = "psci";
141			capacity-dmips-mhz = <1024>;
142			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
143			dynamic-power-coefficient = <211>;
144			#cooling-cells = <2>;
145		};
146
147		cpu6: cpu@102 {
148			device_type = "cpu";
149			compatible = "arm,cortex-a73";
150			reg = <0x102>;
151			enable-method = "psci";
152			capacity-dmips-mhz = <1024>;
153			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
154			dynamic-power-coefficient = <211>;
155			#cooling-cells = <2>;
156		};
157
158		cpu7: cpu@103 {
159			device_type = "cpu";
160			compatible = "arm,cortex-a73";
161			reg = <0x103>;
162			enable-method = "psci";
163			capacity-dmips-mhz = <1024>;
164			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>;
165			dynamic-power-coefficient = <211>;
166			#cooling-cells = <2>;
167		};
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
181			CLUSTER_SLEEP0: cluster-sleep-0 {
182				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			};
189			CLUSTER_SLEEP1: cluster-sleep-1 {
190				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			};
197		};
198	};
199
200	gpu_opp_table: opp_table0 {
201		compatible = "operating-points-v2";
202		opp-shared;
203
204		opp-300000000 {
205			opp-hz = /bits/ 64 <300000000>;
206			opp-microvolt = <625000>, <850000>;
207		};
208
209		opp-320000000 {
210			opp-hz = /bits/ 64 <320000000>;
211			opp-microvolt = <631250>, <850000>;
212		};
213
214		opp-340000000 {
215			opp-hz = /bits/ 64 <340000000>;
216			opp-microvolt = <637500>, <850000>;
217		};
218
219		opp-360000000 {
220			opp-hz = /bits/ 64 <360000000>;
221			opp-microvolt = <643750>, <850000>;
222		};
223
224		opp-380000000 {
225			opp-hz = /bits/ 64 <380000000>;
226			opp-microvolt = <650000>, <850000>;
227		};
228
229		opp-400000000 {
230			opp-hz = /bits/ 64 <400000000>;
231			opp-microvolt = <656250>, <850000>;
232		};
233
234		opp-420000000 {
235			opp-hz = /bits/ 64 <420000000>;
236			opp-microvolt = <662500>, <850000>;
237		};
238
239		opp-460000000 {
240			opp-hz = /bits/ 64 <460000000>;
241			opp-microvolt = <675000>, <850000>;
242		};
243
244		opp-500000000 {
245			opp-hz = /bits/ 64 <500000000>;
246			opp-microvolt = <687500>, <850000>;
247		};
248
249		opp-540000000 {
250			opp-hz = /bits/ 64 <540000000>;
251			opp-microvolt = <700000>, <850000>;
252		};
253
254		opp-580000000 {
255			opp-hz = /bits/ 64 <580000000>;
256			opp-microvolt = <712500>, <850000>;
257		};
258
259		opp-620000000 {
260			opp-hz = /bits/ 64 <620000000>;
261			opp-microvolt = <725000>, <850000>;
262		};
263
264		opp-653000000 {
265			opp-hz = /bits/ 64 <653000000>;
266			opp-microvolt = <743750>, <850000>;
267		};
268
269		opp-698000000 {
270			opp-hz = /bits/ 64 <698000000>;
271			opp-microvolt = <768750>, <868750>;
272		};
273
274		opp-743000000 {
275			opp-hz = /bits/ 64 <743000000>;
276			opp-microvolt = <793750>, <893750>;
277		};
278
279		opp-800000000 {
280			opp-hz = /bits/ 64 <800000000>;
281			opp-microvolt = <825000>, <925000>;
282		};
283	};
284
285	pmu-a53 {
286		compatible = "arm,cortex-a53-pmu";
287		interrupt-parent = <&gic>;
288		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
289	};
290
291	pmu-a73 {
292		compatible = "arm,cortex-a73-pmu";
293		interrupt-parent = <&gic>;
294		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
295	};
296
297	psci {
298		compatible      = "arm,psci-1.0";
299		method          = "smc";
300	};
301
302	clk26m: oscillator {
303		compatible = "fixed-clock";
304		#clock-cells = <0>;
305		clock-frequency = <26000000>;
306		clock-output-names = "clk26m";
307	};
308
309	timer {
310		compatible = "arm,armv8-timer";
311		interrupt-parent = <&gic>;
312		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
313			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
314			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
315			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
316	};
317
318	soc {
319		#address-cells = <2>;
320		#size-cells = <2>;
321		compatible = "simple-bus";
322		ranges;
323
324		soc_data: soc_data@8000000 {
325			compatible = "mediatek,mt8183-efuse",
326				     "mediatek,efuse";
327			reg = <0 0x08000000 0 0x0010>;
328			#address-cells = <1>;
329			#size-cells = <1>;
330			status = "disabled";
331		};
332
333		gic: interrupt-controller@c000000 {
334			compatible = "arm,gic-v3";
335			#interrupt-cells = <4>;
336			interrupt-parent = <&gic>;
337			interrupt-controller;
338			reg = <0 0x0c000000 0 0x40000>,  /* GICD */
339			      <0 0x0c100000 0 0x200000>, /* GICR */
340			      <0 0x0c400000 0 0x2000>,   /* GICC */
341			      <0 0x0c410000 0 0x1000>,   /* GICH */
342			      <0 0x0c420000 0 0x2000>;   /* GICV */
343
344			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
345			ppi-partitions {
346				ppi_cluster0: interrupt-partition-0 {
347					affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
348				};
349				ppi_cluster1: interrupt-partition-1 {
350					affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
351				};
352			};
353		};
354
355		mcucfg: syscon@c530000 {
356			compatible = "mediatek,mt8183-mcucfg", "syscon";
357			reg = <0 0x0c530000 0 0x1000>;
358			#clock-cells = <1>;
359		};
360
361		sysirq: interrupt-controller@c530a80 {
362			compatible = "mediatek,mt8183-sysirq",
363				     "mediatek,mt6577-sysirq";
364			interrupt-controller;
365			#interrupt-cells = <3>;
366			interrupt-parent = <&gic>;
367			reg = <0 0x0c530a80 0 0x50>;
368		};
369
370		topckgen: syscon@10000000 {
371			compatible = "mediatek,mt8183-topckgen", "syscon";
372			reg = <0 0x10000000 0 0x1000>;
373			#clock-cells = <1>;
374		};
375
376		infracfg: syscon@10001000 {
377			compatible = "mediatek,mt8183-infracfg", "syscon";
378			reg = <0 0x10001000 0 0x1000>;
379			#clock-cells = <1>;
380			#reset-cells = <1>;
381		};
382
383		pericfg: syscon@10003000 {
384			compatible = "mediatek,mt8183-pericfg", "syscon";
385			reg = <0 0x10003000 0 0x1000>;
386			#clock-cells = <1>;
387		};
388
389		pio: pinctrl@10005000 {
390			compatible = "mediatek,mt8183-pinctrl";
391			reg = <0 0x10005000 0 0x1000>,
392			      <0 0x11f20000 0 0x1000>,
393			      <0 0x11e80000 0 0x1000>,
394			      <0 0x11e70000 0 0x1000>,
395			      <0 0x11e90000 0 0x1000>,
396			      <0 0x11d30000 0 0x1000>,
397			      <0 0x11d20000 0 0x1000>,
398			      <0 0x11c50000 0 0x1000>,
399			      <0 0x11f30000 0 0x1000>,
400			      <0 0x1000b000 0 0x1000>;
401			reg-names = "iocfg0", "iocfg1", "iocfg2",
402				    "iocfg3", "iocfg4", "iocfg5",
403				    "iocfg6", "iocfg7", "iocfg8",
404				    "eint";
405			gpio-controller;
406			#gpio-cells = <2>;
407			gpio-ranges = <&pio 0 0 192>;
408			interrupt-controller;
409			interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
410			#interrupt-cells = <2>;
411		};
412
413		scpsys: syscon@10006000 {
414			compatible = "syscon", "simple-mfd";
415			reg = <0 0x10006000 0 0x1000>;
416			#power-domain-cells = <1>;
417
418			/* System Power Manager */
419			spm: power-controller {
420				compatible = "mediatek,mt8183-power-controller";
421				#address-cells = <1>;
422				#size-cells = <0>;
423				#power-domain-cells = <1>;
424
425				/* power domain of the SoC */
426				power-domain@MT8183_POWER_DOMAIN_AUDIO {
427					reg = <MT8183_POWER_DOMAIN_AUDIO>;
428					clocks = <&topckgen CLK_TOP_MUX_AUD_INTBUS>,
429						 <&infracfg CLK_INFRA_AUDIO>,
430						 <&infracfg CLK_INFRA_AUDIO_26M_BCLK>;
431					clock-names = "audio", "audio1", "audio2";
432					#power-domain-cells = <0>;
433				};
434
435				power-domain@MT8183_POWER_DOMAIN_CONN {
436					reg = <MT8183_POWER_DOMAIN_CONN>;
437					mediatek,infracfg = <&infracfg>;
438					#power-domain-cells = <0>;
439				};
440
441				power-domain@MT8183_POWER_DOMAIN_MFG_ASYNC {
442					reg = <MT8183_POWER_DOMAIN_MFG_ASYNC>;
443					clocks =  <&topckgen CLK_TOP_MUX_MFG>;
444					clock-names = "mfg";
445					#address-cells = <1>;
446					#size-cells = <0>;
447					#power-domain-cells = <1>;
448
449					mfg: power-domain@MT8183_POWER_DOMAIN_MFG {
450						reg = <MT8183_POWER_DOMAIN_MFG>;
451						#address-cells = <1>;
452						#size-cells = <0>;
453						#power-domain-cells = <1>;
454
455						power-domain@MT8183_POWER_DOMAIN_MFG_CORE0 {
456							reg = <MT8183_POWER_DOMAIN_MFG_CORE0>;
457							#power-domain-cells = <0>;
458						};
459
460						power-domain@MT8183_POWER_DOMAIN_MFG_CORE1 {
461							reg = <MT8183_POWER_DOMAIN_MFG_CORE1>;
462							#power-domain-cells = <0>;
463						};
464
465						power-domain@MT8183_POWER_DOMAIN_MFG_2D {
466							reg = <MT8183_POWER_DOMAIN_MFG_2D>;
467							mediatek,infracfg = <&infracfg>;
468							#power-domain-cells = <0>;
469						};
470					};
471				};
472
473				power-domain@MT8183_POWER_DOMAIN_DISP {
474					reg = <MT8183_POWER_DOMAIN_DISP>;
475					clocks = <&topckgen CLK_TOP_MUX_MM>,
476						 <&mmsys CLK_MM_SMI_COMMON>,
477						 <&mmsys CLK_MM_SMI_LARB0>,
478						 <&mmsys CLK_MM_SMI_LARB1>,
479						 <&mmsys CLK_MM_GALS_COMM0>,
480						 <&mmsys CLK_MM_GALS_COMM1>,
481						 <&mmsys CLK_MM_GALS_CCU2MM>,
482						 <&mmsys CLK_MM_GALS_IPU12MM>,
483						 <&mmsys CLK_MM_GALS_IMG2MM>,
484						 <&mmsys CLK_MM_GALS_CAM2MM>,
485						 <&mmsys CLK_MM_GALS_IPU2MM>;
486					clock-names = "mm", "mm-0", "mm-1", "mm-2", "mm-3",
487						      "mm-4", "mm-5", "mm-6", "mm-7",
488						      "mm-8", "mm-9";
489					mediatek,infracfg = <&infracfg>;
490					mediatek,smi = <&smi_common>;
491					#address-cells = <1>;
492					#size-cells = <0>;
493					#power-domain-cells = <1>;
494
495					power-domain@MT8183_POWER_DOMAIN_CAM {
496						reg = <MT8183_POWER_DOMAIN_CAM>;
497						clocks = <&topckgen CLK_TOP_MUX_CAM>,
498							 <&camsys CLK_CAM_LARB6>,
499							 <&camsys CLK_CAM_LARB3>,
500							 <&camsys CLK_CAM_SENINF>,
501							 <&camsys CLK_CAM_CAMSV0>,
502							 <&camsys CLK_CAM_CAMSV1>,
503							 <&camsys CLK_CAM_CAMSV2>,
504							 <&camsys CLK_CAM_CCU>;
505						clock-names = "cam", "cam-0", "cam-1",
506							      "cam-2", "cam-3", "cam-4",
507							      "cam-5", "cam-6";
508						mediatek,infracfg = <&infracfg>;
509						mediatek,smi = <&smi_common>;
510						#power-domain-cells = <0>;
511					};
512
513					power-domain@MT8183_POWER_DOMAIN_ISP {
514						reg = <MT8183_POWER_DOMAIN_ISP>;
515						clocks = <&topckgen CLK_TOP_MUX_IMG>,
516							 <&imgsys CLK_IMG_LARB5>,
517							 <&imgsys CLK_IMG_LARB2>;
518						clock-names = "isp", "isp-0", "isp-1";
519						mediatek,infracfg = <&infracfg>;
520						mediatek,smi = <&smi_common>;
521						#power-domain-cells = <0>;
522					};
523
524					power-domain@MT8183_POWER_DOMAIN_VDEC {
525						reg = <MT8183_POWER_DOMAIN_VDEC>;
526						mediatek,smi = <&smi_common>;
527						#power-domain-cells = <0>;
528					};
529
530					power-domain@MT8183_POWER_DOMAIN_VENC {
531						reg = <MT8183_POWER_DOMAIN_VENC>;
532						mediatek,smi = <&smi_common>;
533						#power-domain-cells = <0>;
534					};
535
536					power-domain@MT8183_POWER_DOMAIN_VPU_TOP {
537						reg = <MT8183_POWER_DOMAIN_VPU_TOP>;
538						clocks = <&topckgen CLK_TOP_MUX_IPU_IF>,
539							 <&topckgen CLK_TOP_MUX_DSP>,
540							 <&ipu_conn CLK_IPU_CONN_IPU>,
541							 <&ipu_conn CLK_IPU_CONN_AHB>,
542							 <&ipu_conn CLK_IPU_CONN_AXI>,
543							 <&ipu_conn CLK_IPU_CONN_ISP>,
544							 <&ipu_conn CLK_IPU_CONN_CAM_ADL>,
545							 <&ipu_conn CLK_IPU_CONN_IMG_ADL>;
546						clock-names = "vpu", "vpu1", "vpu-0", "vpu-1",
547							      "vpu-2", "vpu-3", "vpu-4", "vpu-5";
548						mediatek,infracfg = <&infracfg>;
549						mediatek,smi = <&smi_common>;
550						#address-cells = <1>;
551						#size-cells = <0>;
552						#power-domain-cells = <1>;
553
554						power-domain@MT8183_POWER_DOMAIN_VPU_CORE0 {
555							reg = <MT8183_POWER_DOMAIN_VPU_CORE0>;
556							clocks = <&topckgen CLK_TOP_MUX_DSP1>;
557							clock-names = "vpu2";
558							mediatek,infracfg = <&infracfg>;
559							#power-domain-cells = <0>;
560						};
561
562						power-domain@MT8183_POWER_DOMAIN_VPU_CORE1 {
563							reg = <MT8183_POWER_DOMAIN_VPU_CORE1>;
564							clocks = <&topckgen CLK_TOP_MUX_DSP2>;
565							clock-names = "vpu3";
566							mediatek,infracfg = <&infracfg>;
567							#power-domain-cells = <0>;
568						};
569					};
570				};
571			};
572		};
573
574		watchdog: watchdog@10007000 {
575			compatible = "mediatek,mt8183-wdt";
576			reg = <0 0x10007000 0 0x100>;
577			#reset-cells = <1>;
578		};
579
580		apmixedsys: syscon@1000c000 {
581			compatible = "mediatek,mt8183-apmixedsys", "syscon";
582			reg = <0 0x1000c000 0 0x1000>;
583			#clock-cells = <1>;
584		};
585
586		pwrap: pwrap@1000d000 {
587			compatible = "mediatek,mt8183-pwrap";
588			reg = <0 0x1000d000 0 0x1000>;
589			reg-names = "pwrap";
590			interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
591			clocks = <&topckgen CLK_TOP_MUX_PMICSPI>,
592				 <&infracfg CLK_INFRA_PMIC_AP>;
593			clock-names = "spi", "wrap";
594		};
595
596		scp: scp@10500000 {
597			compatible = "mediatek,mt8183-scp";
598			reg = <0 0x10500000 0 0x80000>,
599			      <0 0x105c0000 0 0x19080>;
600			reg-names = "sram", "cfg";
601			interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
602			clocks = <&infracfg CLK_INFRA_SCPSYS>;
603			clock-names = "main";
604			memory-region = <&scp_mem_reserved>;
605			status = "disabled";
606		};
607
608		systimer: timer@10017000 {
609			compatible = "mediatek,mt8183-timer",
610				     "mediatek,mt6765-timer";
611			reg = <0 0x10017000 0 0x1000>;
612			interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
613			clocks = <&topckgen CLK_TOP_CLK13M>;
614			clock-names = "clk13m";
615		};
616
617		iommu: iommu@10205000 {
618			compatible = "mediatek,mt8183-m4u";
619			reg = <0 0x10205000 0 0x1000>;
620			interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>;
621			mediatek,larbs = <&larb0 &larb1 &larb2 &larb3
622					  &larb4 &larb5 &larb6>;
623			#iommu-cells = <1>;
624		};
625
626		gce: mailbox@10238000 {
627			compatible = "mediatek,mt8183-gce";
628			reg = <0 0x10238000 0 0x4000>;
629			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_LOW>;
630			#mbox-cells = <2>;
631			clocks = <&infracfg CLK_INFRA_GCE>;
632			clock-names = "gce";
633		};
634
635		auxadc: auxadc@11001000 {
636			compatible = "mediatek,mt8183-auxadc",
637				     "mediatek,mt8173-auxadc";
638			reg = <0 0x11001000 0 0x1000>;
639			clocks = <&infracfg CLK_INFRA_AUXADC>;
640			clock-names = "main";
641			#io-channel-cells = <1>;
642			status = "disabled";
643		};
644
645		uart0: serial@11002000 {
646			compatible = "mediatek,mt8183-uart",
647				     "mediatek,mt6577-uart";
648			reg = <0 0x11002000 0 0x1000>;
649			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
650			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
651			clock-names = "baud", "bus";
652			status = "disabled";
653		};
654
655		uart1: serial@11003000 {
656			compatible = "mediatek,mt8183-uart",
657				     "mediatek,mt6577-uart";
658			reg = <0 0x11003000 0 0x1000>;
659			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
660			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
661			clock-names = "baud", "bus";
662			status = "disabled";
663		};
664
665		uart2: serial@11004000 {
666			compatible = "mediatek,mt8183-uart",
667				     "mediatek,mt6577-uart";
668			reg = <0 0x11004000 0 0x1000>;
669			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
670			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART2>;
671			clock-names = "baud", "bus";
672			status = "disabled";
673		};
674
675		i2c6: i2c@11005000 {
676			compatible = "mediatek,mt8183-i2c";
677			reg = <0 0x11005000 0 0x1000>,
678			      <0 0x11000600 0 0x80>;
679			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
680			clocks = <&infracfg CLK_INFRA_I2C6>,
681				 <&infracfg CLK_INFRA_AP_DMA>;
682			clock-names = "main", "dma";
683			clock-div = <1>;
684			#address-cells = <1>;
685			#size-cells = <0>;
686			status = "disabled";
687		};
688
689		i2c0: i2c@11007000 {
690			compatible = "mediatek,mt8183-i2c";
691			reg = <0 0x11007000 0 0x1000>,
692			      <0 0x11000080 0 0x80>;
693			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
694			clocks = <&infracfg CLK_INFRA_I2C0>,
695				 <&infracfg CLK_INFRA_AP_DMA>;
696			clock-names = "main", "dma";
697			clock-div = <1>;
698			#address-cells = <1>;
699			#size-cells = <0>;
700			status = "disabled";
701		};
702
703		i2c4: i2c@11008000 {
704			compatible = "mediatek,mt8183-i2c";
705			reg = <0 0x11008000 0 0x1000>,
706			      <0 0x11000100 0 0x80>;
707			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
708			clocks = <&infracfg CLK_INFRA_I2C1>,
709				 <&infracfg CLK_INFRA_AP_DMA>,
710				 <&infracfg CLK_INFRA_I2C1_ARBITER>;
711			clock-names = "main", "dma","arb";
712			clock-div = <1>;
713			#address-cells = <1>;
714			#size-cells = <0>;
715			status = "disabled";
716		};
717
718		i2c2: i2c@11009000 {
719			compatible = "mediatek,mt8183-i2c";
720			reg = <0 0x11009000 0 0x1000>,
721			      <0 0x11000280 0 0x80>;
722			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
723			clocks = <&infracfg CLK_INFRA_I2C2>,
724				 <&infracfg CLK_INFRA_AP_DMA>,
725				 <&infracfg CLK_INFRA_I2C2_ARBITER>;
726			clock-names = "main", "dma", "arb";
727			clock-div = <1>;
728			#address-cells = <1>;
729			#size-cells = <0>;
730			status = "disabled";
731		};
732
733		spi0: spi@1100a000 {
734			compatible = "mediatek,mt8183-spi";
735			#address-cells = <1>;
736			#size-cells = <0>;
737			reg = <0 0x1100a000 0 0x1000>;
738			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_LOW>;
739			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
740				 <&topckgen CLK_TOP_MUX_SPI>,
741				 <&infracfg CLK_INFRA_SPI0>;
742			clock-names = "parent-clk", "sel-clk", "spi-clk";
743			status = "disabled";
744		};
745
746		thermal: thermal@1100b000 {
747			#thermal-sensor-cells = <1>;
748			compatible = "mediatek,mt8183-thermal";
749			reg = <0 0x1100b000 0 0x1000>;
750			clocks = <&infracfg CLK_INFRA_THERM>,
751				 <&infracfg CLK_INFRA_AUXADC>;
752			clock-names = "therm", "auxadc";
753			resets = <&infracfg  MT8183_INFRACFG_AO_THERM_SW_RST>;
754			interrupts = <0 76 IRQ_TYPE_LEVEL_LOW>;
755			mediatek,auxadc = <&auxadc>;
756			mediatek,apmixedsys = <&apmixedsys>;
757			nvmem-cells = <&thermal_calibration>;
758			nvmem-cell-names = "calibration-data";
759		};
760
761		thermal_zones: thermal-zones {
762			cpu_thermal: cpu_thermal {
763				polling-delay-passive = <100>;
764				polling-delay = <500>;
765				thermal-sensors = <&thermal 0>;
766				sustainable-power = <5000>;
767
768				trips {
769					threshold: trip-point0 {
770						temperature = <68000>;
771						hysteresis = <2000>;
772						type = "passive";
773					};
774
775					target: trip-point1 {
776						temperature = <80000>;
777						hysteresis = <2000>;
778						type = "passive";
779					};
780
781					cpu_crit: cpu-crit {
782						temperature = <115000>;
783						hysteresis = <2000>;
784						type = "critical";
785					};
786				};
787
788				cooling-maps {
789					map0 {
790						trip = <&target>;
791						cooling-device = <&cpu0
792							THERMAL_NO_LIMIT
793							THERMAL_NO_LIMIT>,
794								 <&cpu1
795							THERMAL_NO_LIMIT
796							THERMAL_NO_LIMIT>,
797								 <&cpu2
798							THERMAL_NO_LIMIT
799							THERMAL_NO_LIMIT>,
800								 <&cpu3
801							THERMAL_NO_LIMIT
802							THERMAL_NO_LIMIT>;
803						contribution = <3072>;
804					};
805					map1 {
806						trip = <&target>;
807						cooling-device = <&cpu4
808							THERMAL_NO_LIMIT
809							THERMAL_NO_LIMIT>,
810								 <&cpu5
811							THERMAL_NO_LIMIT
812							THERMAL_NO_LIMIT>,
813								 <&cpu6
814							THERMAL_NO_LIMIT
815							THERMAL_NO_LIMIT>,
816								 <&cpu7
817							THERMAL_NO_LIMIT
818							THERMAL_NO_LIMIT>;
819						contribution = <1024>;
820					};
821				};
822			};
823
824			/* The tzts1 ~ tzts6 don't need to polling */
825			/* The tzts1 ~ tzts6 don't need to thermal throttle */
826
827			tzts1: tzts1 {
828				polling-delay-passive = <0>;
829				polling-delay = <0>;
830				thermal-sensors = <&thermal 1>;
831				sustainable-power = <5000>;
832				trips {};
833				cooling-maps {};
834			};
835
836			tzts2: tzts2 {
837				polling-delay-passive = <0>;
838				polling-delay = <0>;
839				thermal-sensors = <&thermal 2>;
840				sustainable-power = <5000>;
841				trips {};
842				cooling-maps {};
843			};
844
845			tzts3: tzts3 {
846				polling-delay-passive = <0>;
847				polling-delay = <0>;
848				thermal-sensors = <&thermal 3>;
849				sustainable-power = <5000>;
850				trips {};
851				cooling-maps {};
852			};
853
854			tzts4: tzts4 {
855				polling-delay-passive = <0>;
856				polling-delay = <0>;
857				thermal-sensors = <&thermal 4>;
858				sustainable-power = <5000>;
859				trips {};
860				cooling-maps {};
861			};
862
863			tzts5: tzts5 {
864				polling-delay-passive = <0>;
865				polling-delay = <0>;
866				thermal-sensors = <&thermal 5>;
867				sustainable-power = <5000>;
868				trips {};
869				cooling-maps {};
870			};
871
872			tztsABB: tztsABB {
873				polling-delay-passive = <0>;
874				polling-delay = <0>;
875				thermal-sensors = <&thermal 6>;
876				sustainable-power = <5000>;
877				trips {};
878				cooling-maps {};
879			};
880		};
881
882		pwm0: pwm@1100e000 {
883			compatible = "mediatek,mt8183-disp-pwm";
884			reg = <0 0x1100e000 0 0x1000>;
885			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_LOW>;
886			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
887			#pwm-cells = <2>;
888			clocks = <&topckgen CLK_TOP_MUX_DISP_PWM>,
889					<&infracfg CLK_INFRA_DISP_PWM>;
890			clock-names = "main", "mm";
891		};
892
893		pwm1: pwm@11006000 {
894			compatible = "mediatek,mt8183-pwm";
895			reg = <0 0x11006000 0 0x1000>;
896			#pwm-cells = <2>;
897			clocks = <&infracfg CLK_INFRA_PWM>,
898				 <&infracfg CLK_INFRA_PWM_HCLK>,
899				 <&infracfg CLK_INFRA_PWM1>,
900				 <&infracfg CLK_INFRA_PWM2>,
901				 <&infracfg CLK_INFRA_PWM3>,
902				 <&infracfg CLK_INFRA_PWM4>;
903			clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
904				      "pwm4";
905		};
906
907		i2c3: i2c@1100f000 {
908			compatible = "mediatek,mt8183-i2c";
909			reg = <0 0x1100f000 0 0x1000>,
910			      <0 0x11000400 0 0x80>;
911			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
912			clocks = <&infracfg CLK_INFRA_I2C3>,
913				 <&infracfg CLK_INFRA_AP_DMA>;
914			clock-names = "main", "dma";
915			clock-div = <1>;
916			#address-cells = <1>;
917			#size-cells = <0>;
918			status = "disabled";
919		};
920
921		spi1: spi@11010000 {
922			compatible = "mediatek,mt8183-spi";
923			#address-cells = <1>;
924			#size-cells = <0>;
925			reg = <0 0x11010000 0 0x1000>;
926			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_LOW>;
927			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
928				 <&topckgen CLK_TOP_MUX_SPI>,
929				 <&infracfg CLK_INFRA_SPI1>;
930			clock-names = "parent-clk", "sel-clk", "spi-clk";
931			status = "disabled";
932		};
933
934		i2c1: i2c@11011000 {
935			compatible = "mediatek,mt8183-i2c";
936			reg = <0 0x11011000 0 0x1000>,
937			      <0 0x11000480 0 0x80>;
938			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
939			clocks = <&infracfg CLK_INFRA_I2C4>,
940				 <&infracfg CLK_INFRA_AP_DMA>;
941			clock-names = "main", "dma";
942			clock-div = <1>;
943			#address-cells = <1>;
944			#size-cells = <0>;
945			status = "disabled";
946		};
947
948		spi2: spi@11012000 {
949			compatible = "mediatek,mt8183-spi";
950			#address-cells = <1>;
951			#size-cells = <0>;
952			reg = <0 0x11012000 0 0x1000>;
953			interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_LOW>;
954			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
955				 <&topckgen CLK_TOP_MUX_SPI>,
956				 <&infracfg CLK_INFRA_SPI2>;
957			clock-names = "parent-clk", "sel-clk", "spi-clk";
958			status = "disabled";
959		};
960
961		spi3: spi@11013000 {
962			compatible = "mediatek,mt8183-spi";
963			#address-cells = <1>;
964			#size-cells = <0>;
965			reg = <0 0x11013000 0 0x1000>;
966			interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_LOW>;
967			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
968				 <&topckgen CLK_TOP_MUX_SPI>,
969				 <&infracfg CLK_INFRA_SPI3>;
970			clock-names = "parent-clk", "sel-clk", "spi-clk";
971			status = "disabled";
972		};
973
974		i2c9: i2c@11014000 {
975			compatible = "mediatek,mt8183-i2c";
976			reg = <0 0x11014000 0 0x1000>,
977			      <0 0x11000180 0 0x80>;
978			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_LOW>;
979			clocks = <&infracfg CLK_INFRA_I2C1_IMM>,
980				 <&infracfg CLK_INFRA_AP_DMA>,
981				 <&infracfg CLK_INFRA_I2C1_ARBITER>;
982			clock-names = "main", "dma", "arb";
983			clock-div = <1>;
984			#address-cells = <1>;
985			#size-cells = <0>;
986			status = "disabled";
987		};
988
989		i2c10: i2c@11015000 {
990			compatible = "mediatek,mt8183-i2c";
991			reg = <0 0x11015000 0 0x1000>,
992			      <0 0x11000300 0 0x80>;
993			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
994			clocks = <&infracfg CLK_INFRA_I2C2_IMM>,
995				 <&infracfg CLK_INFRA_AP_DMA>,
996				 <&infracfg CLK_INFRA_I2C2_ARBITER>;
997			clock-names = "main", "dma", "arb";
998			clock-div = <1>;
999			#address-cells = <1>;
1000			#size-cells = <0>;
1001			status = "disabled";
1002		};
1003
1004		i2c5: i2c@11016000 {
1005			compatible = "mediatek,mt8183-i2c";
1006			reg = <0 0x11016000 0 0x1000>,
1007			      <0 0x11000500 0 0x80>;
1008			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
1009			clocks = <&infracfg CLK_INFRA_I2C5>,
1010				 <&infracfg CLK_INFRA_AP_DMA>,
1011				 <&infracfg CLK_INFRA_I2C5_ARBITER>;
1012			clock-names = "main", "dma", "arb";
1013			clock-div = <1>;
1014			#address-cells = <1>;
1015			#size-cells = <0>;
1016			status = "disabled";
1017		};
1018
1019		i2c11: i2c@11017000 {
1020			compatible = "mediatek,mt8183-i2c";
1021			reg = <0 0x11017000 0 0x1000>,
1022			      <0 0x11000580 0 0x80>;
1023			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_LOW>;
1024			clocks = <&infracfg CLK_INFRA_I2C5_IMM>,
1025				 <&infracfg CLK_INFRA_AP_DMA>,
1026				 <&infracfg CLK_INFRA_I2C5_ARBITER>;
1027			clock-names = "main", "dma", "arb";
1028			clock-div = <1>;
1029			#address-cells = <1>;
1030			#size-cells = <0>;
1031			status = "disabled";
1032		};
1033
1034		spi4: spi@11018000 {
1035			compatible = "mediatek,mt8183-spi";
1036			#address-cells = <1>;
1037			#size-cells = <0>;
1038			reg = <0 0x11018000 0 0x1000>;
1039			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_LOW>;
1040			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1041				 <&topckgen CLK_TOP_MUX_SPI>,
1042				 <&infracfg CLK_INFRA_SPI4>;
1043			clock-names = "parent-clk", "sel-clk", "spi-clk";
1044			status = "disabled";
1045		};
1046
1047		spi5: spi@11019000 {
1048			compatible = "mediatek,mt8183-spi";
1049			#address-cells = <1>;
1050			#size-cells = <0>;
1051			reg = <0 0x11019000 0 0x1000>;
1052			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
1053			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1054				 <&topckgen CLK_TOP_MUX_SPI>,
1055				 <&infracfg CLK_INFRA_SPI5>;
1056			clock-names = "parent-clk", "sel-clk", "spi-clk";
1057			status = "disabled";
1058		};
1059
1060		i2c7: i2c@1101a000 {
1061			compatible = "mediatek,mt8183-i2c";
1062			reg = <0 0x1101a000 0 0x1000>,
1063			      <0 0x11000680 0 0x80>;
1064			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>;
1065			clocks = <&infracfg CLK_INFRA_I2C7>,
1066				 <&infracfg CLK_INFRA_AP_DMA>;
1067			clock-names = "main", "dma";
1068			clock-div = <1>;
1069			#address-cells = <1>;
1070			#size-cells = <0>;
1071			status = "disabled";
1072		};
1073
1074		i2c8: i2c@1101b000 {
1075			compatible = "mediatek,mt8183-i2c";
1076			reg = <0 0x1101b000 0 0x1000>,
1077			      <0 0x11000700 0 0x80>;
1078			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_LOW>;
1079			clocks = <&infracfg CLK_INFRA_I2C8>,
1080				 <&infracfg CLK_INFRA_AP_DMA>;
1081			clock-names = "main", "dma";
1082			clock-div = <1>;
1083			#address-cells = <1>;
1084			#size-cells = <0>;
1085			status = "disabled";
1086		};
1087
1088		ssusb: usb@11201000 {
1089			compatible ="mediatek,mt8183-mtu3", "mediatek,mtu3";
1090			reg = <0 0x11201000 0 0x2e00>,
1091			      <0 0x11203e00 0 0x0100>;
1092			reg-names = "mac", "ippc";
1093			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
1094			phys = <&u2port0 PHY_TYPE_USB2>,
1095			       <&u3port0 PHY_TYPE_USB3>;
1096			clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1097				 <&infracfg CLK_INFRA_USB>;
1098			clock-names = "sys_ck", "ref_ck";
1099			mediatek,syscon-wakeup = <&pericfg 0x420 101>;
1100			#address-cells = <2>;
1101			#size-cells = <2>;
1102			ranges;
1103			status = "disabled";
1104
1105			usb_host: usb@11200000 {
1106				compatible = "mediatek,mt8183-xhci",
1107					     "mediatek,mtk-xhci";
1108				reg = <0 0x11200000 0 0x1000>;
1109				reg-names = "mac";
1110				interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
1111				clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1112					 <&infracfg CLK_INFRA_USB>;
1113				clock-names = "sys_ck", "ref_ck";
1114				status = "disabled";
1115			};
1116		};
1117
1118		audiosys: syscon@11220000 {
1119			compatible = "mediatek,mt8183-audiosys", "syscon";
1120			reg = <0 0x11220000 0 0x1000>;
1121			#clock-cells = <1>;
1122		};
1123
1124		mmc0: mmc@11230000 {
1125			compatible = "mediatek,mt8183-mmc";
1126			reg = <0 0x11230000 0 0x1000>,
1127			      <0 0x11f50000 0 0x1000>;
1128			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
1129			clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>,
1130				 <&infracfg CLK_INFRA_MSDC0>,
1131				 <&infracfg CLK_INFRA_MSDC0_SCK>;
1132			clock-names = "source", "hclk", "source_cg";
1133			status = "disabled";
1134		};
1135
1136		mmc1: mmc@11240000 {
1137			compatible = "mediatek,mt8183-mmc";
1138			reg = <0 0x11240000 0 0x1000>,
1139			      <0 0x11e10000 0 0x1000>;
1140			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
1141			clocks = <&topckgen CLK_TOP_MUX_MSDC30_1>,
1142				 <&infracfg CLK_INFRA_MSDC1>,
1143				 <&infracfg CLK_INFRA_MSDC1_SCK>;
1144			clock-names = "source", "hclk", "source_cg";
1145			status = "disabled";
1146		};
1147
1148		mipi_tx0: dsi-phy@11e50000 {
1149			compatible = "mediatek,mt8183-mipi-tx";
1150			reg = <0 0x11e50000 0 0x1000>;
1151			clocks = <&apmixedsys CLK_APMIXED_MIPID0_26M>;
1152			#clock-cells = <0>;
1153			#phy-cells = <0>;
1154			clock-output-names = "mipi_tx0_pll";
1155			nvmem-cells = <&mipi_tx_calibration>;
1156			nvmem-cell-names = "calibration-data";
1157		};
1158
1159		efuse: efuse@11f10000 {
1160			compatible = "mediatek,mt8183-efuse",
1161				     "mediatek,efuse";
1162			reg = <0 0x11f10000 0 0x1000>;
1163			#address-cells = <1>;
1164			#size-cells = <1>;
1165			thermal_calibration: calib@180 {
1166				reg = <0x180 0xc>;
1167			};
1168
1169			mipi_tx_calibration: calib@190 {
1170				reg = <0x190 0xc>;
1171			};
1172		};
1173
1174		u3phy: t-phy@11f40000 {
1175			compatible = "mediatek,mt8183-tphy",
1176				     "mediatek,generic-tphy-v2";
1177			#address-cells = <1>;
1178			#size-cells = <1>;
1179			ranges = <0 0 0x11f40000 0x1000>;
1180			status = "okay";
1181
1182			u2port0: usb-phy@0 {
1183				reg = <0x0 0x700>;
1184				clocks = <&clk26m>;
1185				clock-names = "ref";
1186				#phy-cells = <1>;
1187				mediatek,discth = <15>;
1188				status = "okay";
1189			};
1190
1191			u3port0: usb-phy@700 {
1192				reg = <0x0700 0x900>;
1193				clocks = <&clk26m>;
1194				clock-names = "ref";
1195				#phy-cells = <1>;
1196				status = "okay";
1197			};
1198		};
1199
1200		mfgcfg: syscon@13000000 {
1201			compatible = "mediatek,mt8183-mfgcfg", "syscon";
1202			reg = <0 0x13000000 0 0x1000>;
1203			#clock-cells = <1>;
1204		};
1205
1206		gpu: gpu@13040000 {
1207			compatible = "mediatek,mt8183-mali", "arm,mali-bifrost";
1208			reg = <0 0x13040000 0 0x4000>;
1209			interrupts =
1210				<GIC_SPI 280 IRQ_TYPE_LEVEL_LOW>,
1211				<GIC_SPI 279 IRQ_TYPE_LEVEL_LOW>,
1212				<GIC_SPI 278 IRQ_TYPE_LEVEL_LOW>;
1213			interrupt-names = "job", "mmu", "gpu";
1214
1215			clocks = <&topckgen CLK_TOP_MFGPLL_CK>;
1216
1217			power-domains =
1218				<&spm MT8183_POWER_DOMAIN_MFG_CORE0>,
1219				<&spm MT8183_POWER_DOMAIN_MFG_CORE1>,
1220				<&spm MT8183_POWER_DOMAIN_MFG_2D>;
1221			power-domain-names = "core0", "core1", "core2";
1222
1223			operating-points-v2 = <&gpu_opp_table>;
1224		};
1225
1226		mmsys: syscon@14000000 {
1227			compatible = "mediatek,mt8183-mmsys", "syscon";
1228			reg = <0 0x14000000 0 0x1000>;
1229			#clock-cells = <1>;
1230			mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
1231				 <&gce 1 CMDQ_THR_PRIO_HIGHEST>;
1232			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
1233		};
1234
1235		ovl0: ovl@14008000 {
1236			compatible = "mediatek,mt8183-disp-ovl";
1237			reg = <0 0x14008000 0 0x1000>;
1238			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>;
1239			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1240			clocks = <&mmsys CLK_MM_DISP_OVL0>;
1241			iommus = <&iommu M4U_PORT_DISP_OVL0>;
1242			mediatek,larb = <&larb0>;
1243			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x8000 0x1000>;
1244		};
1245
1246		ovl_2l0: ovl@14009000 {
1247			compatible = "mediatek,mt8183-disp-ovl-2l";
1248			reg = <0 0x14009000 0 0x1000>;
1249			interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_LOW>;
1250			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1251			clocks = <&mmsys CLK_MM_DISP_OVL0_2L>;
1252			iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>;
1253			mediatek,larb = <&larb0>;
1254			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>;
1255		};
1256
1257		ovl_2l1: ovl@1400a000 {
1258			compatible = "mediatek,mt8183-disp-ovl-2l";
1259			reg = <0 0x1400a000 0 0x1000>;
1260			interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_LOW>;
1261			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1262			clocks = <&mmsys CLK_MM_DISP_OVL1_2L>;
1263			iommus = <&iommu M4U_PORT_DISP_2L_OVL1_LARB0>;
1264			mediatek,larb = <&larb0>;
1265			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xa000 0x1000>;
1266		};
1267
1268		rdma0: rdma@1400b000 {
1269			compatible = "mediatek,mt8183-disp-rdma";
1270			reg = <0 0x1400b000 0 0x1000>;
1271			interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>;
1272			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1273			clocks = <&mmsys CLK_MM_DISP_RDMA0>;
1274			iommus = <&iommu M4U_PORT_DISP_RDMA0>;
1275			mediatek,larb = <&larb0>;
1276			mediatek,rdma-fifo-size = <5120>;
1277			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xb000 0x1000>;
1278		};
1279
1280		rdma1: rdma@1400c000 {
1281			compatible = "mediatek,mt8183-disp-rdma";
1282			reg = <0 0x1400c000 0 0x1000>;
1283			interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
1284			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1285			clocks = <&mmsys CLK_MM_DISP_RDMA1>;
1286			iommus = <&iommu M4U_PORT_DISP_RDMA1>;
1287			mediatek,larb = <&larb0>;
1288			mediatek,rdma-fifo-size = <2048>;
1289			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
1290		};
1291
1292		color0: color@1400e000 {
1293			compatible = "mediatek,mt8183-disp-color",
1294				     "mediatek,mt8173-disp-color";
1295			reg = <0 0x1400e000 0 0x1000>;
1296			interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_LOW>;
1297			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1298			clocks = <&mmsys CLK_MM_DISP_COLOR0>;
1299			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>;
1300		};
1301
1302		ccorr0: ccorr@1400f000 {
1303			compatible = "mediatek,mt8183-disp-ccorr";
1304			reg = <0 0x1400f000 0 0x1000>;
1305			interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>;
1306			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1307			clocks = <&mmsys CLK_MM_DISP_CCORR0>;
1308			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>;
1309		};
1310
1311		aal0: aal@14010000 {
1312			compatible = "mediatek,mt8183-disp-aal",
1313				     "mediatek,mt8173-disp-aal";
1314			reg = <0 0x14010000 0 0x1000>;
1315			interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_LOW>;
1316			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1317			clocks = <&mmsys CLK_MM_DISP_AAL0>;
1318			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0 0x1000>;
1319		};
1320
1321		gamma0: gamma@14011000 {
1322			compatible = "mediatek,mt8183-disp-gamma";
1323			reg = <0 0x14011000 0 0x1000>;
1324			interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_LOW>;
1325			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1326			clocks = <&mmsys CLK_MM_DISP_GAMMA0>;
1327			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>;
1328		};
1329
1330		dither0: dither@14012000 {
1331			compatible = "mediatek,mt8183-disp-dither";
1332			reg = <0 0x14012000 0 0x1000>;
1333			interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_LOW>;
1334			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1335			clocks = <&mmsys CLK_MM_DISP_DITHER0>;
1336			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>;
1337		};
1338
1339		dsi0: dsi@14014000 {
1340			compatible = "mediatek,mt8183-dsi";
1341			reg = <0 0x14014000 0 0x1000>;
1342			interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_LOW>;
1343			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1344			mediatek,syscon-dsi = <&mmsys 0x140>;
1345			clocks = <&mmsys CLK_MM_DSI0_MM>,
1346				 <&mmsys CLK_MM_DSI0_IF>,
1347				 <&mipi_tx0>;
1348			clock-names = "engine", "digital", "hs";
1349			phys = <&mipi_tx0>;
1350			phy-names = "dphy";
1351		};
1352
1353		mutex: mutex@14016000 {
1354			compatible = "mediatek,mt8183-disp-mutex";
1355			reg = <0 0x14016000 0 0x1000>;
1356			interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_LOW>;
1357			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1358		};
1359
1360		larb0: larb@14017000 {
1361			compatible = "mediatek,mt8183-smi-larb";
1362			reg = <0 0x14017000 0 0x1000>;
1363			mediatek,smi = <&smi_common>;
1364			clocks = <&mmsys CLK_MM_SMI_LARB0>,
1365				 <&mmsys CLK_MM_SMI_LARB0>;
1366			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1367			clock-names = "apb", "smi";
1368		};
1369
1370		smi_common: smi@14019000 {
1371			compatible = "mediatek,mt8183-smi-common";
1372			reg = <0 0x14019000 0 0x1000>;
1373			clocks = <&mmsys CLK_MM_SMI_COMMON>,
1374				 <&mmsys CLK_MM_SMI_COMMON>,
1375				 <&mmsys CLK_MM_GALS_COMM0>,
1376				 <&mmsys CLK_MM_GALS_COMM1>;
1377			clock-names = "apb", "smi", "gals0", "gals1";
1378			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1379		};
1380
1381		imgsys: syscon@15020000 {
1382			compatible = "mediatek,mt8183-imgsys", "syscon";
1383			reg = <0 0x15020000 0 0x1000>;
1384			#clock-cells = <1>;
1385		};
1386
1387		larb5: larb@15021000 {
1388			compatible = "mediatek,mt8183-smi-larb";
1389			reg = <0 0x15021000 0 0x1000>;
1390			mediatek,smi = <&smi_common>;
1391			clocks = <&imgsys CLK_IMG_LARB5>, <&imgsys CLK_IMG_LARB5>,
1392				 <&mmsys CLK_MM_GALS_IMG2MM>;
1393			clock-names = "apb", "smi", "gals";
1394			power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1395		};
1396
1397		larb2: larb@1502f000 {
1398			compatible = "mediatek,mt8183-smi-larb";
1399			reg = <0 0x1502f000 0 0x1000>;
1400			mediatek,smi = <&smi_common>;
1401			clocks = <&imgsys CLK_IMG_LARB2>, <&imgsys CLK_IMG_LARB2>,
1402				 <&mmsys CLK_MM_GALS_IPU2MM>;
1403			clock-names = "apb", "smi", "gals";
1404			power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1405		};
1406
1407		vdecsys: syscon@16000000 {
1408			compatible = "mediatek,mt8183-vdecsys", "syscon";
1409			reg = <0 0x16000000 0 0x1000>;
1410			#clock-cells = <1>;
1411		};
1412
1413		larb1: larb@16010000 {
1414			compatible = "mediatek,mt8183-smi-larb";
1415			reg = <0 0x16010000 0 0x1000>;
1416			mediatek,smi = <&smi_common>;
1417			clocks = <&vdecsys CLK_VDEC_VDEC>, <&vdecsys CLK_VDEC_LARB1>;
1418			clock-names = "apb", "smi";
1419			power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
1420		};
1421
1422		vencsys: syscon@17000000 {
1423			compatible = "mediatek,mt8183-vencsys", "syscon";
1424			reg = <0 0x17000000 0 0x1000>;
1425			#clock-cells = <1>;
1426		};
1427
1428		larb4: larb@17010000 {
1429			compatible = "mediatek,mt8183-smi-larb";
1430			reg = <0 0x17010000 0 0x1000>;
1431			mediatek,smi = <&smi_common>;
1432			clocks = <&vencsys CLK_VENC_LARB>,
1433				 <&vencsys CLK_VENC_LARB>;
1434			clock-names = "apb", "smi";
1435			power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
1436		};
1437
1438		ipu_conn: syscon@19000000 {
1439			compatible = "mediatek,mt8183-ipu_conn", "syscon";
1440			reg = <0 0x19000000 0 0x1000>;
1441			#clock-cells = <1>;
1442		};
1443
1444		ipu_adl: syscon@19010000 {
1445			compatible = "mediatek,mt8183-ipu_adl", "syscon";
1446			reg = <0 0x19010000 0 0x1000>;
1447			#clock-cells = <1>;
1448		};
1449
1450		ipu_core0: syscon@19180000 {
1451			compatible = "mediatek,mt8183-ipu_core0", "syscon";
1452			reg = <0 0x19180000 0 0x1000>;
1453			#clock-cells = <1>;
1454		};
1455
1456		ipu_core1: syscon@19280000 {
1457			compatible = "mediatek,mt8183-ipu_core1", "syscon";
1458			reg = <0 0x19280000 0 0x1000>;
1459			#clock-cells = <1>;
1460		};
1461
1462		camsys: syscon@1a000000 {
1463			compatible = "mediatek,mt8183-camsys", "syscon";
1464			reg = <0 0x1a000000 0 0x1000>;
1465			#clock-cells = <1>;
1466		};
1467
1468		larb6: larb@1a001000 {
1469			compatible = "mediatek,mt8183-smi-larb";
1470			reg = <0 0x1a001000 0 0x1000>;
1471			mediatek,smi = <&smi_common>;
1472			clocks = <&camsys CLK_CAM_LARB6>, <&camsys CLK_CAM_LARB6>,
1473				 <&mmsys CLK_MM_GALS_CAM2MM>;
1474			clock-names = "apb", "smi", "gals";
1475			power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1476		};
1477
1478		larb3: larb@1a002000 {
1479			compatible = "mediatek,mt8183-smi-larb";
1480			reg = <0 0x1a002000 0 0x1000>;
1481			mediatek,smi = <&smi_common>;
1482			clocks = <&camsys CLK_CAM_LARB3>, <&camsys CLK_CAM_LARB3>,
1483				 <&mmsys CLK_MM_GALS_IPU12MM>;
1484			clock-names = "apb", "smi", "gals";
1485			power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1486		};
1487	};
1488};
1489