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/mt8183-resets.h>
15#include <dt-bindings/phy/phy.h>
16#include <dt-bindings/thermal/thermal.h>
17#include <dt-bindings/pinctrl/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-table-0 {
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		cpu_debug0: cpu-debug@d410000 {
371			compatible = "arm,coresight-cpu-debug", "arm,primecell";
372			reg = <0x0 0xd410000 0x0 0x1000>;
373			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
374			clock-names = "apb_pclk";
375			cpu = <&cpu0>;
376		};
377
378		cpu_debug1: cpu-debug@d510000 {
379			compatible = "arm,coresight-cpu-debug", "arm,primecell";
380			reg = <0x0 0xd510000 0x0 0x1000>;
381			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
382			clock-names = "apb_pclk";
383			cpu = <&cpu1>;
384		};
385
386		cpu_debug2: cpu-debug@d610000 {
387			compatible = "arm,coresight-cpu-debug", "arm,primecell";
388			reg = <0x0 0xd610000 0x0 0x1000>;
389			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
390			clock-names = "apb_pclk";
391			cpu = <&cpu2>;
392		};
393
394		cpu_debug3: cpu-debug@d710000 {
395			compatible = "arm,coresight-cpu-debug", "arm,primecell";
396			reg = <0x0 0xd710000 0x0 0x1000>;
397			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
398			clock-names = "apb_pclk";
399			cpu = <&cpu3>;
400		};
401
402		cpu_debug4: cpu-debug@d810000 {
403			compatible = "arm,coresight-cpu-debug", "arm,primecell";
404			reg = <0x0 0xd810000 0x0 0x1000>;
405			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
406			clock-names = "apb_pclk";
407			cpu = <&cpu4>;
408		};
409
410		cpu_debug5: cpu-debug@d910000 {
411			compatible = "arm,coresight-cpu-debug", "arm,primecell";
412			reg = <0x0 0xd910000 0x0 0x1000>;
413			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
414			clock-names = "apb_pclk";
415			cpu = <&cpu5>;
416		};
417
418		cpu_debug6: cpu-debug@da10000 {
419			compatible = "arm,coresight-cpu-debug", "arm,primecell";
420			reg = <0x0 0xda10000 0x0 0x1000>;
421			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
422			clock-names = "apb_pclk";
423			cpu = <&cpu6>;
424		};
425
426		cpu_debug7: cpu-debug@db10000 {
427			compatible = "arm,coresight-cpu-debug", "arm,primecell";
428			reg = <0x0 0xdb10000 0x0 0x1000>;
429			clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
430			clock-names = "apb_pclk";
431			cpu = <&cpu7>;
432		};
433
434		topckgen: syscon@10000000 {
435			compatible = "mediatek,mt8183-topckgen", "syscon";
436			reg = <0 0x10000000 0 0x1000>;
437			#clock-cells = <1>;
438		};
439
440		infracfg: syscon@10001000 {
441			compatible = "mediatek,mt8183-infracfg", "syscon";
442			reg = <0 0x10001000 0 0x1000>;
443			#clock-cells = <1>;
444			#reset-cells = <1>;
445		};
446
447		pericfg: syscon@10003000 {
448			compatible = "mediatek,mt8183-pericfg", "syscon";
449			reg = <0 0x10003000 0 0x1000>;
450			#clock-cells = <1>;
451		};
452
453		pio: pinctrl@10005000 {
454			compatible = "mediatek,mt8183-pinctrl";
455			reg = <0 0x10005000 0 0x1000>,
456			      <0 0x11f20000 0 0x1000>,
457			      <0 0x11e80000 0 0x1000>,
458			      <0 0x11e70000 0 0x1000>,
459			      <0 0x11e90000 0 0x1000>,
460			      <0 0x11d30000 0 0x1000>,
461			      <0 0x11d20000 0 0x1000>,
462			      <0 0x11c50000 0 0x1000>,
463			      <0 0x11f30000 0 0x1000>,
464			      <0 0x1000b000 0 0x1000>;
465			reg-names = "iocfg0", "iocfg1", "iocfg2",
466				    "iocfg3", "iocfg4", "iocfg5",
467				    "iocfg6", "iocfg7", "iocfg8",
468				    "eint";
469			gpio-controller;
470			#gpio-cells = <2>;
471			gpio-ranges = <&pio 0 0 192>;
472			interrupt-controller;
473			interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
474			#interrupt-cells = <2>;
475		};
476
477		scpsys: syscon@10006000 {
478			compatible = "syscon", "simple-mfd";
479			reg = <0 0x10006000 0 0x1000>;
480			#power-domain-cells = <1>;
481
482			/* System Power Manager */
483			spm: power-controller {
484				compatible = "mediatek,mt8183-power-controller";
485				#address-cells = <1>;
486				#size-cells = <0>;
487				#power-domain-cells = <1>;
488
489				/* power domain of the SoC */
490				power-domain@MT8183_POWER_DOMAIN_AUDIO {
491					reg = <MT8183_POWER_DOMAIN_AUDIO>;
492					clocks = <&topckgen CLK_TOP_MUX_AUD_INTBUS>,
493						 <&infracfg CLK_INFRA_AUDIO>,
494						 <&infracfg CLK_INFRA_AUDIO_26M_BCLK>;
495					clock-names = "audio", "audio1", "audio2";
496					#power-domain-cells = <0>;
497				};
498
499				power-domain@MT8183_POWER_DOMAIN_CONN {
500					reg = <MT8183_POWER_DOMAIN_CONN>;
501					mediatek,infracfg = <&infracfg>;
502					#power-domain-cells = <0>;
503				};
504
505				power-domain@MT8183_POWER_DOMAIN_MFG_ASYNC {
506					reg = <MT8183_POWER_DOMAIN_MFG_ASYNC>;
507					clocks =  <&topckgen CLK_TOP_MUX_MFG>;
508					clock-names = "mfg";
509					#address-cells = <1>;
510					#size-cells = <0>;
511					#power-domain-cells = <1>;
512
513					mfg: power-domain@MT8183_POWER_DOMAIN_MFG {
514						reg = <MT8183_POWER_DOMAIN_MFG>;
515						#address-cells = <1>;
516						#size-cells = <0>;
517						#power-domain-cells = <1>;
518
519						power-domain@MT8183_POWER_DOMAIN_MFG_CORE0 {
520							reg = <MT8183_POWER_DOMAIN_MFG_CORE0>;
521							#power-domain-cells = <0>;
522						};
523
524						power-domain@MT8183_POWER_DOMAIN_MFG_CORE1 {
525							reg = <MT8183_POWER_DOMAIN_MFG_CORE1>;
526							#power-domain-cells = <0>;
527						};
528
529						power-domain@MT8183_POWER_DOMAIN_MFG_2D {
530							reg = <MT8183_POWER_DOMAIN_MFG_2D>;
531							mediatek,infracfg = <&infracfg>;
532							#power-domain-cells = <0>;
533						};
534					};
535				};
536
537				power-domain@MT8183_POWER_DOMAIN_DISP {
538					reg = <MT8183_POWER_DOMAIN_DISP>;
539					clocks = <&topckgen CLK_TOP_MUX_MM>,
540						 <&mmsys CLK_MM_SMI_COMMON>,
541						 <&mmsys CLK_MM_SMI_LARB0>,
542						 <&mmsys CLK_MM_SMI_LARB1>,
543						 <&mmsys CLK_MM_GALS_COMM0>,
544						 <&mmsys CLK_MM_GALS_COMM1>,
545						 <&mmsys CLK_MM_GALS_CCU2MM>,
546						 <&mmsys CLK_MM_GALS_IPU12MM>,
547						 <&mmsys CLK_MM_GALS_IMG2MM>,
548						 <&mmsys CLK_MM_GALS_CAM2MM>,
549						 <&mmsys CLK_MM_GALS_IPU2MM>;
550					clock-names = "mm", "mm-0", "mm-1", "mm-2", "mm-3",
551						      "mm-4", "mm-5", "mm-6", "mm-7",
552						      "mm-8", "mm-9";
553					mediatek,infracfg = <&infracfg>;
554					mediatek,smi = <&smi_common>;
555					#address-cells = <1>;
556					#size-cells = <0>;
557					#power-domain-cells = <1>;
558
559					power-domain@MT8183_POWER_DOMAIN_CAM {
560						reg = <MT8183_POWER_DOMAIN_CAM>;
561						clocks = <&topckgen CLK_TOP_MUX_CAM>,
562							 <&camsys CLK_CAM_LARB6>,
563							 <&camsys CLK_CAM_LARB3>,
564							 <&camsys CLK_CAM_SENINF>,
565							 <&camsys CLK_CAM_CAMSV0>,
566							 <&camsys CLK_CAM_CAMSV1>,
567							 <&camsys CLK_CAM_CAMSV2>,
568							 <&camsys CLK_CAM_CCU>;
569						clock-names = "cam", "cam-0", "cam-1",
570							      "cam-2", "cam-3", "cam-4",
571							      "cam-5", "cam-6";
572						mediatek,infracfg = <&infracfg>;
573						mediatek,smi = <&smi_common>;
574						#power-domain-cells = <0>;
575					};
576
577					power-domain@MT8183_POWER_DOMAIN_ISP {
578						reg = <MT8183_POWER_DOMAIN_ISP>;
579						clocks = <&topckgen CLK_TOP_MUX_IMG>,
580							 <&imgsys CLK_IMG_LARB5>,
581							 <&imgsys CLK_IMG_LARB2>;
582						clock-names = "isp", "isp-0", "isp-1";
583						mediatek,infracfg = <&infracfg>;
584						mediatek,smi = <&smi_common>;
585						#power-domain-cells = <0>;
586					};
587
588					power-domain@MT8183_POWER_DOMAIN_VDEC {
589						reg = <MT8183_POWER_DOMAIN_VDEC>;
590						mediatek,smi = <&smi_common>;
591						#power-domain-cells = <0>;
592					};
593
594					power-domain@MT8183_POWER_DOMAIN_VENC {
595						reg = <MT8183_POWER_DOMAIN_VENC>;
596						mediatek,smi = <&smi_common>;
597						#power-domain-cells = <0>;
598					};
599
600					power-domain@MT8183_POWER_DOMAIN_VPU_TOP {
601						reg = <MT8183_POWER_DOMAIN_VPU_TOP>;
602						clocks = <&topckgen CLK_TOP_MUX_IPU_IF>,
603							 <&topckgen CLK_TOP_MUX_DSP>,
604							 <&ipu_conn CLK_IPU_CONN_IPU>,
605							 <&ipu_conn CLK_IPU_CONN_AHB>,
606							 <&ipu_conn CLK_IPU_CONN_AXI>,
607							 <&ipu_conn CLK_IPU_CONN_ISP>,
608							 <&ipu_conn CLK_IPU_CONN_CAM_ADL>,
609							 <&ipu_conn CLK_IPU_CONN_IMG_ADL>;
610						clock-names = "vpu", "vpu1", "vpu-0", "vpu-1",
611							      "vpu-2", "vpu-3", "vpu-4", "vpu-5";
612						mediatek,infracfg = <&infracfg>;
613						mediatek,smi = <&smi_common>;
614						#address-cells = <1>;
615						#size-cells = <0>;
616						#power-domain-cells = <1>;
617
618						power-domain@MT8183_POWER_DOMAIN_VPU_CORE0 {
619							reg = <MT8183_POWER_DOMAIN_VPU_CORE0>;
620							clocks = <&topckgen CLK_TOP_MUX_DSP1>;
621							clock-names = "vpu2";
622							mediatek,infracfg = <&infracfg>;
623							#power-domain-cells = <0>;
624						};
625
626						power-domain@MT8183_POWER_DOMAIN_VPU_CORE1 {
627							reg = <MT8183_POWER_DOMAIN_VPU_CORE1>;
628							clocks = <&topckgen CLK_TOP_MUX_DSP2>;
629							clock-names = "vpu3";
630							mediatek,infracfg = <&infracfg>;
631							#power-domain-cells = <0>;
632						};
633					};
634				};
635			};
636		};
637
638		watchdog: watchdog@10007000 {
639			compatible = "mediatek,mt8183-wdt";
640			reg = <0 0x10007000 0 0x100>;
641			#reset-cells = <1>;
642		};
643
644		apmixedsys: syscon@1000c000 {
645			compatible = "mediatek,mt8183-apmixedsys", "syscon";
646			reg = <0 0x1000c000 0 0x1000>;
647			#clock-cells = <1>;
648		};
649
650		pwrap: pwrap@1000d000 {
651			compatible = "mediatek,mt8183-pwrap";
652			reg = <0 0x1000d000 0 0x1000>;
653			reg-names = "pwrap";
654			interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
655			clocks = <&topckgen CLK_TOP_MUX_PMICSPI>,
656				 <&infracfg CLK_INFRA_PMIC_AP>;
657			clock-names = "spi", "wrap";
658		};
659
660		scp: scp@10500000 {
661			compatible = "mediatek,mt8183-scp";
662			reg = <0 0x10500000 0 0x80000>,
663			      <0 0x105c0000 0 0x19080>;
664			reg-names = "sram", "cfg";
665			interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
666			clocks = <&infracfg CLK_INFRA_SCPSYS>;
667			clock-names = "main";
668			memory-region = <&scp_mem_reserved>;
669			status = "disabled";
670		};
671
672		systimer: timer@10017000 {
673			compatible = "mediatek,mt8183-timer",
674				     "mediatek,mt6765-timer";
675			reg = <0 0x10017000 0 0x1000>;
676			interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
677			clocks = <&topckgen CLK_TOP_CLK13M>;
678			clock-names = "clk13m";
679		};
680
681		iommu: iommu@10205000 {
682			compatible = "mediatek,mt8183-m4u";
683			reg = <0 0x10205000 0 0x1000>;
684			interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>;
685			mediatek,larbs = <&larb0>, <&larb1>, <&larb2>, <&larb3>,
686					 <&larb4>, <&larb5>, <&larb6>;
687			#iommu-cells = <1>;
688		};
689
690		gce: mailbox@10238000 {
691			compatible = "mediatek,mt8183-gce";
692			reg = <0 0x10238000 0 0x4000>;
693			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_LOW>;
694			#mbox-cells = <2>;
695			clocks = <&infracfg CLK_INFRA_GCE>;
696			clock-names = "gce";
697		};
698
699		auxadc: auxadc@11001000 {
700			compatible = "mediatek,mt8183-auxadc",
701				     "mediatek,mt8173-auxadc";
702			reg = <0 0x11001000 0 0x1000>;
703			clocks = <&infracfg CLK_INFRA_AUXADC>;
704			clock-names = "main";
705			#io-channel-cells = <1>;
706			status = "disabled";
707		};
708
709		uart0: serial@11002000 {
710			compatible = "mediatek,mt8183-uart",
711				     "mediatek,mt6577-uart";
712			reg = <0 0x11002000 0 0x1000>;
713			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
714			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
715			clock-names = "baud", "bus";
716			status = "disabled";
717		};
718
719		uart1: serial@11003000 {
720			compatible = "mediatek,mt8183-uart",
721				     "mediatek,mt6577-uart";
722			reg = <0 0x11003000 0 0x1000>;
723			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
724			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
725			clock-names = "baud", "bus";
726			status = "disabled";
727		};
728
729		uart2: serial@11004000 {
730			compatible = "mediatek,mt8183-uart",
731				     "mediatek,mt6577-uart";
732			reg = <0 0x11004000 0 0x1000>;
733			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
734			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART2>;
735			clock-names = "baud", "bus";
736			status = "disabled";
737		};
738
739		i2c6: i2c@11005000 {
740			compatible = "mediatek,mt8183-i2c";
741			reg = <0 0x11005000 0 0x1000>,
742			      <0 0x11000600 0 0x80>;
743			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
744			clocks = <&infracfg CLK_INFRA_I2C6>,
745				 <&infracfg CLK_INFRA_AP_DMA>;
746			clock-names = "main", "dma";
747			clock-div = <1>;
748			#address-cells = <1>;
749			#size-cells = <0>;
750			status = "disabled";
751		};
752
753		i2c0: i2c@11007000 {
754			compatible = "mediatek,mt8183-i2c";
755			reg = <0 0x11007000 0 0x1000>,
756			      <0 0x11000080 0 0x80>;
757			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
758			clocks = <&infracfg CLK_INFRA_I2C0>,
759				 <&infracfg CLK_INFRA_AP_DMA>;
760			clock-names = "main", "dma";
761			clock-div = <1>;
762			#address-cells = <1>;
763			#size-cells = <0>;
764			status = "disabled";
765		};
766
767		i2c4: i2c@11008000 {
768			compatible = "mediatek,mt8183-i2c";
769			reg = <0 0x11008000 0 0x1000>,
770			      <0 0x11000100 0 0x80>;
771			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
772			clocks = <&infracfg CLK_INFRA_I2C1>,
773				 <&infracfg CLK_INFRA_AP_DMA>,
774				 <&infracfg CLK_INFRA_I2C1_ARBITER>;
775			clock-names = "main", "dma","arb";
776			clock-div = <1>;
777			#address-cells = <1>;
778			#size-cells = <0>;
779			status = "disabled";
780		};
781
782		i2c2: i2c@11009000 {
783			compatible = "mediatek,mt8183-i2c";
784			reg = <0 0x11009000 0 0x1000>,
785			      <0 0x11000280 0 0x80>;
786			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
787			clocks = <&infracfg CLK_INFRA_I2C2>,
788				 <&infracfg CLK_INFRA_AP_DMA>,
789				 <&infracfg CLK_INFRA_I2C2_ARBITER>;
790			clock-names = "main", "dma", "arb";
791			clock-div = <1>;
792			#address-cells = <1>;
793			#size-cells = <0>;
794			status = "disabled";
795		};
796
797		spi0: spi@1100a000 {
798			compatible = "mediatek,mt8183-spi";
799			#address-cells = <1>;
800			#size-cells = <0>;
801			reg = <0 0x1100a000 0 0x1000>;
802			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_LOW>;
803			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
804				 <&topckgen CLK_TOP_MUX_SPI>,
805				 <&infracfg CLK_INFRA_SPI0>;
806			clock-names = "parent-clk", "sel-clk", "spi-clk";
807			status = "disabled";
808		};
809
810		thermal: thermal@1100b000 {
811			#thermal-sensor-cells = <1>;
812			compatible = "mediatek,mt8183-thermal";
813			reg = <0 0x1100b000 0 0x1000>;
814			clocks = <&infracfg CLK_INFRA_THERM>,
815				 <&infracfg CLK_INFRA_AUXADC>;
816			clock-names = "therm", "auxadc";
817			resets = <&infracfg  MT8183_INFRACFG_AO_THERM_SW_RST>;
818			interrupts = <0 76 IRQ_TYPE_LEVEL_LOW>;
819			mediatek,auxadc = <&auxadc>;
820			mediatek,apmixedsys = <&apmixedsys>;
821			nvmem-cells = <&thermal_calibration>;
822			nvmem-cell-names = "calibration-data";
823		};
824
825		thermal_zones: thermal-zones {
826			cpu_thermal: cpu-thermal {
827				polling-delay-passive = <100>;
828				polling-delay = <500>;
829				thermal-sensors = <&thermal 0>;
830				sustainable-power = <5000>;
831
832				trips {
833					threshold: trip-point0 {
834						temperature = <68000>;
835						hysteresis = <2000>;
836						type = "passive";
837					};
838
839					target: trip-point1 {
840						temperature = <80000>;
841						hysteresis = <2000>;
842						type = "passive";
843					};
844
845					cpu_crit: cpu-crit {
846						temperature = <115000>;
847						hysteresis = <2000>;
848						type = "critical";
849					};
850				};
851
852				cooling-maps {
853					map0 {
854						trip = <&target>;
855						cooling-device = <&cpu0
856							THERMAL_NO_LIMIT
857							THERMAL_NO_LIMIT>,
858								 <&cpu1
859							THERMAL_NO_LIMIT
860							THERMAL_NO_LIMIT>,
861								 <&cpu2
862							THERMAL_NO_LIMIT
863							THERMAL_NO_LIMIT>,
864								 <&cpu3
865							THERMAL_NO_LIMIT
866							THERMAL_NO_LIMIT>;
867						contribution = <3072>;
868					};
869					map1 {
870						trip = <&target>;
871						cooling-device = <&cpu4
872							THERMAL_NO_LIMIT
873							THERMAL_NO_LIMIT>,
874								 <&cpu5
875							THERMAL_NO_LIMIT
876							THERMAL_NO_LIMIT>,
877								 <&cpu6
878							THERMAL_NO_LIMIT
879							THERMAL_NO_LIMIT>,
880								 <&cpu7
881							THERMAL_NO_LIMIT
882							THERMAL_NO_LIMIT>;
883						contribution = <1024>;
884					};
885				};
886			};
887
888			/* The tzts1 ~ tzts6 don't need to polling */
889			/* The tzts1 ~ tzts6 don't need to thermal throttle */
890
891			tzts1: tzts1 {
892				polling-delay-passive = <0>;
893				polling-delay = <0>;
894				thermal-sensors = <&thermal 1>;
895				sustainable-power = <5000>;
896				trips {};
897				cooling-maps {};
898			};
899
900			tzts2: tzts2 {
901				polling-delay-passive = <0>;
902				polling-delay = <0>;
903				thermal-sensors = <&thermal 2>;
904				sustainable-power = <5000>;
905				trips {};
906				cooling-maps {};
907			};
908
909			tzts3: tzts3 {
910				polling-delay-passive = <0>;
911				polling-delay = <0>;
912				thermal-sensors = <&thermal 3>;
913				sustainable-power = <5000>;
914				trips {};
915				cooling-maps {};
916			};
917
918			tzts4: tzts4 {
919				polling-delay-passive = <0>;
920				polling-delay = <0>;
921				thermal-sensors = <&thermal 4>;
922				sustainable-power = <5000>;
923				trips {};
924				cooling-maps {};
925			};
926
927			tzts5: tzts5 {
928				polling-delay-passive = <0>;
929				polling-delay = <0>;
930				thermal-sensors = <&thermal 5>;
931				sustainable-power = <5000>;
932				trips {};
933				cooling-maps {};
934			};
935
936			tztsABB: tztsABB {
937				polling-delay-passive = <0>;
938				polling-delay = <0>;
939				thermal-sensors = <&thermal 6>;
940				sustainable-power = <5000>;
941				trips {};
942				cooling-maps {};
943			};
944		};
945
946		pwm0: pwm@1100e000 {
947			compatible = "mediatek,mt8183-disp-pwm";
948			reg = <0 0x1100e000 0 0x1000>;
949			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_LOW>;
950			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
951			#pwm-cells = <2>;
952			clocks = <&topckgen CLK_TOP_MUX_DISP_PWM>,
953					<&infracfg CLK_INFRA_DISP_PWM>;
954			clock-names = "main", "mm";
955		};
956
957		pwm1: pwm@11006000 {
958			compatible = "mediatek,mt8183-pwm";
959			reg = <0 0x11006000 0 0x1000>;
960			#pwm-cells = <2>;
961			clocks = <&infracfg CLK_INFRA_PWM>,
962				 <&infracfg CLK_INFRA_PWM_HCLK>,
963				 <&infracfg CLK_INFRA_PWM1>,
964				 <&infracfg CLK_INFRA_PWM2>,
965				 <&infracfg CLK_INFRA_PWM3>,
966				 <&infracfg CLK_INFRA_PWM4>;
967			clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
968				      "pwm4";
969		};
970
971		i2c3: i2c@1100f000 {
972			compatible = "mediatek,mt8183-i2c";
973			reg = <0 0x1100f000 0 0x1000>,
974			      <0 0x11000400 0 0x80>;
975			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
976			clocks = <&infracfg CLK_INFRA_I2C3>,
977				 <&infracfg CLK_INFRA_AP_DMA>;
978			clock-names = "main", "dma";
979			clock-div = <1>;
980			#address-cells = <1>;
981			#size-cells = <0>;
982			status = "disabled";
983		};
984
985		spi1: spi@11010000 {
986			compatible = "mediatek,mt8183-spi";
987			#address-cells = <1>;
988			#size-cells = <0>;
989			reg = <0 0x11010000 0 0x1000>;
990			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_LOW>;
991			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
992				 <&topckgen CLK_TOP_MUX_SPI>,
993				 <&infracfg CLK_INFRA_SPI1>;
994			clock-names = "parent-clk", "sel-clk", "spi-clk";
995			status = "disabled";
996		};
997
998		i2c1: i2c@11011000 {
999			compatible = "mediatek,mt8183-i2c";
1000			reg = <0 0x11011000 0 0x1000>,
1001			      <0 0x11000480 0 0x80>;
1002			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
1003			clocks = <&infracfg CLK_INFRA_I2C4>,
1004				 <&infracfg CLK_INFRA_AP_DMA>;
1005			clock-names = "main", "dma";
1006			clock-div = <1>;
1007			#address-cells = <1>;
1008			#size-cells = <0>;
1009			status = "disabled";
1010		};
1011
1012		spi2: spi@11012000 {
1013			compatible = "mediatek,mt8183-spi";
1014			#address-cells = <1>;
1015			#size-cells = <0>;
1016			reg = <0 0x11012000 0 0x1000>;
1017			interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_LOW>;
1018			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1019				 <&topckgen CLK_TOP_MUX_SPI>,
1020				 <&infracfg CLK_INFRA_SPI2>;
1021			clock-names = "parent-clk", "sel-clk", "spi-clk";
1022			status = "disabled";
1023		};
1024
1025		spi3: spi@11013000 {
1026			compatible = "mediatek,mt8183-spi";
1027			#address-cells = <1>;
1028			#size-cells = <0>;
1029			reg = <0 0x11013000 0 0x1000>;
1030			interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_LOW>;
1031			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1032				 <&topckgen CLK_TOP_MUX_SPI>,
1033				 <&infracfg CLK_INFRA_SPI3>;
1034			clock-names = "parent-clk", "sel-clk", "spi-clk";
1035			status = "disabled";
1036		};
1037
1038		i2c9: i2c@11014000 {
1039			compatible = "mediatek,mt8183-i2c";
1040			reg = <0 0x11014000 0 0x1000>,
1041			      <0 0x11000180 0 0x80>;
1042			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_LOW>;
1043			clocks = <&infracfg CLK_INFRA_I2C1_IMM>,
1044				 <&infracfg CLK_INFRA_AP_DMA>,
1045				 <&infracfg CLK_INFRA_I2C1_ARBITER>;
1046			clock-names = "main", "dma", "arb";
1047			clock-div = <1>;
1048			#address-cells = <1>;
1049			#size-cells = <0>;
1050			status = "disabled";
1051		};
1052
1053		i2c10: i2c@11015000 {
1054			compatible = "mediatek,mt8183-i2c";
1055			reg = <0 0x11015000 0 0x1000>,
1056			      <0 0x11000300 0 0x80>;
1057			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
1058			clocks = <&infracfg CLK_INFRA_I2C2_IMM>,
1059				 <&infracfg CLK_INFRA_AP_DMA>,
1060				 <&infracfg CLK_INFRA_I2C2_ARBITER>;
1061			clock-names = "main", "dma", "arb";
1062			clock-div = <1>;
1063			#address-cells = <1>;
1064			#size-cells = <0>;
1065			status = "disabled";
1066		};
1067
1068		i2c5: i2c@11016000 {
1069			compatible = "mediatek,mt8183-i2c";
1070			reg = <0 0x11016000 0 0x1000>,
1071			      <0 0x11000500 0 0x80>;
1072			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
1073			clocks = <&infracfg CLK_INFRA_I2C5>,
1074				 <&infracfg CLK_INFRA_AP_DMA>,
1075				 <&infracfg CLK_INFRA_I2C5_ARBITER>;
1076			clock-names = "main", "dma", "arb";
1077			clock-div = <1>;
1078			#address-cells = <1>;
1079			#size-cells = <0>;
1080			status = "disabled";
1081		};
1082
1083		i2c11: i2c@11017000 {
1084			compatible = "mediatek,mt8183-i2c";
1085			reg = <0 0x11017000 0 0x1000>,
1086			      <0 0x11000580 0 0x80>;
1087			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_LOW>;
1088			clocks = <&infracfg CLK_INFRA_I2C5_IMM>,
1089				 <&infracfg CLK_INFRA_AP_DMA>,
1090				 <&infracfg CLK_INFRA_I2C5_ARBITER>;
1091			clock-names = "main", "dma", "arb";
1092			clock-div = <1>;
1093			#address-cells = <1>;
1094			#size-cells = <0>;
1095			status = "disabled";
1096		};
1097
1098		spi4: spi@11018000 {
1099			compatible = "mediatek,mt8183-spi";
1100			#address-cells = <1>;
1101			#size-cells = <0>;
1102			reg = <0 0x11018000 0 0x1000>;
1103			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_LOW>;
1104			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1105				 <&topckgen CLK_TOP_MUX_SPI>,
1106				 <&infracfg CLK_INFRA_SPI4>;
1107			clock-names = "parent-clk", "sel-clk", "spi-clk";
1108			status = "disabled";
1109		};
1110
1111		spi5: spi@11019000 {
1112			compatible = "mediatek,mt8183-spi";
1113			#address-cells = <1>;
1114			#size-cells = <0>;
1115			reg = <0 0x11019000 0 0x1000>;
1116			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
1117			clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>,
1118				 <&topckgen CLK_TOP_MUX_SPI>,
1119				 <&infracfg CLK_INFRA_SPI5>;
1120			clock-names = "parent-clk", "sel-clk", "spi-clk";
1121			status = "disabled";
1122		};
1123
1124		i2c7: i2c@1101a000 {
1125			compatible = "mediatek,mt8183-i2c";
1126			reg = <0 0x1101a000 0 0x1000>,
1127			      <0 0x11000680 0 0x80>;
1128			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>;
1129			clocks = <&infracfg CLK_INFRA_I2C7>,
1130				 <&infracfg CLK_INFRA_AP_DMA>;
1131			clock-names = "main", "dma";
1132			clock-div = <1>;
1133			#address-cells = <1>;
1134			#size-cells = <0>;
1135			status = "disabled";
1136		};
1137
1138		i2c8: i2c@1101b000 {
1139			compatible = "mediatek,mt8183-i2c";
1140			reg = <0 0x1101b000 0 0x1000>,
1141			      <0 0x11000700 0 0x80>;
1142			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_LOW>;
1143			clocks = <&infracfg CLK_INFRA_I2C8>,
1144				 <&infracfg CLK_INFRA_AP_DMA>;
1145			clock-names = "main", "dma";
1146			clock-div = <1>;
1147			#address-cells = <1>;
1148			#size-cells = <0>;
1149			status = "disabled";
1150		};
1151
1152		ssusb: usb@11201000 {
1153			compatible ="mediatek,mt8183-mtu3", "mediatek,mtu3";
1154			reg = <0 0x11201000 0 0x2e00>,
1155			      <0 0x11203e00 0 0x0100>;
1156			reg-names = "mac", "ippc";
1157			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
1158			phys = <&u2port0 PHY_TYPE_USB2>,
1159			       <&u3port0 PHY_TYPE_USB3>;
1160			clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1161				 <&infracfg CLK_INFRA_USB>;
1162			clock-names = "sys_ck", "ref_ck";
1163			mediatek,syscon-wakeup = <&pericfg 0x420 101>;
1164			#address-cells = <2>;
1165			#size-cells = <2>;
1166			ranges;
1167			status = "disabled";
1168
1169			usb_host: usb@11200000 {
1170				compatible = "mediatek,mt8183-xhci",
1171					     "mediatek,mtk-xhci";
1172				reg = <0 0x11200000 0 0x1000>;
1173				reg-names = "mac";
1174				interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
1175				clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>,
1176					 <&infracfg CLK_INFRA_USB>;
1177				clock-names = "sys_ck", "ref_ck";
1178				status = "disabled";
1179			};
1180		};
1181
1182		audiosys: audio-controller@11220000 {
1183			compatible = "mediatek,mt8183-audiosys", "syscon";
1184			reg = <0 0x11220000 0 0x1000>;
1185			#clock-cells = <1>;
1186			afe: mt8183-afe-pcm {
1187				compatible = "mediatek,mt8183-audio";
1188				interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_LOW>;
1189				resets = <&watchdog MT8183_TOPRGU_AUDIO_SW_RST>;
1190				reset-names = "audiosys";
1191				power-domains =
1192					<&spm MT8183_POWER_DOMAIN_AUDIO>;
1193				clocks = <&audiosys CLK_AUDIO_AFE>,
1194					 <&audiosys CLK_AUDIO_DAC>,
1195					 <&audiosys CLK_AUDIO_DAC_PREDIS>,
1196					 <&audiosys CLK_AUDIO_ADC>,
1197					 <&audiosys CLK_AUDIO_PDN_ADDA6_ADC>,
1198					 <&audiosys CLK_AUDIO_22M>,
1199					 <&audiosys CLK_AUDIO_24M>,
1200					 <&audiosys CLK_AUDIO_APLL_TUNER>,
1201					 <&audiosys CLK_AUDIO_APLL2_TUNER>,
1202					 <&audiosys CLK_AUDIO_I2S1>,
1203					 <&audiosys CLK_AUDIO_I2S2>,
1204					 <&audiosys CLK_AUDIO_I2S3>,
1205					 <&audiosys CLK_AUDIO_I2S4>,
1206					 <&audiosys CLK_AUDIO_TDM>,
1207					 <&audiosys CLK_AUDIO_TML>,
1208					 <&infracfg CLK_INFRA_AUDIO>,
1209					 <&infracfg CLK_INFRA_AUDIO_26M_BCLK>,
1210					 <&topckgen CLK_TOP_MUX_AUDIO>,
1211					 <&topckgen CLK_TOP_MUX_AUD_INTBUS>,
1212					 <&topckgen CLK_TOP_SYSPLL_D2_D4>,
1213					 <&topckgen CLK_TOP_MUX_AUD_1>,
1214					 <&topckgen CLK_TOP_APLL1_CK>,
1215					 <&topckgen CLK_TOP_MUX_AUD_2>,
1216					 <&topckgen CLK_TOP_APLL2_CK>,
1217					 <&topckgen CLK_TOP_MUX_AUD_ENG1>,
1218					 <&topckgen CLK_TOP_APLL1_D8>,
1219					 <&topckgen CLK_TOP_MUX_AUD_ENG2>,
1220					 <&topckgen CLK_TOP_APLL2_D8>,
1221					 <&topckgen CLK_TOP_MUX_APLL_I2S0>,
1222					 <&topckgen CLK_TOP_MUX_APLL_I2S1>,
1223					 <&topckgen CLK_TOP_MUX_APLL_I2S2>,
1224					 <&topckgen CLK_TOP_MUX_APLL_I2S3>,
1225					 <&topckgen CLK_TOP_MUX_APLL_I2S4>,
1226					 <&topckgen CLK_TOP_MUX_APLL_I2S5>,
1227					 <&topckgen CLK_TOP_APLL12_DIV0>,
1228					 <&topckgen CLK_TOP_APLL12_DIV1>,
1229					 <&topckgen CLK_TOP_APLL12_DIV2>,
1230					 <&topckgen CLK_TOP_APLL12_DIV3>,
1231					 <&topckgen CLK_TOP_APLL12_DIV4>,
1232					 <&topckgen CLK_TOP_APLL12_DIVB>,
1233					 /*<&topckgen CLK_TOP_APLL12_DIV5>,*/
1234					 <&clk26m>;
1235				clock-names = "aud_afe_clk",
1236						  "aud_dac_clk",
1237						  "aud_dac_predis_clk",
1238						  "aud_adc_clk",
1239						  "aud_adc_adda6_clk",
1240						  "aud_apll22m_clk",
1241						  "aud_apll24m_clk",
1242						  "aud_apll1_tuner_clk",
1243						  "aud_apll2_tuner_clk",
1244						  "aud_i2s1_bclk_sw",
1245						  "aud_i2s2_bclk_sw",
1246						  "aud_i2s3_bclk_sw",
1247						  "aud_i2s4_bclk_sw",
1248						  "aud_tdm_clk",
1249						  "aud_tml_clk",
1250						  "aud_infra_clk",
1251						  "mtkaif_26m_clk",
1252						  "top_mux_audio",
1253						  "top_mux_aud_intbus",
1254						  "top_syspll_d2_d4",
1255						  "top_mux_aud_1",
1256						  "top_apll1_ck",
1257						  "top_mux_aud_2",
1258						  "top_apll2_ck",
1259						  "top_mux_aud_eng1",
1260						  "top_apll1_d8",
1261						  "top_mux_aud_eng2",
1262						  "top_apll2_d8",
1263						  "top_i2s0_m_sel",
1264						  "top_i2s1_m_sel",
1265						  "top_i2s2_m_sel",
1266						  "top_i2s3_m_sel",
1267						  "top_i2s4_m_sel",
1268						  "top_i2s5_m_sel",
1269						  "top_apll12_div0",
1270						  "top_apll12_div1",
1271						  "top_apll12_div2",
1272						  "top_apll12_div3",
1273						  "top_apll12_div4",
1274						  "top_apll12_divb",
1275						  /*"top_apll12_div5",*/
1276						  "top_clk26m_clk";
1277			};
1278		};
1279
1280		mmc0: mmc@11230000 {
1281			compatible = "mediatek,mt8183-mmc";
1282			reg = <0 0x11230000 0 0x1000>,
1283			      <0 0x11f50000 0 0x1000>;
1284			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
1285			clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>,
1286				 <&infracfg CLK_INFRA_MSDC0>,
1287				 <&infracfg CLK_INFRA_MSDC0_SCK>;
1288			clock-names = "source", "hclk", "source_cg";
1289			status = "disabled";
1290		};
1291
1292		mmc1: mmc@11240000 {
1293			compatible = "mediatek,mt8183-mmc";
1294			reg = <0 0x11240000 0 0x1000>,
1295			      <0 0x11e10000 0 0x1000>;
1296			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
1297			clocks = <&topckgen CLK_TOP_MUX_MSDC30_1>,
1298				 <&infracfg CLK_INFRA_MSDC1>,
1299				 <&infracfg CLK_INFRA_MSDC1_SCK>;
1300			clock-names = "source", "hclk", "source_cg";
1301			status = "disabled";
1302		};
1303
1304		mipi_tx0: dsi-phy@11e50000 {
1305			compatible = "mediatek,mt8183-mipi-tx";
1306			reg = <0 0x11e50000 0 0x1000>;
1307			clocks = <&apmixedsys CLK_APMIXED_MIPID0_26M>;
1308			#clock-cells = <0>;
1309			#phy-cells = <0>;
1310			clock-output-names = "mipi_tx0_pll";
1311			nvmem-cells = <&mipi_tx_calibration>;
1312			nvmem-cell-names = "calibration-data";
1313		};
1314
1315		efuse: efuse@11f10000 {
1316			compatible = "mediatek,mt8183-efuse",
1317				     "mediatek,efuse";
1318			reg = <0 0x11f10000 0 0x1000>;
1319			#address-cells = <1>;
1320			#size-cells = <1>;
1321			thermal_calibration: calib@180 {
1322				reg = <0x180 0xc>;
1323			};
1324
1325			mipi_tx_calibration: calib@190 {
1326				reg = <0x190 0xc>;
1327			};
1328		};
1329
1330		u3phy: t-phy@11f40000 {
1331			compatible = "mediatek,mt8183-tphy",
1332				     "mediatek,generic-tphy-v2";
1333			#address-cells = <1>;
1334			#size-cells = <1>;
1335			ranges = <0 0 0x11f40000 0x1000>;
1336			status = "okay";
1337
1338			u2port0: usb-phy@0 {
1339				reg = <0x0 0x700>;
1340				clocks = <&clk26m>;
1341				clock-names = "ref";
1342				#phy-cells = <1>;
1343				mediatek,discth = <15>;
1344				status = "okay";
1345			};
1346
1347			u3port0: usb-phy@700 {
1348				reg = <0x0700 0x900>;
1349				clocks = <&clk26m>;
1350				clock-names = "ref";
1351				#phy-cells = <1>;
1352				status = "okay";
1353			};
1354		};
1355
1356		mfgcfg: syscon@13000000 {
1357			compatible = "mediatek,mt8183-mfgcfg", "syscon";
1358			reg = <0 0x13000000 0 0x1000>;
1359			#clock-cells = <1>;
1360		};
1361
1362		gpu: gpu@13040000 {
1363			compatible = "mediatek,mt8183-mali", "arm,mali-bifrost";
1364			reg = <0 0x13040000 0 0x4000>;
1365			interrupts =
1366				<GIC_SPI 280 IRQ_TYPE_LEVEL_LOW>,
1367				<GIC_SPI 279 IRQ_TYPE_LEVEL_LOW>,
1368				<GIC_SPI 278 IRQ_TYPE_LEVEL_LOW>;
1369			interrupt-names = "job", "mmu", "gpu";
1370
1371			clocks = <&topckgen CLK_TOP_MFGPLL_CK>;
1372
1373			power-domains =
1374				<&spm MT8183_POWER_DOMAIN_MFG_CORE0>,
1375				<&spm MT8183_POWER_DOMAIN_MFG_CORE1>,
1376				<&spm MT8183_POWER_DOMAIN_MFG_2D>;
1377			power-domain-names = "core0", "core1", "core2";
1378
1379			operating-points-v2 = <&gpu_opp_table>;
1380		};
1381
1382		mmsys: syscon@14000000 {
1383			compatible = "mediatek,mt8183-mmsys", "syscon";
1384			reg = <0 0x14000000 0 0x1000>;
1385			#clock-cells = <1>;
1386			#reset-cells = <1>;
1387			mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
1388				 <&gce 1 CMDQ_THR_PRIO_HIGHEST>;
1389			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
1390		};
1391
1392		ovl0: ovl@14008000 {
1393			compatible = "mediatek,mt8183-disp-ovl";
1394			reg = <0 0x14008000 0 0x1000>;
1395			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_LOW>;
1396			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1397			clocks = <&mmsys CLK_MM_DISP_OVL0>;
1398			iommus = <&iommu M4U_PORT_DISP_OVL0>;
1399			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x8000 0x1000>;
1400		};
1401
1402		ovl_2l0: ovl@14009000 {
1403			compatible = "mediatek,mt8183-disp-ovl-2l";
1404			reg = <0 0x14009000 0 0x1000>;
1405			interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_LOW>;
1406			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1407			clocks = <&mmsys CLK_MM_DISP_OVL0_2L>;
1408			iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>;
1409			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>;
1410		};
1411
1412		ovl_2l1: ovl@1400a000 {
1413			compatible = "mediatek,mt8183-disp-ovl-2l";
1414			reg = <0 0x1400a000 0 0x1000>;
1415			interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_LOW>;
1416			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1417			clocks = <&mmsys CLK_MM_DISP_OVL1_2L>;
1418			iommus = <&iommu M4U_PORT_DISP_2L_OVL1_LARB0>;
1419			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xa000 0x1000>;
1420		};
1421
1422		rdma0: rdma@1400b000 {
1423			compatible = "mediatek,mt8183-disp-rdma";
1424			reg = <0 0x1400b000 0 0x1000>;
1425			interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>;
1426			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1427			clocks = <&mmsys CLK_MM_DISP_RDMA0>;
1428			iommus = <&iommu M4U_PORT_DISP_RDMA0>;
1429			mediatek,rdma-fifo-size = <5120>;
1430			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xb000 0x1000>;
1431		};
1432
1433		rdma1: rdma@1400c000 {
1434			compatible = "mediatek,mt8183-disp-rdma";
1435			reg = <0 0x1400c000 0 0x1000>;
1436			interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
1437			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1438			clocks = <&mmsys CLK_MM_DISP_RDMA1>;
1439			iommus = <&iommu M4U_PORT_DISP_RDMA1>;
1440			mediatek,rdma-fifo-size = <2048>;
1441			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
1442		};
1443
1444		color0: color@1400e000 {
1445			compatible = "mediatek,mt8183-disp-color",
1446				     "mediatek,mt8173-disp-color";
1447			reg = <0 0x1400e000 0 0x1000>;
1448			interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_LOW>;
1449			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1450			clocks = <&mmsys CLK_MM_DISP_COLOR0>;
1451			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>;
1452		};
1453
1454		ccorr0: ccorr@1400f000 {
1455			compatible = "mediatek,mt8183-disp-ccorr";
1456			reg = <0 0x1400f000 0 0x1000>;
1457			interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_LOW>;
1458			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1459			clocks = <&mmsys CLK_MM_DISP_CCORR0>;
1460			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>;
1461		};
1462
1463		aal0: aal@14010000 {
1464			compatible = "mediatek,mt8183-disp-aal";
1465			reg = <0 0x14010000 0 0x1000>;
1466			interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_LOW>;
1467			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1468			clocks = <&mmsys CLK_MM_DISP_AAL0>;
1469			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0 0x1000>;
1470		};
1471
1472		gamma0: gamma@14011000 {
1473			compatible = "mediatek,mt8183-disp-gamma";
1474			reg = <0 0x14011000 0 0x1000>;
1475			interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_LOW>;
1476			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1477			clocks = <&mmsys CLK_MM_DISP_GAMMA0>;
1478			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>;
1479		};
1480
1481		dither0: dither@14012000 {
1482			compatible = "mediatek,mt8183-disp-dither";
1483			reg = <0 0x14012000 0 0x1000>;
1484			interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_LOW>;
1485			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1486			clocks = <&mmsys CLK_MM_DISP_DITHER0>;
1487			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>;
1488		};
1489
1490		dsi0: dsi@14014000 {
1491			compatible = "mediatek,mt8183-dsi";
1492			reg = <0 0x14014000 0 0x1000>;
1493			interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_LOW>;
1494			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1495			clocks = <&mmsys CLK_MM_DSI0_MM>,
1496				 <&mmsys CLK_MM_DSI0_IF>,
1497				 <&mipi_tx0>;
1498			clock-names = "engine", "digital", "hs";
1499			resets = <&mmsys MT8183_MMSYS_SW0_RST_B_DISP_DSI0>;
1500			phys = <&mipi_tx0>;
1501			phy-names = "dphy";
1502		};
1503
1504		mutex: mutex@14016000 {
1505			compatible = "mediatek,mt8183-disp-mutex";
1506			reg = <0 0x14016000 0 0x1000>;
1507			interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_LOW>;
1508			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1509			mediatek,gce-events = <CMDQ_EVENT_MUTEX_STREAM_DONE0>,
1510					      <CMDQ_EVENT_MUTEX_STREAM_DONE1>;
1511		};
1512
1513		larb0: larb@14017000 {
1514			compatible = "mediatek,mt8183-smi-larb";
1515			reg = <0 0x14017000 0 0x1000>;
1516			mediatek,smi = <&smi_common>;
1517			clocks = <&mmsys CLK_MM_SMI_LARB0>,
1518				 <&mmsys CLK_MM_SMI_LARB0>;
1519			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1520			clock-names = "apb", "smi";
1521		};
1522
1523		smi_common: smi@14019000 {
1524			compatible = "mediatek,mt8183-smi-common";
1525			reg = <0 0x14019000 0 0x1000>;
1526			clocks = <&mmsys CLK_MM_SMI_COMMON>,
1527				 <&mmsys CLK_MM_SMI_COMMON>,
1528				 <&mmsys CLK_MM_GALS_COMM0>,
1529				 <&mmsys CLK_MM_GALS_COMM1>;
1530			clock-names = "apb", "smi", "gals0", "gals1";
1531			power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
1532		};
1533
1534		imgsys: syscon@15020000 {
1535			compatible = "mediatek,mt8183-imgsys", "syscon";
1536			reg = <0 0x15020000 0 0x1000>;
1537			#clock-cells = <1>;
1538		};
1539
1540		larb5: larb@15021000 {
1541			compatible = "mediatek,mt8183-smi-larb";
1542			reg = <0 0x15021000 0 0x1000>;
1543			mediatek,smi = <&smi_common>;
1544			clocks = <&imgsys CLK_IMG_LARB5>, <&imgsys CLK_IMG_LARB5>,
1545				 <&mmsys CLK_MM_GALS_IMG2MM>;
1546			clock-names = "apb", "smi", "gals";
1547			power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1548		};
1549
1550		larb2: larb@1502f000 {
1551			compatible = "mediatek,mt8183-smi-larb";
1552			reg = <0 0x1502f000 0 0x1000>;
1553			mediatek,smi = <&smi_common>;
1554			clocks = <&imgsys CLK_IMG_LARB2>, <&imgsys CLK_IMG_LARB2>,
1555				 <&mmsys CLK_MM_GALS_IPU2MM>;
1556			clock-names = "apb", "smi", "gals";
1557			power-domains = <&spm MT8183_POWER_DOMAIN_ISP>;
1558		};
1559
1560		vdecsys: syscon@16000000 {
1561			compatible = "mediatek,mt8183-vdecsys", "syscon";
1562			reg = <0 0x16000000 0 0x1000>;
1563			#clock-cells = <1>;
1564		};
1565
1566		larb1: larb@16010000 {
1567			compatible = "mediatek,mt8183-smi-larb";
1568			reg = <0 0x16010000 0 0x1000>;
1569			mediatek,smi = <&smi_common>;
1570			clocks = <&vdecsys CLK_VDEC_VDEC>, <&vdecsys CLK_VDEC_LARB1>;
1571			clock-names = "apb", "smi";
1572			power-domains = <&spm MT8183_POWER_DOMAIN_VDEC>;
1573		};
1574
1575		vencsys: syscon@17000000 {
1576			compatible = "mediatek,mt8183-vencsys", "syscon";
1577			reg = <0 0x17000000 0 0x1000>;
1578			#clock-cells = <1>;
1579		};
1580
1581		larb4: larb@17010000 {
1582			compatible = "mediatek,mt8183-smi-larb";
1583			reg = <0 0x17010000 0 0x1000>;
1584			mediatek,smi = <&smi_common>;
1585			clocks = <&vencsys CLK_VENC_LARB>,
1586				 <&vencsys CLK_VENC_LARB>;
1587			clock-names = "apb", "smi";
1588			power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
1589		};
1590
1591		venc_jpg: venc_jpg@17030000 {
1592			compatible = "mediatek,mt8183-jpgenc", "mediatek,mtk-jpgenc";
1593			reg = <0 0x17030000 0 0x1000>;
1594			interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_LOW>;
1595			iommus = <&iommu M4U_PORT_JPGENC_RDMA>,
1596				 <&iommu M4U_PORT_JPGENC_BSDMA>;
1597			power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
1598			clocks = <&vencsys CLK_VENC_JPGENC>;
1599			clock-names = "jpgenc";
1600		};
1601
1602		ipu_conn: syscon@19000000 {
1603			compatible = "mediatek,mt8183-ipu_conn", "syscon";
1604			reg = <0 0x19000000 0 0x1000>;
1605			#clock-cells = <1>;
1606		};
1607
1608		ipu_adl: syscon@19010000 {
1609			compatible = "mediatek,mt8183-ipu_adl", "syscon";
1610			reg = <0 0x19010000 0 0x1000>;
1611			#clock-cells = <1>;
1612		};
1613
1614		ipu_core0: syscon@19180000 {
1615			compatible = "mediatek,mt8183-ipu_core0", "syscon";
1616			reg = <0 0x19180000 0 0x1000>;
1617			#clock-cells = <1>;
1618		};
1619
1620		ipu_core1: syscon@19280000 {
1621			compatible = "mediatek,mt8183-ipu_core1", "syscon";
1622			reg = <0 0x19280000 0 0x1000>;
1623			#clock-cells = <1>;
1624		};
1625
1626		camsys: syscon@1a000000 {
1627			compatible = "mediatek,mt8183-camsys", "syscon";
1628			reg = <0 0x1a000000 0 0x1000>;
1629			#clock-cells = <1>;
1630		};
1631
1632		larb6: larb@1a001000 {
1633			compatible = "mediatek,mt8183-smi-larb";
1634			reg = <0 0x1a001000 0 0x1000>;
1635			mediatek,smi = <&smi_common>;
1636			clocks = <&camsys CLK_CAM_LARB6>, <&camsys CLK_CAM_LARB6>,
1637				 <&mmsys CLK_MM_GALS_CAM2MM>;
1638			clock-names = "apb", "smi", "gals";
1639			power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1640		};
1641
1642		larb3: larb@1a002000 {
1643			compatible = "mediatek,mt8183-smi-larb";
1644			reg = <0 0x1a002000 0 0x1000>;
1645			mediatek,smi = <&smi_common>;
1646			clocks = <&camsys CLK_CAM_LARB3>, <&camsys CLK_CAM_LARB3>,
1647				 <&mmsys CLK_MM_GALS_IPU12MM>;
1648			clock-names = "apb", "smi", "gals";
1649			power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
1650		};
1651	};
1652};
1653