1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (C) 2020 MediaTek Inc.
4 * Author: Seiya Wang <seiya.wang@mediatek.com>
5 */
6
7/dts-v1/;
8#include <dt-bindings/clock/mt8192-clk.h>
9#include <dt-bindings/gce/mt8192-gce.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/memory/mt8192-larb-port.h>
13#include <dt-bindings/pinctrl/mt8192-pinfunc.h>
14#include <dt-bindings/phy/phy.h>
15#include <dt-bindings/power/mt8192-power.h>
16#include <dt-bindings/reset/mt8192-resets.h>
17
18/ {
19	compatible = "mediatek,mt8192";
20	interrupt-parent = <&gic>;
21	#address-cells = <2>;
22	#size-cells = <2>;
23
24	aliases {
25		ovl0 = &ovl0;
26		ovl-2l0 = &ovl_2l0;
27		ovl-2l2 = &ovl_2l2;
28		rdma0 = &rdma0;
29		rdma4 = &rdma4;
30	};
31
32	clk13m: fixed-factor-clock-13m {
33		compatible = "fixed-factor-clock";
34		#clock-cells = <0>;
35		clocks = <&clk26m>;
36		clock-div = <2>;
37		clock-mult = <1>;
38		clock-output-names = "clk13m";
39	};
40
41	clk26m: oscillator0 {
42		compatible = "fixed-clock";
43		#clock-cells = <0>;
44		clock-frequency = <26000000>;
45		clock-output-names = "clk26m";
46	};
47
48	clk32k: oscillator1 {
49		compatible = "fixed-clock";
50		#clock-cells = <0>;
51		clock-frequency = <32768>;
52		clock-output-names = "clk32k";
53	};
54
55	cpus {
56		#address-cells = <1>;
57		#size-cells = <0>;
58
59		cpu0: cpu@0 {
60			device_type = "cpu";
61			compatible = "arm,cortex-a55";
62			reg = <0x000>;
63			enable-method = "psci";
64			clock-frequency = <1701000000>;
65			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
66			i-cache-size = <32768>;
67			i-cache-line-size = <64>;
68			i-cache-sets = <128>;
69			d-cache-size = <32768>;
70			d-cache-line-size = <64>;
71			d-cache-sets = <128>;
72			next-level-cache = <&l2_0>;
73			performance-domains = <&performance 0>;
74			capacity-dmips-mhz = <427>;
75		};
76
77		cpu1: cpu@100 {
78			device_type = "cpu";
79			compatible = "arm,cortex-a55";
80			reg = <0x100>;
81			enable-method = "psci";
82			clock-frequency = <1701000000>;
83			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
84			i-cache-size = <32768>;
85			i-cache-line-size = <64>;
86			i-cache-sets = <128>;
87			d-cache-size = <32768>;
88			d-cache-line-size = <64>;
89			d-cache-sets = <128>;
90			next-level-cache = <&l2_0>;
91			performance-domains = <&performance 0>;
92			capacity-dmips-mhz = <427>;
93		};
94
95		cpu2: cpu@200 {
96			device_type = "cpu";
97			compatible = "arm,cortex-a55";
98			reg = <0x200>;
99			enable-method = "psci";
100			clock-frequency = <1701000000>;
101			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
102			i-cache-size = <32768>;
103			i-cache-line-size = <64>;
104			i-cache-sets = <128>;
105			d-cache-size = <32768>;
106			d-cache-line-size = <64>;
107			d-cache-sets = <128>;
108			next-level-cache = <&l2_0>;
109			performance-domains = <&performance 0>;
110			capacity-dmips-mhz = <427>;
111		};
112
113		cpu3: cpu@300 {
114			device_type = "cpu";
115			compatible = "arm,cortex-a55";
116			reg = <0x300>;
117			enable-method = "psci";
118			clock-frequency = <1701000000>;
119			cpu-idle-states = <&cpu_ret_l &cpu_off_l>;
120			i-cache-size = <32768>;
121			i-cache-line-size = <64>;
122			i-cache-sets = <128>;
123			d-cache-size = <32768>;
124			d-cache-line-size = <64>;
125			d-cache-sets = <128>;
126			next-level-cache = <&l2_0>;
127			performance-domains = <&performance 0>;
128			capacity-dmips-mhz = <427>;
129		};
130
131		cpu4: cpu@400 {
132			device_type = "cpu";
133			compatible = "arm,cortex-a76";
134			reg = <0x400>;
135			enable-method = "psci";
136			clock-frequency = <2171000000>;
137			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
138			i-cache-size = <65536>;
139			i-cache-line-size = <64>;
140			i-cache-sets = <256>;
141			d-cache-size = <65536>;
142			d-cache-line-size = <64>;
143			d-cache-sets = <256>;
144			next-level-cache = <&l2_1>;
145			performance-domains = <&performance 1>;
146			capacity-dmips-mhz = <1024>;
147		};
148
149		cpu5: cpu@500 {
150			device_type = "cpu";
151			compatible = "arm,cortex-a76";
152			reg = <0x500>;
153			enable-method = "psci";
154			clock-frequency = <2171000000>;
155			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
156			i-cache-size = <65536>;
157			i-cache-line-size = <64>;
158			i-cache-sets = <256>;
159			d-cache-size = <65536>;
160			d-cache-line-size = <64>;
161			d-cache-sets = <256>;
162			next-level-cache = <&l2_1>;
163			performance-domains = <&performance 1>;
164			capacity-dmips-mhz = <1024>;
165		};
166
167		cpu6: cpu@600 {
168			device_type = "cpu";
169			compatible = "arm,cortex-a76";
170			reg = <0x600>;
171			enable-method = "psci";
172			clock-frequency = <2171000000>;
173			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
174			i-cache-size = <65536>;
175			i-cache-line-size = <64>;
176			i-cache-sets = <256>;
177			d-cache-size = <65536>;
178			d-cache-line-size = <64>;
179			d-cache-sets = <256>;
180			next-level-cache = <&l2_1>;
181			performance-domains = <&performance 1>;
182			capacity-dmips-mhz = <1024>;
183		};
184
185		cpu7: cpu@700 {
186			device_type = "cpu";
187			compatible = "arm,cortex-a76";
188			reg = <0x700>;
189			enable-method = "psci";
190			clock-frequency = <2171000000>;
191			cpu-idle-states = <&cpu_ret_b &cpu_off_b>;
192			i-cache-size = <65536>;
193			i-cache-line-size = <64>;
194			i-cache-sets = <256>;
195			d-cache-size = <65536>;
196			d-cache-line-size = <64>;
197			d-cache-sets = <256>;
198			next-level-cache = <&l2_1>;
199			performance-domains = <&performance 1>;
200			capacity-dmips-mhz = <1024>;
201		};
202
203		cpu-map {
204			cluster0 {
205				core0 {
206					cpu = <&cpu0>;
207				};
208				core1 {
209					cpu = <&cpu1>;
210				};
211				core2 {
212					cpu = <&cpu2>;
213				};
214				core3 {
215					cpu = <&cpu3>;
216				};
217				core4 {
218					cpu = <&cpu4>;
219				};
220				core5 {
221					cpu = <&cpu5>;
222				};
223				core6 {
224					cpu = <&cpu6>;
225				};
226				core7 {
227					cpu = <&cpu7>;
228				};
229			};
230		};
231
232		l2_0: l2-cache0 {
233			compatible = "cache";
234			cache-level = <2>;
235			cache-size = <131072>;
236			cache-line-size = <64>;
237			cache-sets = <512>;
238			next-level-cache = <&l3_0>;
239			cache-unified;
240		};
241
242		l2_1: l2-cache1 {
243			compatible = "cache";
244			cache-level = <2>;
245			cache-size = <262144>;
246			cache-line-size = <64>;
247			cache-sets = <512>;
248			next-level-cache = <&l3_0>;
249			cache-unified;
250		};
251
252		l3_0: l3-cache {
253			compatible = "cache";
254			cache-level = <3>;
255			cache-size = <2097152>;
256			cache-line-size = <64>;
257			cache-sets = <2048>;
258			cache-unified;
259		};
260
261		idle-states {
262			entry-method = "psci";
263			cpu_ret_l: cpu-retention-l {
264				compatible = "arm,idle-state";
265				arm,psci-suspend-param = <0x00010001>;
266				local-timer-stop;
267				entry-latency-us = <55>;
268				exit-latency-us = <140>;
269				min-residency-us = <780>;
270			};
271			cpu_ret_b: cpu-retention-b {
272				compatible = "arm,idle-state";
273				arm,psci-suspend-param = <0x00010001>;
274				local-timer-stop;
275				entry-latency-us = <35>;
276				exit-latency-us = <145>;
277				min-residency-us = <720>;
278			};
279			cpu_off_l: cpu-off-l {
280				compatible = "arm,idle-state";
281				arm,psci-suspend-param = <0x01010002>;
282				local-timer-stop;
283				entry-latency-us = <60>;
284				exit-latency-us = <155>;
285				min-residency-us = <860>;
286			};
287			cpu_off_b: cpu-off-b {
288				compatible = "arm,idle-state";
289				arm,psci-suspend-param = <0x01010002>;
290				local-timer-stop;
291				entry-latency-us = <40>;
292				exit-latency-us = <155>;
293				min-residency-us = <780>;
294			};
295		};
296	};
297
298	pmu-a55 {
299		compatible = "arm,cortex-a55-pmu";
300		interrupt-parent = <&gic>;
301		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
302	};
303
304	pmu-a76 {
305		compatible = "arm,cortex-a76-pmu";
306		interrupt-parent = <&gic>;
307		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
308	};
309
310	psci {
311		compatible = "arm,psci-1.0";
312		method = "smc";
313	};
314
315	timer: timer {
316		compatible = "arm,armv8-timer";
317		interrupt-parent = <&gic>;
318		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
319			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
320			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
321			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
322		clock-frequency = <13000000>;
323	};
324
325	gpu_opp_table: opp-table-0 {
326		compatible = "operating-points-v2";
327		opp-shared;
328
329		opp-358000000 {
330			opp-hz = /bits/ 64 <358000000>;
331			opp-microvolt = <606250>;
332		};
333
334		opp-399000000 {
335			opp-hz = /bits/ 64 <399000000>;
336			opp-microvolt = <618750>;
337		};
338
339		opp-440000000 {
340			opp-hz = /bits/ 64 <440000000>;
341			opp-microvolt = <631250>;
342		};
343
344		opp-482000000 {
345			opp-hz = /bits/ 64 <482000000>;
346			opp-microvolt = <643750>;
347		};
348
349		opp-523000000 {
350			opp-hz = /bits/ 64 <523000000>;
351			opp-microvolt = <656250>;
352		};
353
354		opp-564000000 {
355			opp-hz = /bits/ 64 <564000000>;
356			opp-microvolt = <668750>;
357		};
358
359		opp-605000000 {
360			opp-hz = /bits/ 64 <605000000>;
361			opp-microvolt = <681250>;
362		};
363
364		opp-647000000 {
365			opp-hz = /bits/ 64 <647000000>;
366			opp-microvolt = <693750>;
367		};
368
369		opp-688000000 {
370			opp-hz = /bits/ 64 <688000000>;
371			opp-microvolt = <706250>;
372		};
373
374		opp-724000000 {
375			opp-hz = /bits/ 64 <724000000>;
376			opp-microvolt = <725000>;
377		};
378
379		opp-748000000 {
380			opp-hz = /bits/ 64 <748000000>;
381			opp-microvolt = <737500>;
382		};
383
384		opp-772000000 {
385			opp-hz = /bits/ 64 <772000000>;
386			opp-microvolt = <750000>;
387		};
388
389		opp-795000000 {
390			opp-hz = /bits/ 64 <795000000>;
391			opp-microvolt = <762500>;
392		};
393
394		opp-819000000 {
395			opp-hz = /bits/ 64 <819000000>;
396			opp-microvolt = <775000>;
397		};
398
399		opp-843000000 {
400			opp-hz = /bits/ 64 <843000000>;
401			opp-microvolt = <787500>;
402		};
403
404		opp-866000000 {
405			opp-hz = /bits/ 64 <866000000>;
406			opp-microvolt = <800000>;
407		};
408	};
409
410	soc {
411		#address-cells = <2>;
412		#size-cells = <2>;
413		compatible = "simple-bus";
414		dma-ranges = <0x0 0x0 0x0 0x0 0x4 0x0>;
415		ranges;
416
417		performance: performance-controller@11bc10 {
418			compatible = "mediatek,cpufreq-hw";
419			reg = <0 0x0011bc10 0 0x120>, <0 0x0011bd30 0 0x120>;
420			#performance-domain-cells = <1>;
421		};
422
423		gic: interrupt-controller@c000000 {
424			compatible = "arm,gic-v3";
425			#interrupt-cells = <4>;
426			#redistributor-regions = <1>;
427			interrupt-parent = <&gic>;
428			interrupt-controller;
429			reg = <0 0x0c000000 0 0x40000>,
430			      <0 0x0c040000 0 0x200000>;
431			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
432
433			ppi-partitions {
434				ppi_cluster0: interrupt-partition-0 {
435					affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
436				};
437				ppi_cluster1: interrupt-partition-1 {
438					affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
439				};
440			};
441		};
442
443		topckgen: syscon@10000000 {
444			compatible = "mediatek,mt8192-topckgen", "syscon";
445			reg = <0 0x10000000 0 0x1000>;
446			#clock-cells = <1>;
447		};
448
449		infracfg: syscon@10001000 {
450			compatible = "mediatek,mt8192-infracfg", "syscon";
451			reg = <0 0x10001000 0 0x1000>;
452			#clock-cells = <1>;
453			#reset-cells = <1>;
454		};
455
456		pericfg: syscon@10003000 {
457			compatible = "mediatek,mt8192-pericfg", "syscon";
458			reg = <0 0x10003000 0 0x1000>;
459			#clock-cells = <1>;
460		};
461
462		pio: pinctrl@10005000 {
463			compatible = "mediatek,mt8192-pinctrl";
464			reg = <0 0x10005000 0 0x1000>,
465			      <0 0x11c20000 0 0x1000>,
466			      <0 0x11d10000 0 0x1000>,
467			      <0 0x11d30000 0 0x1000>,
468			      <0 0x11d40000 0 0x1000>,
469			      <0 0x11e20000 0 0x1000>,
470			      <0 0x11e70000 0 0x1000>,
471			      <0 0x11ea0000 0 0x1000>,
472			      <0 0x11f20000 0 0x1000>,
473			      <0 0x11f30000 0 0x1000>,
474			      <0 0x1000b000 0 0x1000>;
475			reg-names = "iocfg0", "iocfg_rm", "iocfg_bm",
476				    "iocfg_bl", "iocfg_br", "iocfg_lm",
477				    "iocfg_lb", "iocfg_rt", "iocfg_lt",
478				    "iocfg_tl", "eint";
479			gpio-controller;
480			#gpio-cells = <2>;
481			gpio-ranges = <&pio 0 0 220>;
482			interrupt-controller;
483			interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 0>;
484			#interrupt-cells = <2>;
485		};
486
487		scpsys: syscon@10006000 {
488			compatible = "mediatek,mt8192-scpsys", "syscon", "simple-mfd";
489			reg = <0 0x10006000 0 0x1000>;
490
491			/* System Power Manager */
492			spm: power-controller {
493				compatible = "mediatek,mt8192-power-controller";
494				#address-cells = <1>;
495				#size-cells = <0>;
496				#power-domain-cells = <1>;
497
498				/* power domain of the SoC */
499				power-domain@MT8192_POWER_DOMAIN_AUDIO {
500					reg = <MT8192_POWER_DOMAIN_AUDIO>;
501					clocks = <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
502						 <&infracfg CLK_INFRA_AUDIO_26M_B>,
503						 <&infracfg CLK_INFRA_AUDIO>;
504					clock-names = "audio", "audio1", "audio2";
505					mediatek,infracfg = <&infracfg>;
506					#power-domain-cells = <0>;
507				};
508
509				power-domain@MT8192_POWER_DOMAIN_CONN {
510					reg = <MT8192_POWER_DOMAIN_CONN>;
511					clocks = <&infracfg CLK_INFRA_PMIC_CONN>;
512					clock-names = "conn";
513					mediatek,infracfg = <&infracfg>;
514					#power-domain-cells = <0>;
515				};
516
517				mfg0: power-domain@MT8192_POWER_DOMAIN_MFG0 {
518					reg = <MT8192_POWER_DOMAIN_MFG0>;
519					clocks = <&topckgen CLK_TOP_MFG_PLL_SEL>,
520						 <&topckgen CLK_TOP_MFG_REF_SEL>;
521					clock-names = "mfg", "alt";
522					#address-cells = <1>;
523					#size-cells = <0>;
524					#power-domain-cells = <1>;
525
526					mfg1: power-domain@MT8192_POWER_DOMAIN_MFG1 {
527						reg = <MT8192_POWER_DOMAIN_MFG1>;
528						mediatek,infracfg = <&infracfg>;
529						#address-cells = <1>;
530						#size-cells = <0>;
531						#power-domain-cells = <1>;
532
533						power-domain@MT8192_POWER_DOMAIN_MFG2 {
534							reg = <MT8192_POWER_DOMAIN_MFG2>;
535							#power-domain-cells = <0>;
536						};
537
538						power-domain@MT8192_POWER_DOMAIN_MFG3 {
539							reg = <MT8192_POWER_DOMAIN_MFG3>;
540							#power-domain-cells = <0>;
541						};
542
543						power-domain@MT8192_POWER_DOMAIN_MFG4 {
544							reg = <MT8192_POWER_DOMAIN_MFG4>;
545							#power-domain-cells = <0>;
546						};
547
548						power-domain@MT8192_POWER_DOMAIN_MFG5 {
549							reg = <MT8192_POWER_DOMAIN_MFG5>;
550							#power-domain-cells = <0>;
551						};
552
553						power-domain@MT8192_POWER_DOMAIN_MFG6 {
554							reg = <MT8192_POWER_DOMAIN_MFG6>;
555							#power-domain-cells = <0>;
556						};
557					};
558				};
559
560				power-domain@MT8192_POWER_DOMAIN_DISP {
561					reg = <MT8192_POWER_DOMAIN_DISP>;
562					clocks = <&topckgen CLK_TOP_DISP_SEL>,
563						 <&mmsys CLK_MM_SMI_INFRA>,
564						 <&mmsys CLK_MM_SMI_COMMON>,
565						 <&mmsys CLK_MM_SMI_GALS>,
566						 <&mmsys CLK_MM_SMI_IOMMU>;
567					clock-names = "disp", "disp-0", "disp-1", "disp-2",
568						      "disp-3";
569					mediatek,infracfg = <&infracfg>;
570					#address-cells = <1>;
571					#size-cells = <0>;
572					#power-domain-cells = <1>;
573
574					power-domain@MT8192_POWER_DOMAIN_IPE {
575						reg = <MT8192_POWER_DOMAIN_IPE>;
576						clocks = <&topckgen CLK_TOP_IPE_SEL>,
577							 <&ipesys CLK_IPE_LARB19>,
578							 <&ipesys CLK_IPE_LARB20>,
579							 <&ipesys CLK_IPE_SMI_SUBCOM>,
580							 <&ipesys CLK_IPE_GALS>;
581						clock-names = "ipe", "ipe-0", "ipe-1", "ipe-2",
582							      "ipe-3";
583						mediatek,infracfg = <&infracfg>;
584						#power-domain-cells = <0>;
585					};
586
587					power-domain@MT8192_POWER_DOMAIN_ISP {
588						reg = <MT8192_POWER_DOMAIN_ISP>;
589						clocks = <&topckgen CLK_TOP_IMG1_SEL>,
590							 <&imgsys CLK_IMG_LARB9>,
591							 <&imgsys CLK_IMG_GALS>;
592						clock-names = "isp", "isp-0", "isp-1";
593						mediatek,infracfg = <&infracfg>;
594						#power-domain-cells = <0>;
595					};
596
597					power-domain@MT8192_POWER_DOMAIN_ISP2 {
598						reg = <MT8192_POWER_DOMAIN_ISP2>;
599						clocks = <&topckgen CLK_TOP_IMG2_SEL>,
600							 <&imgsys2 CLK_IMG2_LARB11>,
601							 <&imgsys2 CLK_IMG2_GALS>;
602						clock-names = "isp2", "isp2-0", "isp2-1";
603						mediatek,infracfg = <&infracfg>;
604						#power-domain-cells = <0>;
605					};
606
607					power-domain@MT8192_POWER_DOMAIN_MDP {
608						reg = <MT8192_POWER_DOMAIN_MDP>;
609						clocks = <&topckgen CLK_TOP_MDP_SEL>,
610							 <&mdpsys CLK_MDP_SMI0>;
611						clock-names = "mdp", "mdp-0";
612						mediatek,infracfg = <&infracfg>;
613						#power-domain-cells = <0>;
614					};
615
616					power-domain@MT8192_POWER_DOMAIN_VENC {
617						reg = <MT8192_POWER_DOMAIN_VENC>;
618						clocks = <&topckgen CLK_TOP_VENC_SEL>,
619							 <&vencsys CLK_VENC_SET1_VENC>;
620						clock-names = "venc", "venc-0";
621						mediatek,infracfg = <&infracfg>;
622						#power-domain-cells = <0>;
623					};
624
625					power-domain@MT8192_POWER_DOMAIN_VDEC {
626						reg = <MT8192_POWER_DOMAIN_VDEC>;
627						clocks = <&topckgen CLK_TOP_VDEC_SEL>,
628							 <&vdecsys_soc CLK_VDEC_SOC_VDEC>,
629							 <&vdecsys_soc CLK_VDEC_SOC_LAT>,
630							 <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
631						clock-names = "vdec", "vdec-0", "vdec-1", "vdec-2";
632						mediatek,infracfg = <&infracfg>;
633						#address-cells = <1>;
634						#size-cells = <0>;
635						#power-domain-cells = <1>;
636
637						power-domain@MT8192_POWER_DOMAIN_VDEC2 {
638							reg = <MT8192_POWER_DOMAIN_VDEC2>;
639							clocks = <&vdecsys CLK_VDEC_VDEC>,
640								 <&vdecsys CLK_VDEC_LAT>,
641								 <&vdecsys CLK_VDEC_LARB1>;
642							clock-names = "vdec2-0", "vdec2-1",
643								      "vdec2-2";
644							#power-domain-cells = <0>;
645						};
646					};
647
648					power-domain@MT8192_POWER_DOMAIN_CAM {
649						reg = <MT8192_POWER_DOMAIN_CAM>;
650						clocks = <&topckgen CLK_TOP_CAM_SEL>,
651							 <&camsys CLK_CAM_LARB13>,
652							 <&camsys CLK_CAM_LARB14>,
653							 <&camsys CLK_CAM_CCU_GALS>,
654							 <&camsys CLK_CAM_CAM2MM_GALS>;
655						clock-names = "cam", "cam-0", "cam-1", "cam-2",
656							      "cam-3";
657						mediatek,infracfg = <&infracfg>;
658						#address-cells = <1>;
659						#size-cells = <0>;
660						#power-domain-cells = <1>;
661
662						power-domain@MT8192_POWER_DOMAIN_CAM_RAWA {
663							reg = <MT8192_POWER_DOMAIN_CAM_RAWA>;
664							clocks = <&camsys_rawa CLK_CAM_RAWA_LARBX>;
665							clock-names = "cam_rawa-0";
666							#power-domain-cells = <0>;
667						};
668
669						power-domain@MT8192_POWER_DOMAIN_CAM_RAWB {
670							reg = <MT8192_POWER_DOMAIN_CAM_RAWB>;
671							clocks = <&camsys_rawb CLK_CAM_RAWB_LARBX>;
672							clock-names = "cam_rawb-0";
673							#power-domain-cells = <0>;
674						};
675
676						power-domain@MT8192_POWER_DOMAIN_CAM_RAWC {
677							reg = <MT8192_POWER_DOMAIN_CAM_RAWC>;
678							clocks = <&camsys_rawc CLK_CAM_RAWC_LARBX>;
679							clock-names = "cam_rawc-0";
680							#power-domain-cells = <0>;
681						};
682					};
683				};
684			};
685		};
686
687		watchdog: watchdog@10007000 {
688			compatible = "mediatek,mt8192-wdt";
689			reg = <0 0x10007000 0 0x100>;
690			#reset-cells = <1>;
691		};
692
693		apmixedsys: syscon@1000c000 {
694			compatible = "mediatek,mt8192-apmixedsys", "syscon";
695			reg = <0 0x1000c000 0 0x1000>;
696			#clock-cells = <1>;
697		};
698
699		systimer: timer@10017000 {
700			compatible = "mediatek,mt8192-timer",
701				     "mediatek,mt6765-timer";
702			reg = <0 0x10017000 0 0x1000>;
703			interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>;
704			clocks = <&clk13m>;
705		};
706
707		pwrap: pwrap@10026000 {
708			compatible = "mediatek,mt6873-pwrap";
709			reg = <0 0x10026000 0 0x1000>;
710			reg-names = "pwrap";
711			interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
712			clocks = <&infracfg CLK_INFRA_PMIC_AP>,
713				 <&infracfg CLK_INFRA_PMIC_TMR>;
714			clock-names = "spi", "wrap";
715			assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC_SEL>;
716			assigned-clock-parents = <&topckgen CLK_TOP_OSC_D10>;
717		};
718
719		spmi: spmi@10027000 {
720			compatible = "mediatek,mt6873-spmi";
721			reg = <0 0x10027000 0 0x000e00>,
722			      <0 0x10029000 0 0x000100>;
723			reg-names = "pmif", "spmimst";
724			clocks = <&infracfg CLK_INFRA_PMIC_AP>,
725				 <&infracfg CLK_INFRA_PMIC_TMR>,
726				 <&topckgen CLK_TOP_SPMI_MST_SEL>;
727			clock-names = "pmif_sys_ck",
728				      "pmif_tmr_ck",
729				      "spmimst_clk_mux";
730			assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC_SEL>;
731			assigned-clock-parents = <&topckgen CLK_TOP_OSC_D10>;
732		};
733
734		gce: mailbox@10228000 {
735			compatible = "mediatek,mt8192-gce";
736			reg = <0 0x10228000 0 0x4000>;
737			interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 0>;
738			#mbox-cells = <2>;
739			clocks = <&infracfg CLK_INFRA_GCE>;
740			clock-names = "gce";
741		};
742
743		scp_adsp: clock-controller@10720000 {
744			compatible = "mediatek,mt8192-scp_adsp";
745			reg = <0 0x10720000 0 0x1000>;
746			#clock-cells = <1>;
747			/* power domain dependency not upstreamed */
748			status = "fail";
749		};
750
751		uart0: serial@11002000 {
752			compatible = "mediatek,mt8192-uart",
753				     "mediatek,mt6577-uart";
754			reg = <0 0x11002000 0 0x1000>;
755			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>;
756			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
757			clock-names = "baud", "bus";
758			status = "disabled";
759		};
760
761		uart1: serial@11003000 {
762			compatible = "mediatek,mt8192-uart",
763				     "mediatek,mt6577-uart";
764			reg = <0 0x11003000 0 0x1000>;
765			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
766			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
767			clock-names = "baud", "bus";
768			status = "disabled";
769		};
770
771		imp_iic_wrap_c: clock-controller@11007000 {
772			compatible = "mediatek,mt8192-imp_iic_wrap_c";
773			reg = <0 0x11007000 0 0x1000>;
774			#clock-cells = <1>;
775		};
776
777		spi0: spi@1100a000 {
778			compatible = "mediatek,mt8192-spi",
779				     "mediatek,mt6765-spi";
780			#address-cells = <1>;
781			#size-cells = <0>;
782			reg = <0 0x1100a000 0 0x1000>;
783			interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH 0>;
784			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
785				 <&topckgen CLK_TOP_SPI_SEL>,
786				 <&infracfg CLK_INFRA_SPI0>;
787			clock-names = "parent-clk", "sel-clk", "spi-clk";
788			status = "disabled";
789		};
790
791		pwm0: pwm@1100e000 {
792			compatible = "mediatek,mt8183-disp-pwm";
793			reg = <0 0x1100e000 0 0x1000>;
794			interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH 0>;
795			#pwm-cells = <2>;
796			clocks = <&topckgen CLK_TOP_DISP_PWM_SEL>,
797				 <&infracfg CLK_INFRA_DISP_PWM>;
798			clock-names = "main", "mm";
799			status = "disabled";
800		};
801
802		spi1: spi@11010000 {
803			compatible = "mediatek,mt8192-spi",
804				     "mediatek,mt6765-spi";
805			#address-cells = <1>;
806			#size-cells = <0>;
807			reg = <0 0x11010000 0 0x1000>;
808			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH 0>;
809			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
810				 <&topckgen CLK_TOP_SPI_SEL>,
811				 <&infracfg CLK_INFRA_SPI1>;
812			clock-names = "parent-clk", "sel-clk", "spi-clk";
813			status = "disabled";
814		};
815
816		spi2: spi@11012000 {
817			compatible = "mediatek,mt8192-spi",
818				     "mediatek,mt6765-spi";
819			#address-cells = <1>;
820			#size-cells = <0>;
821			reg = <0 0x11012000 0 0x1000>;
822			interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH 0>;
823			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
824				 <&topckgen CLK_TOP_SPI_SEL>,
825				 <&infracfg CLK_INFRA_SPI2>;
826			clock-names = "parent-clk", "sel-clk", "spi-clk";
827			status = "disabled";
828		};
829
830		spi3: spi@11013000 {
831			compatible = "mediatek,mt8192-spi",
832				     "mediatek,mt6765-spi";
833			#address-cells = <1>;
834			#size-cells = <0>;
835			reg = <0 0x11013000 0 0x1000>;
836			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH 0>;
837			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
838				 <&topckgen CLK_TOP_SPI_SEL>,
839				 <&infracfg CLK_INFRA_SPI3>;
840			clock-names = "parent-clk", "sel-clk", "spi-clk";
841			status = "disabled";
842		};
843
844		spi4: spi@11018000 {
845			compatible = "mediatek,mt8192-spi",
846				     "mediatek,mt6765-spi";
847			#address-cells = <1>;
848			#size-cells = <0>;
849			reg = <0 0x11018000 0 0x1000>;
850			interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH 0>;
851			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
852				 <&topckgen CLK_TOP_SPI_SEL>,
853				 <&infracfg CLK_INFRA_SPI4>;
854			clock-names = "parent-clk", "sel-clk", "spi-clk";
855			status = "disabled";
856		};
857
858		spi5: spi@11019000 {
859			compatible = "mediatek,mt8192-spi",
860				     "mediatek,mt6765-spi";
861			#address-cells = <1>;
862			#size-cells = <0>;
863			reg = <0 0x11019000 0 0x1000>;
864			interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH 0>;
865			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
866				 <&topckgen CLK_TOP_SPI_SEL>,
867				 <&infracfg CLK_INFRA_SPI5>;
868			clock-names = "parent-clk", "sel-clk", "spi-clk";
869			status = "disabled";
870		};
871
872		spi6: spi@1101d000 {
873			compatible = "mediatek,mt8192-spi",
874				     "mediatek,mt6765-spi";
875			#address-cells = <1>;
876			#size-cells = <0>;
877			reg = <0 0x1101d000 0 0x1000>;
878			interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH 0>;
879			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
880				 <&topckgen CLK_TOP_SPI_SEL>,
881				 <&infracfg CLK_INFRA_SPI6>;
882			clock-names = "parent-clk", "sel-clk", "spi-clk";
883			status = "disabled";
884		};
885
886		spi7: spi@1101e000 {
887			compatible = "mediatek,mt8192-spi",
888				     "mediatek,mt6765-spi";
889			#address-cells = <1>;
890			#size-cells = <0>;
891			reg = <0 0x1101e000 0 0x1000>;
892			interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH 0>;
893			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
894				 <&topckgen CLK_TOP_SPI_SEL>,
895				 <&infracfg CLK_INFRA_SPI7>;
896			clock-names = "parent-clk", "sel-clk", "spi-clk";
897			status = "disabled";
898		};
899
900		scp: scp@10500000 {
901			compatible = "mediatek,mt8192-scp";
902			reg = <0 0x10500000 0 0x100000>,
903			      <0 0x10720000 0 0xe0000>,
904			      <0 0x10700000 0 0x8000>;
905			reg-names = "sram", "cfg", "l1tcm";
906			interrupts = <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH 0>;
907			clocks = <&infracfg CLK_INFRA_SCPSYS>;
908			clock-names = "main";
909			status = "disabled";
910		};
911
912		xhci: usb@11200000 {
913			compatible = "mediatek,mt8192-xhci",
914				     "mediatek,mtk-xhci";
915			reg = <0 0x11200000 0 0x1000>,
916			      <0 0x11203e00 0 0x0100>;
917			reg-names = "mac", "ippc";
918			interrupts-extended = <&gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
919			interrupt-names = "host";
920			phys = <&u2port0 PHY_TYPE_USB2>,
921			       <&u3port0 PHY_TYPE_USB3>;
922			assigned-clocks = <&topckgen CLK_TOP_USB_TOP_SEL>,
923					  <&topckgen CLK_TOP_SSUSB_XHCI_SEL>;
924			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
925						 <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
926			clocks = <&infracfg CLK_INFRA_SSUSB>,
927				 <&apmixedsys CLK_APMIXED_USBPLL>,
928				 <&clk26m>,
929				 <&clk26m>,
930				 <&infracfg CLK_INFRA_SSUSB_XHCI>;
931			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck",
932				      "xhci_ck";
933			wakeup-source;
934			mediatek,syscon-wakeup = <&pericfg 0x420 102>;
935			status = "disabled";
936		};
937
938		audsys: syscon@11210000 {
939			compatible = "mediatek,mt8192-audsys", "syscon";
940			reg = <0 0x11210000 0 0x2000>;
941			#clock-cells = <1>;
942
943			afe: mt8192-afe-pcm {
944				compatible = "mediatek,mt8192-audio";
945				interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 0>;
946				resets = <&watchdog 17>;
947				reset-names = "audiosys";
948				mediatek,apmixedsys = <&apmixedsys>;
949				mediatek,infracfg = <&infracfg>;
950				mediatek,topckgen = <&topckgen>;
951				power-domains = <&spm MT8192_POWER_DOMAIN_AUDIO>;
952				clocks = <&audsys CLK_AUD_AFE>,
953					 <&audsys CLK_AUD_DAC>,
954					 <&audsys CLK_AUD_DAC_PREDIS>,
955					 <&audsys CLK_AUD_ADC>,
956					 <&audsys CLK_AUD_ADDA6_ADC>,
957					 <&audsys CLK_AUD_22M>,
958					 <&audsys CLK_AUD_24M>,
959					 <&audsys CLK_AUD_APLL_TUNER>,
960					 <&audsys CLK_AUD_APLL2_TUNER>,
961					 <&audsys CLK_AUD_TDM>,
962					 <&audsys CLK_AUD_TML>,
963					 <&audsys CLK_AUD_NLE>,
964					 <&audsys CLK_AUD_DAC_HIRES>,
965					 <&audsys CLK_AUD_ADC_HIRES>,
966					 <&audsys CLK_AUD_ADC_HIRES_TML>,
967					 <&audsys CLK_AUD_ADDA6_ADC_HIRES>,
968					 <&audsys CLK_AUD_3RD_DAC>,
969					 <&audsys CLK_AUD_3RD_DAC_PREDIS>,
970					 <&audsys CLK_AUD_3RD_DAC_TML>,
971					 <&audsys CLK_AUD_3RD_DAC_HIRES>,
972					 <&infracfg CLK_INFRA_AUDIO>,
973					 <&infracfg CLK_INFRA_AUDIO_26M_B>,
974					 <&topckgen CLK_TOP_AUDIO_SEL>,
975					 <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
976					 <&topckgen CLK_TOP_MAINPLL_D4_D4>,
977					 <&topckgen CLK_TOP_AUD_1_SEL>,
978					 <&topckgen CLK_TOP_APLL1>,
979					 <&topckgen CLK_TOP_AUD_2_SEL>,
980					 <&topckgen CLK_TOP_APLL2>,
981					 <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
982					 <&topckgen CLK_TOP_APLL1_D4>,
983					 <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
984					 <&topckgen CLK_TOP_APLL2_D4>,
985					 <&topckgen CLK_TOP_APLL_I2S0_M_SEL>,
986					 <&topckgen CLK_TOP_APLL_I2S1_M_SEL>,
987					 <&topckgen CLK_TOP_APLL_I2S2_M_SEL>,
988					 <&topckgen CLK_TOP_APLL_I2S3_M_SEL>,
989					 <&topckgen CLK_TOP_APLL_I2S4_M_SEL>,
990					 <&topckgen CLK_TOP_APLL_I2S5_M_SEL>,
991					 <&topckgen CLK_TOP_APLL_I2S6_M_SEL>,
992					 <&topckgen CLK_TOP_APLL_I2S7_M_SEL>,
993					 <&topckgen CLK_TOP_APLL_I2S8_M_SEL>,
994					 <&topckgen CLK_TOP_APLL_I2S9_M_SEL>,
995					 <&topckgen CLK_TOP_APLL12_DIV0>,
996					 <&topckgen CLK_TOP_APLL12_DIV1>,
997					 <&topckgen CLK_TOP_APLL12_DIV2>,
998					 <&topckgen CLK_TOP_APLL12_DIV3>,
999					 <&topckgen CLK_TOP_APLL12_DIV4>,
1000					 <&topckgen CLK_TOP_APLL12_DIVB>,
1001					 <&topckgen CLK_TOP_APLL12_DIV5>,
1002					 <&topckgen CLK_TOP_APLL12_DIV6>,
1003					 <&topckgen CLK_TOP_APLL12_DIV7>,
1004					 <&topckgen CLK_TOP_APLL12_DIV8>,
1005					 <&topckgen CLK_TOP_APLL12_DIV9>,
1006					 <&topckgen CLK_TOP_AUDIO_H_SEL>,
1007					 <&clk26m>;
1008				clock-names = "aud_afe_clk",
1009					      "aud_dac_clk",
1010					      "aud_dac_predis_clk",
1011					      "aud_adc_clk",
1012					      "aud_adda6_adc_clk",
1013					      "aud_apll22m_clk",
1014					      "aud_apll24m_clk",
1015					      "aud_apll1_tuner_clk",
1016					      "aud_apll2_tuner_clk",
1017					      "aud_tdm_clk",
1018					      "aud_tml_clk",
1019					      "aud_nle",
1020					      "aud_dac_hires_clk",
1021					      "aud_adc_hires_clk",
1022					      "aud_adc_hires_tml",
1023					      "aud_adda6_adc_hires_clk",
1024					      "aud_3rd_dac_clk",
1025					      "aud_3rd_dac_predis_clk",
1026					      "aud_3rd_dac_tml",
1027					      "aud_3rd_dac_hires_clk",
1028					      "aud_infra_clk",
1029					      "aud_infra_26m_clk",
1030					      "top_mux_audio",
1031					      "top_mux_audio_int",
1032					      "top_mainpll_d4_d4",
1033					      "top_mux_aud_1",
1034					      "top_apll1_ck",
1035					      "top_mux_aud_2",
1036					      "top_apll2_ck",
1037					      "top_mux_aud_eng1",
1038					      "top_apll1_d4",
1039					      "top_mux_aud_eng2",
1040					      "top_apll2_d4",
1041					      "top_i2s0_m_sel",
1042					      "top_i2s1_m_sel",
1043					      "top_i2s2_m_sel",
1044					      "top_i2s3_m_sel",
1045					      "top_i2s4_m_sel",
1046					      "top_i2s5_m_sel",
1047					      "top_i2s6_m_sel",
1048					      "top_i2s7_m_sel",
1049					      "top_i2s8_m_sel",
1050					      "top_i2s9_m_sel",
1051					      "top_apll12_div0",
1052					      "top_apll12_div1",
1053					      "top_apll12_div2",
1054					      "top_apll12_div3",
1055					      "top_apll12_div4",
1056					      "top_apll12_divb",
1057					      "top_apll12_div5",
1058					      "top_apll12_div6",
1059					      "top_apll12_div7",
1060					      "top_apll12_div8",
1061					      "top_apll12_div9",
1062					      "top_mux_audio_h",
1063					      "top_clk26m_clk";
1064			};
1065		};
1066
1067		pcie: pcie@11230000 {
1068			compatible = "mediatek,mt8192-pcie";
1069			device_type = "pci";
1070			reg = <0 0x11230000 0 0x2000>;
1071			reg-names = "pcie-mac";
1072			#address-cells = <3>;
1073			#size-cells = <2>;
1074			clocks = <&infracfg CLK_INFRA_PCIE_PL_P_250M>,
1075				 <&infracfg CLK_INFRA_PCIE_TL_26M>,
1076				 <&infracfg CLK_INFRA_PCIE_TL_96M>,
1077				 <&infracfg CLK_INFRA_PCIE_TL_32K>,
1078				 <&infracfg CLK_INFRA_PCIE_PERI_26M>,
1079				 <&infracfg CLK_INFRA_PCIE_TOP_H_133M>;
1080			clock-names = "pl_250m", "tl_26m", "tl_96m",
1081				      "tl_32k", "peri_26m", "top_133m";
1082			assigned-clocks = <&topckgen CLK_TOP_TL_SEL>;
1083			assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D6_D4>;
1084			interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>;
1085			bus-range = <0x00 0xff>;
1086			ranges = <0x82000000 0 0x12000000 0x0 0x12000000 0 0x0800000>,
1087				 <0x81000000 0 0x12800000 0x0 0x12800000 0 0x0800000>;
1088			#interrupt-cells = <1>;
1089			interrupt-map-mask = <0 0 0 7>;
1090			interrupt-map = <0 0 0 1 &pcie_intc0 0>,
1091					<0 0 0 2 &pcie_intc0 1>,
1092					<0 0 0 3 &pcie_intc0 2>,
1093					<0 0 0 4 &pcie_intc0 3>;
1094
1095			pcie_intc0: interrupt-controller {
1096				interrupt-controller;
1097				#address-cells = <0>;
1098				#interrupt-cells = <1>;
1099			};
1100		};
1101
1102		nor_flash: spi@11234000 {
1103			compatible = "mediatek,mt8192-nor";
1104			reg = <0 0x11234000 0 0xe0>;
1105			interrupts = <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH 0>;
1106			clocks = <&topckgen CLK_TOP_SFLASH_SEL>,
1107				 <&infracfg CLK_INFRA_FLASHIF_SFLASH>,
1108				 <&infracfg CLK_INFRA_FLASHIF_TOP_H_133M>;
1109			clock-names = "spi", "sf", "axi";
1110			assigned-clocks = <&topckgen CLK_TOP_SFLASH_SEL>;
1111			assigned-clock-parents = <&clk26m>;
1112			#address-cells = <1>;
1113			#size-cells = <0>;
1114			status = "disabled";
1115		};
1116
1117		efuse: efuse@11c10000 {
1118			compatible = "mediatek,mt8192-efuse", "mediatek,efuse";
1119			reg = <0 0x11c10000 0 0x1000>;
1120			#address-cells = <1>;
1121			#size-cells = <1>;
1122
1123			lvts_e_data1: data1@1c0 {
1124				reg = <0x1c0 0x58>;
1125			};
1126
1127			svs_calibration: calib@580 {
1128				reg = <0x580 0x68>;
1129			};
1130		};
1131
1132		i2c3: i2c@11cb0000 {
1133			compatible = "mediatek,mt8192-i2c";
1134			reg = <0 0x11cb0000 0 0x1000>,
1135			      <0 0x10217300 0 0x80>;
1136			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
1137			clocks = <&imp_iic_wrap_e CLK_IMP_IIC_WRAP_E_I2C3>,
1138				 <&infracfg CLK_INFRA_AP_DMA>;
1139			clock-names = "main", "dma";
1140			clock-div = <1>;
1141			#address-cells = <1>;
1142			#size-cells = <0>;
1143			status = "disabled";
1144		};
1145
1146		imp_iic_wrap_e: clock-controller@11cb1000 {
1147			compatible = "mediatek,mt8192-imp_iic_wrap_e";
1148			reg = <0 0x11cb1000 0 0x1000>;
1149			#clock-cells = <1>;
1150		};
1151
1152		i2c7: i2c@11d00000 {
1153			compatible = "mediatek,mt8192-i2c";
1154			reg = <0 0x11d00000 0 0x1000>,
1155			      <0 0x10217600 0 0x180>;
1156			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
1157			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C7>,
1158				 <&infracfg CLK_INFRA_AP_DMA>;
1159			clock-names = "main", "dma";
1160			clock-div = <1>;
1161			#address-cells = <1>;
1162			#size-cells = <0>;
1163			status = "disabled";
1164		};
1165
1166		i2c8: i2c@11d01000 {
1167			compatible = "mediatek,mt8192-i2c";
1168			reg = <0 0x11d01000 0 0x1000>,
1169			      <0 0x10217780 0 0x180>;
1170			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
1171			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C8>,
1172				 <&infracfg CLK_INFRA_AP_DMA>;
1173			clock-names = "main", "dma";
1174			clock-div = <1>;
1175			#address-cells = <1>;
1176			#size-cells = <0>;
1177			status = "disabled";
1178		};
1179
1180		i2c9: i2c@11d02000 {
1181			compatible = "mediatek,mt8192-i2c";
1182			reg = <0 0x11d02000 0 0x1000>,
1183			      <0 0x10217900 0 0x180>;
1184			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH 0>;
1185			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C9>,
1186				 <&infracfg CLK_INFRA_AP_DMA>;
1187			clock-names = "main", "dma";
1188			clock-div = <1>;
1189			#address-cells = <1>;
1190			#size-cells = <0>;
1191			status = "disabled";
1192		};
1193
1194		imp_iic_wrap_s: clock-controller@11d03000 {
1195			compatible = "mediatek,mt8192-imp_iic_wrap_s";
1196			reg = <0 0x11d03000 0 0x1000>;
1197			#clock-cells = <1>;
1198		};
1199
1200		i2c1: i2c@11d20000 {
1201			compatible = "mediatek,mt8192-i2c";
1202			reg = <0 0x11d20000 0 0x1000>,
1203			      <0 0x10217100 0 0x80>;
1204			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>;
1205			clocks = <&imp_iic_wrap_ws CLK_IMP_IIC_WRAP_WS_I2C1>,
1206				 <&infracfg CLK_INFRA_AP_DMA>;
1207			clock-names = "main", "dma";
1208			clock-div = <1>;
1209			#address-cells = <1>;
1210			#size-cells = <0>;
1211			status = "disabled";
1212		};
1213
1214		i2c2: i2c@11d21000 {
1215			compatible = "mediatek,mt8192-i2c";
1216			reg = <0 0x11d21000 0 0x1000>,
1217			      <0 0x10217180 0 0x180>;
1218			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH 0>;
1219			clocks = <&imp_iic_wrap_ws CLK_IMP_IIC_WRAP_WS_I2C2>,
1220				 <&infracfg CLK_INFRA_AP_DMA>;
1221			clock-names = "main", "dma";
1222			clock-div = <1>;
1223			#address-cells = <1>;
1224			#size-cells = <0>;
1225			status = "disabled";
1226		};
1227
1228		i2c4: i2c@11d22000 {
1229			compatible = "mediatek,mt8192-i2c";
1230			reg = <0 0x11d22000 0 0x1000>,
1231			      <0 0x10217380 0 0x180>;
1232			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
1233			clocks = <&imp_iic_wrap_ws CLK_IMP_IIC_WRAP_WS_I2C4>,
1234				 <&infracfg CLK_INFRA_AP_DMA>;
1235			clock-names = "main", "dma";
1236			clock-div = <1>;
1237			#address-cells = <1>;
1238			#size-cells = <0>;
1239			status = "disabled";
1240		};
1241
1242		imp_iic_wrap_ws: clock-controller@11d23000 {
1243			compatible = "mediatek,mt8192-imp_iic_wrap_ws";
1244			reg = <0 0x11d23000 0 0x1000>;
1245			#clock-cells = <1>;
1246		};
1247
1248		i2c5: i2c@11e00000 {
1249			compatible = "mediatek,mt8192-i2c";
1250			reg = <0 0x11e00000 0 0x1000>,
1251			      <0 0x10217500 0 0x80>;
1252			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
1253			clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C5>,
1254				 <&infracfg CLK_INFRA_AP_DMA>;
1255			clock-names = "main", "dma";
1256			clock-div = <1>;
1257			#address-cells = <1>;
1258			#size-cells = <0>;
1259			status = "disabled";
1260		};
1261
1262		imp_iic_wrap_w: clock-controller@11e01000 {
1263			compatible = "mediatek,mt8192-imp_iic_wrap_w";
1264			reg = <0 0x11e01000 0 0x1000>;
1265			#clock-cells = <1>;
1266		};
1267
1268		u3phy0: t-phy@11e40000 {
1269			compatible = "mediatek,mt8192-tphy",
1270				     "mediatek,generic-tphy-v2";
1271			#address-cells = <1>;
1272			#size-cells = <1>;
1273			ranges = <0x0 0x0 0x11e40000 0x1000>;
1274
1275			u2port0: usb-phy@0 {
1276				reg = <0x0 0x700>;
1277				clocks = <&clk26m>;
1278				clock-names = "ref";
1279				#phy-cells = <1>;
1280			};
1281
1282			u3port0: usb-phy@700 {
1283				reg = <0x700 0x900>;
1284				clocks = <&clk26m>;
1285				clock-names = "ref";
1286				#phy-cells = <1>;
1287			};
1288		};
1289
1290		mipi_tx0: dsi-phy@11e50000 {
1291			compatible = "mediatek,mt8183-mipi-tx";
1292			reg = <0 0x11e50000 0 0x1000>;
1293			clocks = <&apmixedsys CLK_APMIXED_MIPID26M>;
1294			#clock-cells = <0>;
1295			#phy-cells = <0>;
1296			clock-output-names = "mipi_tx0_pll";
1297			status = "disabled";
1298		};
1299
1300		i2c0: i2c@11f00000 {
1301			compatible = "mediatek,mt8192-i2c";
1302			reg = <0 0x11f00000 0 0x1000>,
1303			      <0 0x10217080 0 0x80>;
1304			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH 0>;
1305			clocks = <&imp_iic_wrap_n CLK_IMP_IIC_WRAP_N_I2C0>,
1306				 <&infracfg CLK_INFRA_AP_DMA>;
1307			clock-names = "main", "dma";
1308			clock-div = <1>;
1309			#address-cells = <1>;
1310			#size-cells = <0>;
1311			status = "disabled";
1312		};
1313
1314		i2c6: i2c@11f01000 {
1315			compatible = "mediatek,mt8192-i2c";
1316			reg = <0 0x11f01000 0 0x1000>,
1317			      <0 0x10217580 0 0x80>;
1318			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
1319			clocks = <&imp_iic_wrap_n CLK_IMP_IIC_WRAP_N_I2C6>,
1320				 <&infracfg CLK_INFRA_AP_DMA>;
1321			clock-names = "main", "dma";
1322			clock-div = <1>;
1323			#address-cells = <1>;
1324			#size-cells = <0>;
1325			status = "disabled";
1326		};
1327
1328		imp_iic_wrap_n: clock-controller@11f02000 {
1329			compatible = "mediatek,mt8192-imp_iic_wrap_n";
1330			reg = <0 0x11f02000 0 0x1000>;
1331			#clock-cells = <1>;
1332		};
1333
1334		msdc_top: clock-controller@11f10000 {
1335			compatible = "mediatek,mt8192-msdc_top";
1336			reg = <0 0x11f10000 0 0x1000>;
1337			#clock-cells = <1>;
1338		};
1339
1340		mmc0: mmc@11f60000 {
1341			compatible = "mediatek,mt8192-mmc", "mediatek,mt8183-mmc";
1342			reg = <0 0x11f60000 0 0x1000>, <0 0x11f50000 0 0x1000>;
1343			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
1344			clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
1345				 <&msdc_top CLK_MSDC_TOP_H_MST_0P>,
1346				 <&msdc_top CLK_MSDC_TOP_SRC_0P>,
1347				 <&msdc_top CLK_MSDC_TOP_P_CFG>,
1348				 <&msdc_top CLK_MSDC_TOP_P_MSDC0>,
1349				 <&msdc_top CLK_MSDC_TOP_AXI>,
1350				 <&msdc_top CLK_MSDC_TOP_AHB2AXI_BRG_AXI>;
1351			clock-names = "source", "hclk", "source_cg", "sys_cg",
1352				      "pclk_cg", "axi_cg", "ahb_cg";
1353			status = "disabled";
1354		};
1355
1356		mmc1: mmc@11f70000 {
1357			compatible = "mediatek,mt8192-mmc", "mediatek,mt8183-mmc";
1358			reg = <0 0x11f70000 0 0x1000>, <0 0x11c70000 0 0x1000>;
1359			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>;
1360			clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
1361				 <&msdc_top CLK_MSDC_TOP_H_MST_1P>,
1362				 <&msdc_top CLK_MSDC_TOP_SRC_1P>,
1363				 <&msdc_top CLK_MSDC_TOP_P_CFG>,
1364				 <&msdc_top CLK_MSDC_TOP_P_MSDC1>,
1365				 <&msdc_top CLK_MSDC_TOP_AXI>,
1366				 <&msdc_top CLK_MSDC_TOP_AHB2AXI_BRG_AXI>;
1367			clock-names = "source", "hclk", "source_cg", "sys_cg",
1368				      "pclk_cg", "axi_cg", "ahb_cg";
1369			status = "disabled";
1370		};
1371
1372		gpu: gpu@13000000 {
1373			compatible = "mediatek,mt8192-mali", "arm,mali-valhall-jm";
1374			reg = <0 0x13000000 0 0x4000>;
1375			interrupts = <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH 0>,
1376				     <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH 0>,
1377				     <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH 0>;
1378			interrupt-names = "job", "mmu", "gpu";
1379
1380			clocks = <&apmixedsys CLK_APMIXED_MFGPLL>;
1381
1382			power-domains = <&spm MT8192_POWER_DOMAIN_MFG2>,
1383					<&spm MT8192_POWER_DOMAIN_MFG3>,
1384					<&spm MT8192_POWER_DOMAIN_MFG4>,
1385					<&spm MT8192_POWER_DOMAIN_MFG5>,
1386					<&spm MT8192_POWER_DOMAIN_MFG6>;
1387			power-domain-names = "core0", "core1", "core2", "core3", "core4";
1388
1389			operating-points-v2 = <&gpu_opp_table>;
1390
1391			status = "disabled";
1392		};
1393
1394		mfgcfg: clock-controller@13fbf000 {
1395			compatible = "mediatek,mt8192-mfgcfg";
1396			reg = <0 0x13fbf000 0 0x1000>;
1397			#clock-cells = <1>;
1398		};
1399
1400		mmsys: syscon@14000000 {
1401			compatible = "mediatek,mt8192-mmsys", "syscon";
1402			reg = <0 0x14000000 0 0x1000>;
1403			#clock-cells = <1>;
1404			#reset-cells = <1>;
1405			mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
1406				 <&gce 1 CMDQ_THR_PRIO_HIGHEST>;
1407			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
1408		};
1409
1410		mutex: mutex@14001000 {
1411			compatible = "mediatek,mt8192-disp-mutex";
1412			reg = <0 0x14001000 0 0x1000>;
1413			interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH 0>;
1414			clocks = <&mmsys CLK_MM_DISP_MUTEX0>;
1415			mediatek,gce-events = <CMDQ_EVENT_DISP_STREAM_DONE_ENG_EVENT_0>,
1416					      <CMDQ_EVENT_DISP_STREAM_DONE_ENG_EVENT_1>;
1417			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1418		};
1419
1420		smi_common: smi@14002000 {
1421			compatible = "mediatek,mt8192-smi-common";
1422			reg = <0 0x14002000 0 0x1000>;
1423			clocks = <&mmsys CLK_MM_SMI_COMMON>,
1424				 <&mmsys CLK_MM_SMI_INFRA>,
1425				 <&mmsys CLK_MM_SMI_GALS>,
1426				 <&mmsys CLK_MM_SMI_GALS>;
1427			clock-names = "apb", "smi", "gals0", "gals1";
1428			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1429		};
1430
1431		larb0: larb@14003000 {
1432			compatible = "mediatek,mt8192-smi-larb";
1433			reg = <0 0x14003000 0 0x1000>;
1434			mediatek,larb-id = <0>;
1435			mediatek,smi = <&smi_common>;
1436			clocks = <&clk26m>, <&clk26m>;
1437			clock-names = "apb", "smi";
1438			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1439		};
1440
1441		larb1: larb@14004000 {
1442			compatible = "mediatek,mt8192-smi-larb";
1443			reg = <0 0x14004000 0 0x1000>;
1444			mediatek,larb-id = <1>;
1445			mediatek,smi = <&smi_common>;
1446			clocks = <&clk26m>, <&clk26m>;
1447			clock-names = "apb", "smi";
1448			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1449		};
1450
1451		ovl0: ovl@14005000 {
1452			compatible = "mediatek,mt8192-disp-ovl";
1453			reg = <0 0x14005000 0 0x1000>;
1454			interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH 0>;
1455			clocks = <&mmsys CLK_MM_DISP_OVL0>;
1456			iommus = <&iommu0 M4U_PORT_L0_OVL_RDMA0>,
1457				 <&iommu0 M4U_PORT_L0_OVL_RDMA0_HDR>;
1458			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1459			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x5000 0x1000>;
1460		};
1461
1462		ovl_2l0: ovl@14006000 {
1463			compatible = "mediatek,mt8192-disp-ovl-2l";
1464			reg = <0 0x14006000 0 0x1000>;
1465			interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH 0>;
1466			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1467			clocks = <&mmsys CLK_MM_DISP_OVL0_2L>;
1468			iommus = <&iommu0 M4U_PORT_L1_OVL_2L_RDMA0>,
1469				 <&iommu0 M4U_PORT_L1_OVL_2L_RDMA0_HDR>;
1470			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x6000 0x1000>;
1471		};
1472
1473		rdma0: rdma@14007000 {
1474			compatible = "mediatek,mt8192-disp-rdma",
1475				     "mediatek,mt8183-disp-rdma";
1476			reg = <0 0x14007000 0 0x1000>;
1477			interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH 0>;
1478			clocks = <&mmsys CLK_MM_DISP_RDMA0>;
1479			iommus = <&iommu0 M4U_PORT_L0_DISP_RDMA0>;
1480			mediatek,rdma-fifo-size = <5120>;
1481			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1482			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x7000 0x1000>;
1483		};
1484
1485		color0: color@14009000 {
1486			compatible = "mediatek,mt8192-disp-color",
1487				     "mediatek,mt8173-disp-color";
1488			reg = <0 0x14009000 0 0x1000>;
1489			interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH 0>;
1490			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1491			clocks = <&mmsys CLK_MM_DISP_COLOR0>;
1492			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>;
1493		};
1494
1495		ccorr0: ccorr@1400a000 {
1496			compatible = "mediatek,mt8192-disp-ccorr";
1497			reg = <0 0x1400a000 0 0x1000>;
1498			interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH 0>;
1499			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1500			clocks = <&mmsys CLK_MM_DISP_CCORR0>;
1501			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xa000 0x1000>;
1502		};
1503
1504		aal0: aal@1400b000 {
1505			compatible = "mediatek,mt8192-disp-aal",
1506				     "mediatek,mt8183-disp-aal";
1507			reg = <0 0x1400b000 0 0x1000>;
1508			interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH 0>;
1509			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1510			clocks = <&mmsys CLK_MM_DISP_AAL0>;
1511			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xb000 0x1000>;
1512		};
1513
1514		gamma0: gamma@1400c000 {
1515			compatible = "mediatek,mt8192-disp-gamma",
1516				     "mediatek,mt8183-disp-gamma";
1517			reg = <0 0x1400c000 0 0x1000>;
1518			interrupts = <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH 0>;
1519			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1520			clocks = <&mmsys CLK_MM_DISP_GAMMA0>;
1521			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
1522		};
1523
1524		postmask0: postmask@1400d000 {
1525			compatible = "mediatek,mt8192-disp-postmask";
1526			reg = <0 0x1400d000 0 0x1000>;
1527			interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>;
1528			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1529			clocks = <&mmsys CLK_MM_DISP_POSTMASK0>;
1530			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xd000 0x1000>;
1531		};
1532
1533		dither0: dither@1400e000 {
1534			compatible = "mediatek,mt8192-disp-dither",
1535				     "mediatek,mt8183-disp-dither";
1536			reg = <0 0x1400e000 0 0x1000>;
1537			interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH 0>;
1538			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1539			clocks = <&mmsys CLK_MM_DISP_DITHER0>;
1540			mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>;
1541		};
1542
1543		dsi0: dsi@14010000 {
1544			compatible = "mediatek,mt8183-dsi";
1545			reg = <0 0x14010000 0 0x1000>;
1546			interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>;
1547			clocks = <&mmsys CLK_MM_DSI0>,
1548				 <&mmsys CLK_MM_DSI_DSI0>,
1549				 <&mipi_tx0>;
1550			clock-names = "engine", "digital", "hs";
1551			phys = <&mipi_tx0>;
1552			phy-names = "dphy";
1553			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1554			resets = <&mmsys MT8192_MMSYS_SW0_RST_B_DISP_DSI0>;
1555			status = "disabled";
1556
1557			port {
1558				dsi_out: endpoint { };
1559			};
1560		};
1561
1562		ovl_2l2: ovl@14014000 {
1563			compatible = "mediatek,mt8192-disp-ovl-2l";
1564			reg = <0 0x14014000 0 0x1000>;
1565			interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH 0>;
1566			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1567			clocks = <&mmsys CLK_MM_DISP_OVL2_2L>;
1568			iommus = <&iommu0 M4U_PORT_L1_OVL_2L_RDMA2>,
1569				 <&iommu0 M4U_PORT_L1_OVL_2L_RDMA2_HDR>;
1570			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x4000 0x1000>;
1571		};
1572
1573		rdma4: rdma@14015000 {
1574			compatible = "mediatek,mt8192-disp-rdma",
1575				     "mediatek,mt8183-disp-rdma";
1576			reg = <0 0x14015000 0 0x1000>;
1577			interrupts = <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH 0>;
1578			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1579			clocks = <&mmsys CLK_MM_DISP_RDMA4>;
1580			iommus = <&iommu0 M4U_PORT_L1_DISP_RDMA4>;
1581			mediatek,rdma-fifo-size = <2048>;
1582			mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>;
1583		};
1584
1585		dpi0: dpi@14016000 {
1586			compatible = "mediatek,mt8192-dpi";
1587			reg = <0 0x14016000 0 0x1000>;
1588			interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 0>;
1589			clocks = <&mmsys CLK_MM_DPI_DPI0>,
1590				 <&mmsys CLK_MM_DISP_DPI0>,
1591				 <&apmixedsys CLK_APMIXED_TVDPLL>;
1592			clock-names = "pixel", "engine", "pll";
1593			status = "disabled";
1594		};
1595
1596		iommu0: m4u@1401d000 {
1597			compatible = "mediatek,mt8192-m4u";
1598			reg = <0 0x1401d000 0 0x1000>;
1599			mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
1600					 <&larb4>, <&larb5>, <&larb7>,
1601					 <&larb9>, <&larb11>, <&larb13>,
1602					 <&larb14>, <&larb16>, <&larb17>,
1603					 <&larb18>, <&larb19>, <&larb20>;
1604			interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
1605			clocks = <&mmsys CLK_MM_SMI_IOMMU>;
1606			clock-names = "bclk";
1607			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1608			#iommu-cells = <1>;
1609		};
1610
1611		imgsys: clock-controller@15020000 {
1612			compatible = "mediatek,mt8192-imgsys";
1613			reg = <0 0x15020000 0 0x1000>;
1614			#clock-cells = <1>;
1615		};
1616
1617		larb9: larb@1502e000 {
1618			compatible = "mediatek,mt8192-smi-larb";
1619			reg = <0 0x1502e000 0 0x1000>;
1620			mediatek,larb-id = <9>;
1621			mediatek,smi = <&smi_common>;
1622			clocks = <&imgsys CLK_IMG_LARB9>,
1623				 <&imgsys CLK_IMG_LARB9>;
1624			clock-names = "apb", "smi";
1625			power-domains = <&spm MT8192_POWER_DOMAIN_ISP>;
1626		};
1627
1628		imgsys2: clock-controller@15820000 {
1629			compatible = "mediatek,mt8192-imgsys2";
1630			reg = <0 0x15820000 0 0x1000>;
1631			#clock-cells = <1>;
1632		};
1633
1634		larb11: larb@1582e000 {
1635			compatible = "mediatek,mt8192-smi-larb";
1636			reg = <0 0x1582e000 0 0x1000>;
1637			mediatek,larb-id = <11>;
1638			mediatek,smi = <&smi_common>;
1639			clocks = <&imgsys2 CLK_IMG2_LARB11>,
1640				 <&imgsys2 CLK_IMG2_LARB11>;
1641			clock-names = "apb", "smi";
1642			power-domains = <&spm MT8192_POWER_DOMAIN_ISP2>;
1643		};
1644
1645		vcodec_dec: video-codec@16000000 {
1646			compatible = "mediatek,mt8192-vcodec-dec";
1647			reg = <0 0x16000000 0 0x1000>;
1648			mediatek,scp = <&scp>;
1649			iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>;
1650			#address-cells = <2>;
1651			#size-cells = <2>;
1652			ranges = <0 0 0 0x16000000 0 0x26000>;
1653
1654			video-codec@10000 {
1655				compatible = "mediatek,mtk-vcodec-lat";
1656				reg = <0x0 0x10000 0 0x800>;
1657				interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH 0>;
1658				iommus = <&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD_EXT>,
1659					 <&iommu0 M4U_PORT_L5_VDEC_LAT0_VLD2_EXT>,
1660					 <&iommu0 M4U_PORT_L5_VDEC_LAT0_AVC_MV_EXT>,
1661					 <&iommu0 M4U_PORT_L5_VDEC_LAT0_PRED_RD_EXT>,
1662					 <&iommu0 M4U_PORT_L5_VDEC_LAT0_TILE_EXT>,
1663					 <&iommu0 M4U_PORT_L5_VDEC_LAT0_WDMA_EXT>,
1664					 <&iommu0 M4U_PORT_L5_VDEC_LAT0_RG_CTRL_DMA_EXT>,
1665					 <&iommu0 M4U_PORT_L5_VDEC_UFO_ENC_EXT>;
1666				clocks = <&topckgen CLK_TOP_VDEC_SEL>,
1667					 <&vdecsys_soc CLK_VDEC_SOC_VDEC>,
1668					 <&vdecsys_soc CLK_VDEC_SOC_LAT>,
1669					 <&vdecsys_soc CLK_VDEC_SOC_LARB1>,
1670					 <&topckgen CLK_TOP_MAINPLL_D4>;
1671				clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
1672				assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
1673				assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
1674				power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
1675			};
1676
1677			video-codec@25000 {
1678				compatible = "mediatek,mtk-vcodec-core";
1679				reg = <0 0x25000 0 0x1000>;
1680				interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH 0>;
1681				iommus = <&iommu0 M4U_PORT_L4_VDEC_MC_EXT>,
1682					 <&iommu0 M4U_PORT_L4_VDEC_UFO_EXT>,
1683					 <&iommu0 M4U_PORT_L4_VDEC_PP_EXT>,
1684					 <&iommu0 M4U_PORT_L4_VDEC_PRED_RD_EXT>,
1685					 <&iommu0 M4U_PORT_L4_VDEC_PRED_WR_EXT>,
1686					 <&iommu0 M4U_PORT_L4_VDEC_PPWRAP_EXT>,
1687					 <&iommu0 M4U_PORT_L4_VDEC_TILE_EXT>,
1688					 <&iommu0 M4U_PORT_L4_VDEC_VLD_EXT>,
1689					 <&iommu0 M4U_PORT_L4_VDEC_VLD2_EXT>,
1690					 <&iommu0 M4U_PORT_L4_VDEC_AVC_MV_EXT>,
1691					 <&iommu0 M4U_PORT_L4_VDEC_RG_CTRL_DMA_EXT>;
1692				clocks = <&topckgen CLK_TOP_VDEC_SEL>,
1693					 <&vdecsys CLK_VDEC_VDEC>,
1694					 <&vdecsys CLK_VDEC_LAT>,
1695					 <&vdecsys CLK_VDEC_LARB1>,
1696					 <&topckgen CLK_TOP_MAINPLL_D4>;
1697				clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
1698				assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
1699				assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
1700				power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
1701			};
1702		};
1703
1704		larb5: larb@1600d000 {
1705			compatible = "mediatek,mt8192-smi-larb";
1706			reg = <0 0x1600d000 0 0x1000>;
1707			mediatek,larb-id = <5>;
1708			mediatek,smi = <&smi_common>;
1709			clocks = <&vdecsys_soc CLK_VDEC_SOC_LARB1>,
1710				 <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
1711			clock-names = "apb", "smi";
1712			power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
1713		};
1714
1715		vdecsys_soc: clock-controller@1600f000 {
1716			compatible = "mediatek,mt8192-vdecsys_soc";
1717			reg = <0 0x1600f000 0 0x1000>;
1718			#clock-cells = <1>;
1719		};
1720
1721		larb4: larb@1602e000 {
1722			compatible = "mediatek,mt8192-smi-larb";
1723			reg = <0 0x1602e000 0 0x1000>;
1724			mediatek,larb-id = <4>;
1725			mediatek,smi = <&smi_common>;
1726			clocks = <&vdecsys CLK_VDEC_SOC_LARB1>,
1727				 <&vdecsys CLK_VDEC_SOC_LARB1>;
1728			clock-names = "apb", "smi";
1729			power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
1730		};
1731
1732		vdecsys: clock-controller@1602f000 {
1733			compatible = "mediatek,mt8192-vdecsys";
1734			reg = <0 0x1602f000 0 0x1000>;
1735			#clock-cells = <1>;
1736		};
1737
1738		vencsys: clock-controller@17000000 {
1739			compatible = "mediatek,mt8192-vencsys";
1740			reg = <0 0x17000000 0 0x1000>;
1741			#clock-cells = <1>;
1742		};
1743
1744		larb7: larb@17010000 {
1745			compatible = "mediatek,mt8192-smi-larb";
1746			reg = <0 0x17010000 0 0x1000>;
1747			mediatek,larb-id = <7>;
1748			mediatek,smi = <&smi_common>;
1749			clocks = <&vencsys CLK_VENC_SET0_LARB>,
1750				 <&vencsys CLK_VENC_SET1_VENC>;
1751			clock-names = "apb", "smi";
1752			power-domains = <&spm MT8192_POWER_DOMAIN_VENC>;
1753		};
1754
1755		vcodec_enc: vcodec@17020000 {
1756			compatible = "mediatek,mt8192-vcodec-enc";
1757			reg = <0 0x17020000 0 0x2000>;
1758			iommus = <&iommu0 M4U_PORT_L7_VENC_RCPU>,
1759				 <&iommu0 M4U_PORT_L7_VENC_REC>,
1760				 <&iommu0 M4U_PORT_L7_VENC_BSDMA>,
1761				 <&iommu0 M4U_PORT_L7_VENC_SV_COMV>,
1762				 <&iommu0 M4U_PORT_L7_VENC_RD_COMV>,
1763				 <&iommu0 M4U_PORT_L7_VENC_CUR_LUMA>,
1764				 <&iommu0 M4U_PORT_L7_VENC_CUR_CHROMA>,
1765				 <&iommu0 M4U_PORT_L7_VENC_REF_LUMA>,
1766				 <&iommu0 M4U_PORT_L7_VENC_REF_CHROMA>,
1767				 <&iommu0 M4U_PORT_L7_VENC_SUB_R_LUMA>,
1768				 <&iommu0 M4U_PORT_L7_VENC_SUB_W_LUMA>;
1769			interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 0>;
1770			mediatek,scp = <&scp>;
1771			power-domains = <&spm MT8192_POWER_DOMAIN_VENC>;
1772			clocks = <&vencsys CLK_VENC_SET1_VENC>;
1773			clock-names = "venc-set1";
1774			assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>;
1775			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4>;
1776		};
1777
1778		camsys: clock-controller@1a000000 {
1779			compatible = "mediatek,mt8192-camsys";
1780			reg = <0 0x1a000000 0 0x1000>;
1781			#clock-cells = <1>;
1782		};
1783
1784		larb13: larb@1a001000 {
1785			compatible = "mediatek,mt8192-smi-larb";
1786			reg = <0 0x1a001000 0 0x1000>;
1787			mediatek,larb-id = <13>;
1788			mediatek,smi = <&smi_common>;
1789			clocks = <&camsys CLK_CAM_CAM>,
1790				 <&camsys CLK_CAM_LARB13>;
1791			clock-names = "apb", "smi";
1792			power-domains = <&spm MT8192_POWER_DOMAIN_CAM>;
1793		};
1794
1795		larb14: larb@1a002000 {
1796			compatible = "mediatek,mt8192-smi-larb";
1797			reg = <0 0x1a002000 0 0x1000>;
1798			mediatek,larb-id = <14>;
1799			mediatek,smi = <&smi_common>;
1800			clocks = <&camsys CLK_CAM_CAM>,
1801				 <&camsys CLK_CAM_LARB14>;
1802			clock-names = "apb", "smi";
1803			power-domains = <&spm MT8192_POWER_DOMAIN_CAM>;
1804		};
1805
1806		larb16: larb@1a00f000 {
1807			compatible = "mediatek,mt8192-smi-larb";
1808			reg = <0 0x1a00f000 0 0x1000>;
1809			mediatek,larb-id = <16>;
1810			mediatek,smi = <&smi_common>;
1811			clocks = <&camsys_rawa CLK_CAM_RAWA_CAM>,
1812				 <&camsys_rawa CLK_CAM_RAWA_LARBX>;
1813			clock-names = "apb", "smi";
1814			power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWA>;
1815		};
1816
1817		larb17: larb@1a010000 {
1818			compatible = "mediatek,mt8192-smi-larb";
1819			reg = <0 0x1a010000 0 0x1000>;
1820			mediatek,larb-id = <17>;
1821			mediatek,smi = <&smi_common>;
1822			clocks = <&camsys_rawb CLK_CAM_RAWB_CAM>,
1823				 <&camsys_rawb CLK_CAM_RAWB_LARBX>;
1824			clock-names = "apb", "smi";
1825			power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWB>;
1826		};
1827
1828		larb18: larb@1a011000 {
1829			compatible = "mediatek,mt8192-smi-larb";
1830			reg = <0 0x1a011000 0 0x1000>;
1831			mediatek,larb-id = <18>;
1832			mediatek,smi = <&smi_common>;
1833			clocks = <&camsys_rawc CLK_CAM_RAWC_LARBX>,
1834				 <&camsys_rawc CLK_CAM_RAWC_CAM>;
1835			clock-names = "apb", "smi";
1836			power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWC>;
1837		};
1838
1839		camsys_rawa: clock-controller@1a04f000 {
1840			compatible = "mediatek,mt8192-camsys_rawa";
1841			reg = <0 0x1a04f000 0 0x1000>;
1842			#clock-cells = <1>;
1843		};
1844
1845		camsys_rawb: clock-controller@1a06f000 {
1846			compatible = "mediatek,mt8192-camsys_rawb";
1847			reg = <0 0x1a06f000 0 0x1000>;
1848			#clock-cells = <1>;
1849		};
1850
1851		camsys_rawc: clock-controller@1a08f000 {
1852			compatible = "mediatek,mt8192-camsys_rawc";
1853			reg = <0 0x1a08f000 0 0x1000>;
1854			#clock-cells = <1>;
1855		};
1856
1857		ipesys: clock-controller@1b000000 {
1858			compatible = "mediatek,mt8192-ipesys";
1859			reg = <0 0x1b000000 0 0x1000>;
1860			#clock-cells = <1>;
1861		};
1862
1863		larb20: larb@1b00f000 {
1864			compatible = "mediatek,mt8192-smi-larb";
1865			reg = <0 0x1b00f000 0 0x1000>;
1866			mediatek,larb-id = <20>;
1867			mediatek,smi = <&smi_common>;
1868			clocks = <&ipesys CLK_IPE_SMI_SUBCOM>,
1869				 <&ipesys CLK_IPE_LARB20>;
1870			clock-names = "apb", "smi";
1871			power-domains = <&spm MT8192_POWER_DOMAIN_IPE>;
1872		};
1873
1874		larb19: larb@1b10f000 {
1875			compatible = "mediatek,mt8192-smi-larb";
1876			reg = <0 0x1b10f000 0 0x1000>;
1877			mediatek,larb-id = <19>;
1878			mediatek,smi = <&smi_common>;
1879			clocks = <&ipesys CLK_IPE_SMI_SUBCOM>,
1880				 <&ipesys CLK_IPE_LARB19>;
1881			clock-names = "apb", "smi";
1882			power-domains = <&spm MT8192_POWER_DOMAIN_IPE>;
1883		};
1884
1885		mdpsys: clock-controller@1f000000 {
1886			compatible = "mediatek,mt8192-mdpsys";
1887			reg = <0 0x1f000000 0 0x1000>;
1888			#clock-cells = <1>;
1889		};
1890
1891		larb2: larb@1f002000 {
1892			compatible = "mediatek,mt8192-smi-larb";
1893			reg = <0 0x1f002000 0 0x1000>;
1894			mediatek,larb-id = <2>;
1895			mediatek,smi = <&smi_common>;
1896			clocks = <&mdpsys CLK_MDP_SMI0>,
1897				 <&mdpsys CLK_MDP_SMI0>;
1898			clock-names = "apb", "smi";
1899			power-domains = <&spm MT8192_POWER_DOMAIN_MDP>;
1900		};
1901	};
1902};
1903