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