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/interrupt-controller/arm-gic.h>
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/memory/mt8192-larb-port.h>
12#include <dt-bindings/pinctrl/mt8192-pinfunc.h>
13#include <dt-bindings/phy/phy.h>
14#include <dt-bindings/power/mt8192-power.h>
15
16/ {
17	compatible = "mediatek,mt8192";
18	interrupt-parent = <&gic>;
19	#address-cells = <2>;
20	#size-cells = <2>;
21
22	clk26m: oscillator0 {
23		compatible = "fixed-clock";
24		#clock-cells = <0>;
25		clock-frequency = <26000000>;
26		clock-output-names = "clk26m";
27	};
28
29	clk32k: oscillator1 {
30		compatible = "fixed-clock";
31		#clock-cells = <0>;
32		clock-frequency = <32768>;
33		clock-output-names = "clk32k";
34	};
35
36	cpus {
37		#address-cells = <1>;
38		#size-cells = <0>;
39
40		cpu0: cpu@0 {
41			device_type = "cpu";
42			compatible = "arm,cortex-a55";
43			reg = <0x000>;
44			enable-method = "psci";
45			clock-frequency = <1701000000>;
46			cpu-idle-states = <&cpuoff_l &clusteroff_l>;
47			next-level-cache = <&l2_0>;
48			capacity-dmips-mhz = <530>;
49		};
50
51		cpu1: cpu@100 {
52			device_type = "cpu";
53			compatible = "arm,cortex-a55";
54			reg = <0x100>;
55			enable-method = "psci";
56			clock-frequency = <1701000000>;
57			cpu-idle-states = <&cpuoff_l &clusteroff_l>;
58			next-level-cache = <&l2_0>;
59			capacity-dmips-mhz = <530>;
60		};
61
62		cpu2: cpu@200 {
63			device_type = "cpu";
64			compatible = "arm,cortex-a55";
65			reg = <0x200>;
66			enable-method = "psci";
67			clock-frequency = <1701000000>;
68			cpu-idle-states = <&cpuoff_l &clusteroff_l>;
69			next-level-cache = <&l2_0>;
70			capacity-dmips-mhz = <530>;
71		};
72
73		cpu3: cpu@300 {
74			device_type = "cpu";
75			compatible = "arm,cortex-a55";
76			reg = <0x300>;
77			enable-method = "psci";
78			clock-frequency = <1701000000>;
79			cpu-idle-states = <&cpuoff_l &clusteroff_l>;
80			next-level-cache = <&l2_0>;
81			capacity-dmips-mhz = <530>;
82		};
83
84		cpu4: cpu@400 {
85			device_type = "cpu";
86			compatible = "arm,cortex-a76";
87			reg = <0x400>;
88			enable-method = "psci";
89			clock-frequency = <2171000000>;
90			cpu-idle-states = <&cpuoff_b &clusteroff_b>;
91			next-level-cache = <&l2_1>;
92			capacity-dmips-mhz = <1024>;
93		};
94
95		cpu5: cpu@500 {
96			device_type = "cpu";
97			compatible = "arm,cortex-a76";
98			reg = <0x500>;
99			enable-method = "psci";
100			clock-frequency = <2171000000>;
101			cpu-idle-states = <&cpuoff_b &clusteroff_b>;
102			next-level-cache = <&l2_1>;
103			capacity-dmips-mhz = <1024>;
104		};
105
106		cpu6: cpu@600 {
107			device_type = "cpu";
108			compatible = "arm,cortex-a76";
109			reg = <0x600>;
110			enable-method = "psci";
111			clock-frequency = <2171000000>;
112			cpu-idle-states = <&cpuoff_b &clusteroff_b>;
113			next-level-cache = <&l2_1>;
114			capacity-dmips-mhz = <1024>;
115		};
116
117		cpu7: cpu@700 {
118			device_type = "cpu";
119			compatible = "arm,cortex-a76";
120			reg = <0x700>;
121			enable-method = "psci";
122			clock-frequency = <2171000000>;
123			cpu-idle-states = <&cpuoff_b &clusteroff_b>;
124			next-level-cache = <&l2_1>;
125			capacity-dmips-mhz = <1024>;
126		};
127
128		cpu-map {
129			cluster0 {
130				core0 {
131					cpu = <&cpu0>;
132				};
133				core1 {
134					cpu = <&cpu1>;
135				};
136				core2 {
137					cpu = <&cpu2>;
138				};
139				core3 {
140					cpu = <&cpu3>;
141				};
142			};
143
144			cluster1 {
145				core0 {
146					cpu = <&cpu4>;
147				};
148				core1 {
149					cpu = <&cpu5>;
150				};
151				core2 {
152					cpu = <&cpu6>;
153				};
154				core3 {
155					cpu = <&cpu7>;
156				};
157			};
158		};
159
160		l2_0: l2-cache0 {
161			compatible = "cache";
162			next-level-cache = <&l3_0>;
163		};
164
165		l2_1: l2-cache1 {
166			compatible = "cache";
167			next-level-cache = <&l3_0>;
168		};
169
170		l3_0: l3-cache {
171			compatible = "cache";
172		};
173
174		idle-states {
175			entry-method = "arm,psci";
176			cpuoff_l: cpuoff_l {
177				compatible = "arm,idle-state";
178				arm,psci-suspend-param = <0x00010001>;
179				local-timer-stop;
180				entry-latency-us = <55>;
181				exit-latency-us = <140>;
182				min-residency-us = <780>;
183			};
184			cpuoff_b: cpuoff_b {
185				compatible = "arm,idle-state";
186				arm,psci-suspend-param = <0x00010001>;
187				local-timer-stop;
188				entry-latency-us = <35>;
189				exit-latency-us = <145>;
190				min-residency-us = <720>;
191			};
192			clusteroff_l: clusteroff_l {
193				compatible = "arm,idle-state";
194				arm,psci-suspend-param = <0x01010002>;
195				local-timer-stop;
196				entry-latency-us = <60>;
197				exit-latency-us = <155>;
198				min-residency-us = <860>;
199			};
200			clusteroff_b: clusteroff_b {
201				compatible = "arm,idle-state";
202				arm,psci-suspend-param = <0x01010002>;
203				local-timer-stop;
204				entry-latency-us = <40>;
205				exit-latency-us = <155>;
206				min-residency-us = <780>;
207			};
208		};
209	};
210
211	pmu-a55 {
212		compatible = "arm,cortex-a55-pmu";
213		interrupt-parent = <&gic>;
214		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
215	};
216
217	pmu-a76 {
218		compatible = "arm,cortex-a76-pmu";
219		interrupt-parent = <&gic>;
220		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
221	};
222
223	psci {
224		compatible = "arm,psci-1.0";
225		method = "smc";
226	};
227
228	timer: timer {
229		compatible = "arm,armv8-timer";
230		interrupt-parent = <&gic>;
231		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
232			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
233			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
234			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
235		clock-frequency = <13000000>;
236	};
237
238	soc {
239		#address-cells = <2>;
240		#size-cells = <2>;
241		compatible = "simple-bus";
242		ranges;
243
244		gic: interrupt-controller@c000000 {
245			compatible = "arm,gic-v3";
246			#interrupt-cells = <4>;
247			#redistributor-regions = <1>;
248			interrupt-parent = <&gic>;
249			interrupt-controller;
250			reg = <0 0x0c000000 0 0x40000>,
251			      <0 0x0c040000 0 0x200000>;
252			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
253
254			ppi-partitions {
255				ppi_cluster0: interrupt-partition-0 {
256					affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
257				};
258				ppi_cluster1: interrupt-partition-1 {
259					affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
260				};
261			};
262		};
263
264		topckgen: syscon@10000000 {
265			compatible = "mediatek,mt8192-topckgen", "syscon";
266			reg = <0 0x10000000 0 0x1000>;
267			#clock-cells = <1>;
268		};
269
270		infracfg: syscon@10001000 {
271			compatible = "mediatek,mt8192-infracfg", "syscon";
272			reg = <0 0x10001000 0 0x1000>;
273			#clock-cells = <1>;
274		};
275
276		pericfg: syscon@10003000 {
277			compatible = "mediatek,mt8192-pericfg", "syscon";
278			reg = <0 0x10003000 0 0x1000>;
279			#clock-cells = <1>;
280		};
281
282		pio: pinctrl@10005000 {
283			compatible = "mediatek,mt8192-pinctrl";
284			reg = <0 0x10005000 0 0x1000>,
285			      <0 0x11c20000 0 0x1000>,
286			      <0 0x11d10000 0 0x1000>,
287			      <0 0x11d30000 0 0x1000>,
288			      <0 0x11d40000 0 0x1000>,
289			      <0 0x11e20000 0 0x1000>,
290			      <0 0x11e70000 0 0x1000>,
291			      <0 0x11ea0000 0 0x1000>,
292			      <0 0x11f20000 0 0x1000>,
293			      <0 0x11f30000 0 0x1000>,
294			      <0 0x1000b000 0 0x1000>;
295			reg-names = "iocfg0", "iocfg_rm", "iocfg_bm",
296				    "iocfg_bl", "iocfg_br", "iocfg_lm",
297				    "iocfg_lb", "iocfg_rt", "iocfg_lt",
298				    "iocfg_tl", "eint";
299			gpio-controller;
300			#gpio-cells = <2>;
301			gpio-ranges = <&pio 0 0 220>;
302			interrupt-controller;
303			interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH 0>;
304			#interrupt-cells = <2>;
305		};
306
307		scpsys: syscon@10006000 {
308			compatible = "syscon", "simple-mfd";
309			reg = <0 0x10006000 0 0x1000>;
310			#power-domain-cells = <1>;
311
312			/* System Power Manager */
313			spm: power-controller {
314				compatible = "mediatek,mt8192-power-controller";
315				#address-cells = <1>;
316				#size-cells = <0>;
317				#power-domain-cells = <1>;
318
319				/* power domain of the SoC */
320				power-domain@MT8192_POWER_DOMAIN_AUDIO {
321					reg = <MT8192_POWER_DOMAIN_AUDIO>;
322					clocks = <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
323						 <&infracfg CLK_INFRA_AUDIO_26M_B>,
324						 <&infracfg CLK_INFRA_AUDIO>;
325					clock-names = "audio", "audio1", "audio2";
326					mediatek,infracfg = <&infracfg>;
327					#power-domain-cells = <0>;
328				};
329
330				power-domain@MT8192_POWER_DOMAIN_CONN {
331					reg = <MT8192_POWER_DOMAIN_CONN>;
332					clocks = <&infracfg CLK_INFRA_PMIC_CONN>;
333					clock-names = "conn";
334					mediatek,infracfg = <&infracfg>;
335					#power-domain-cells = <0>;
336				};
337
338				power-domain@MT8192_POWER_DOMAIN_MFG0 {
339					reg = <MT8192_POWER_DOMAIN_MFG0>;
340					clocks = <&topckgen CLK_TOP_MFG_PLL_SEL>;
341					clock-names = "mfg";
342					#address-cells = <1>;
343					#size-cells = <0>;
344					#power-domain-cells = <1>;
345
346					power-domain@MT8192_POWER_DOMAIN_MFG1 {
347						reg = <MT8192_POWER_DOMAIN_MFG1>;
348						mediatek,infracfg = <&infracfg>;
349						#address-cells = <1>;
350						#size-cells = <0>;
351						#power-domain-cells = <1>;
352
353						power-domain@MT8192_POWER_DOMAIN_MFG2 {
354							reg = <MT8192_POWER_DOMAIN_MFG2>;
355							#power-domain-cells = <0>;
356						};
357
358						power-domain@MT8192_POWER_DOMAIN_MFG3 {
359							reg = <MT8192_POWER_DOMAIN_MFG3>;
360							#power-domain-cells = <0>;
361						};
362
363						power-domain@MT8192_POWER_DOMAIN_MFG4 {
364							reg = <MT8192_POWER_DOMAIN_MFG4>;
365							#power-domain-cells = <0>;
366						};
367
368						power-domain@MT8192_POWER_DOMAIN_MFG5 {
369							reg = <MT8192_POWER_DOMAIN_MFG5>;
370							#power-domain-cells = <0>;
371						};
372
373						power-domain@MT8192_POWER_DOMAIN_MFG6 {
374							reg = <MT8192_POWER_DOMAIN_MFG6>;
375							#power-domain-cells = <0>;
376						};
377					};
378				};
379
380				power-domain@MT8192_POWER_DOMAIN_DISP {
381					reg = <MT8192_POWER_DOMAIN_DISP>;
382					clocks = <&topckgen CLK_TOP_DISP_SEL>,
383						 <&mmsys CLK_MM_SMI_INFRA>,
384						 <&mmsys CLK_MM_SMI_COMMON>,
385						 <&mmsys CLK_MM_SMI_GALS>,
386						 <&mmsys CLK_MM_SMI_IOMMU>;
387					clock-names = "disp", "disp-0", "disp-1", "disp-2",
388						      "disp-3";
389					mediatek,infracfg = <&infracfg>;
390					#address-cells = <1>;
391					#size-cells = <0>;
392					#power-domain-cells = <1>;
393
394					power-domain@MT8192_POWER_DOMAIN_IPE {
395						reg = <MT8192_POWER_DOMAIN_IPE>;
396						clocks = <&topckgen CLK_TOP_IPE_SEL>,
397							 <&ipesys CLK_IPE_LARB19>,
398							 <&ipesys CLK_IPE_LARB20>,
399							 <&ipesys CLK_IPE_SMI_SUBCOM>,
400							 <&ipesys CLK_IPE_GALS>;
401						clock-names = "ipe", "ipe-0", "ipe-1", "ipe-2",
402							      "ipe-3";
403						mediatek,infracfg = <&infracfg>;
404						#power-domain-cells = <0>;
405					};
406
407					power-domain@MT8192_POWER_DOMAIN_ISP {
408						reg = <MT8192_POWER_DOMAIN_ISP>;
409						clocks = <&topckgen CLK_TOP_IMG1_SEL>,
410							 <&imgsys CLK_IMG_LARB9>,
411							 <&imgsys CLK_IMG_GALS>;
412						clock-names = "isp", "isp-0", "isp-1";
413						mediatek,infracfg = <&infracfg>;
414						#power-domain-cells = <0>;
415					};
416
417					power-domain@MT8192_POWER_DOMAIN_ISP2 {
418						reg = <MT8192_POWER_DOMAIN_ISP2>;
419						clocks = <&topckgen CLK_TOP_IMG2_SEL>,
420							 <&imgsys2 CLK_IMG2_LARB11>,
421							 <&imgsys2 CLK_IMG2_GALS>;
422						clock-names = "isp2", "isp2-0", "isp2-1";
423						mediatek,infracfg = <&infracfg>;
424						#power-domain-cells = <0>;
425					};
426
427					power-domain@MT8192_POWER_DOMAIN_MDP {
428						reg = <MT8192_POWER_DOMAIN_MDP>;
429						clocks = <&topckgen CLK_TOP_MDP_SEL>,
430							 <&mdpsys CLK_MDP_SMI0>;
431						clock-names = "mdp", "mdp-0";
432						mediatek,infracfg = <&infracfg>;
433						#power-domain-cells = <0>;
434					};
435
436					power-domain@MT8192_POWER_DOMAIN_VENC {
437						reg = <MT8192_POWER_DOMAIN_VENC>;
438						clocks = <&topckgen CLK_TOP_VENC_SEL>,
439							 <&vencsys CLK_VENC_SET1_VENC>;
440						clock-names = "venc", "venc-0";
441						mediatek,infracfg = <&infracfg>;
442						#power-domain-cells = <0>;
443					};
444
445					power-domain@MT8192_POWER_DOMAIN_VDEC {
446						reg = <MT8192_POWER_DOMAIN_VDEC>;
447						clocks = <&topckgen CLK_TOP_VDEC_SEL>,
448							 <&vdecsys_soc CLK_VDEC_SOC_VDEC>,
449							 <&vdecsys_soc CLK_VDEC_SOC_LAT>,
450							 <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
451						clock-names = "vdec", "vdec-0", "vdec-1", "vdec-2";
452						mediatek,infracfg = <&infracfg>;
453						#address-cells = <1>;
454						#size-cells = <0>;
455						#power-domain-cells = <1>;
456
457						power-domain@MT8192_POWER_DOMAIN_VDEC2 {
458							reg = <MT8192_POWER_DOMAIN_VDEC2>;
459							clocks = <&vdecsys CLK_VDEC_VDEC>,
460								 <&vdecsys CLK_VDEC_LAT>,
461								 <&vdecsys CLK_VDEC_LARB1>;
462							clock-names = "vdec2-0", "vdec2-1",
463								      "vdec2-2";
464							#power-domain-cells = <0>;
465						};
466					};
467
468					power-domain@MT8192_POWER_DOMAIN_CAM {
469						reg = <MT8192_POWER_DOMAIN_CAM>;
470						clocks = <&topckgen CLK_TOP_CAM_SEL>,
471							 <&camsys CLK_CAM_LARB13>,
472							 <&camsys CLK_CAM_LARB14>,
473							 <&camsys CLK_CAM_CCU_GALS>,
474							 <&camsys CLK_CAM_CAM2MM_GALS>;
475						clock-names = "cam", "cam-0", "cam-1", "cam-2",
476							      "cam-3";
477						mediatek,infracfg = <&infracfg>;
478						#address-cells = <1>;
479						#size-cells = <0>;
480						#power-domain-cells = <1>;
481
482						power-domain@MT8192_POWER_DOMAIN_CAM_RAWA {
483							reg = <MT8192_POWER_DOMAIN_CAM_RAWA>;
484							clocks = <&camsys_rawa CLK_CAM_RAWA_LARBX>;
485							clock-names = "cam_rawa-0";
486							#power-domain-cells = <0>;
487						};
488
489						power-domain@MT8192_POWER_DOMAIN_CAM_RAWB {
490							reg = <MT8192_POWER_DOMAIN_CAM_RAWB>;
491							clocks = <&camsys_rawb CLK_CAM_RAWB_LARBX>;
492							clock-names = "cam_rawb-0";
493							#power-domain-cells = <0>;
494						};
495
496						power-domain@MT8192_POWER_DOMAIN_CAM_RAWC {
497							reg = <MT8192_POWER_DOMAIN_CAM_RAWC>;
498							clocks = <&camsys_rawc CLK_CAM_RAWC_LARBX>;
499							clock-names = "cam_rawc-0";
500							#power-domain-cells = <0>;
501						};
502					};
503				};
504			};
505		};
506
507		watchdog: watchdog@10007000 {
508			compatible = "mediatek,mt8192-wdt";
509			reg = <0 0x10007000 0 0x100>;
510			#reset-cells = <1>;
511		};
512
513		apmixedsys: syscon@1000c000 {
514			compatible = "mediatek,mt8192-apmixedsys", "syscon";
515			reg = <0 0x1000c000 0 0x1000>;
516			#clock-cells = <1>;
517		};
518
519		systimer: timer@10017000 {
520			compatible = "mediatek,mt8192-timer",
521				     "mediatek,mt6765-timer";
522			reg = <0 0x10017000 0 0x1000>;
523			interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>;
524			clocks = <&topckgen CLK_TOP_CSW_F26M_D2>;
525			clock-names = "clk13m";
526		};
527
528		pwrap: pwrap@10026000 {
529			compatible = "mediatek,mt6873-pwrap";
530			reg = <0 0x10026000 0 0x1000>;
531			reg-names = "pwrap";
532			interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
533			clocks = <&infracfg CLK_INFRA_PMIC_AP>,
534				 <&infracfg CLK_INFRA_PMIC_TMR>;
535			clock-names = "spi", "wrap";
536			assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC_SEL>;
537			assigned-clock-parents = <&topckgen CLK_TOP_OSC_D10>;
538		};
539
540		spmi: spmi@10027000 {
541			compatible = "mediatek,mt6873-spmi";
542			reg = <0 0x10027000 0 0x000e00>,
543			      <0 0x10029000 0 0x000100>;
544			reg-names = "pmif", "spmimst";
545			clocks = <&infracfg CLK_INFRA_PMIC_AP>,
546				 <&infracfg CLK_INFRA_PMIC_TMR>,
547				 <&topckgen CLK_TOP_SPMI_MST_SEL>;
548			clock-names = "pmif_sys_ck",
549				      "pmif_tmr_ck",
550				      "spmimst_clk_mux";
551			assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC_SEL>;
552			assigned-clock-parents = <&topckgen CLK_TOP_OSC_D10>;
553		};
554
555		scp_adsp: clock-controller@10720000 {
556			compatible = "mediatek,mt8192-scp_adsp";
557			reg = <0 0x10720000 0 0x1000>;
558			#clock-cells = <1>;
559		};
560
561		uart0: serial@11002000 {
562			compatible = "mediatek,mt8192-uart",
563				     "mediatek,mt6577-uart";
564			reg = <0 0x11002000 0 0x1000>;
565			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>;
566			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>;
567			clock-names = "baud", "bus";
568			status = "disabled";
569		};
570
571		uart1: serial@11003000 {
572			compatible = "mediatek,mt8192-uart",
573				     "mediatek,mt6577-uart";
574			reg = <0 0x11003000 0 0x1000>;
575			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
576			clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>;
577			clock-names = "baud", "bus";
578			status = "disabled";
579		};
580
581		imp_iic_wrap_c: clock-controller@11007000 {
582			compatible = "mediatek,mt8192-imp_iic_wrap_c";
583			reg = <0 0x11007000 0 0x1000>;
584			#clock-cells = <1>;
585		};
586
587		spi0: spi@1100a000 {
588			compatible = "mediatek,mt8192-spi",
589				     "mediatek,mt6765-spi";
590			#address-cells = <1>;
591			#size-cells = <0>;
592			reg = <0 0x1100a000 0 0x1000>;
593			interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH 0>;
594			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
595				 <&topckgen CLK_TOP_SPI_SEL>,
596				 <&infracfg CLK_INFRA_SPI0>;
597			clock-names = "parent-clk", "sel-clk", "spi-clk";
598			status = "disabled";
599		};
600
601		spi1: spi@11010000 {
602			compatible = "mediatek,mt8192-spi",
603				     "mediatek,mt6765-spi";
604			#address-cells = <1>;
605			#size-cells = <0>;
606			reg = <0 0x11010000 0 0x1000>;
607			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH 0>;
608			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
609				 <&topckgen CLK_TOP_SPI_SEL>,
610				 <&infracfg CLK_INFRA_SPI1>;
611			clock-names = "parent-clk", "sel-clk", "spi-clk";
612			status = "disabled";
613		};
614
615		spi2: spi@11012000 {
616			compatible = "mediatek,mt8192-spi",
617				     "mediatek,mt6765-spi";
618			#address-cells = <1>;
619			#size-cells = <0>;
620			reg = <0 0x11012000 0 0x1000>;
621			interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH 0>;
622			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
623				 <&topckgen CLK_TOP_SPI_SEL>,
624				 <&infracfg CLK_INFRA_SPI2>;
625			clock-names = "parent-clk", "sel-clk", "spi-clk";
626			status = "disabled";
627		};
628
629		spi3: spi@11013000 {
630			compatible = "mediatek,mt8192-spi",
631				     "mediatek,mt6765-spi";
632			#address-cells = <1>;
633			#size-cells = <0>;
634			reg = <0 0x11013000 0 0x1000>;
635			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH 0>;
636			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
637				 <&topckgen CLK_TOP_SPI_SEL>,
638				 <&infracfg CLK_INFRA_SPI3>;
639			clock-names = "parent-clk", "sel-clk", "spi-clk";
640			status = "disabled";
641		};
642
643		spi4: spi@11018000 {
644			compatible = "mediatek,mt8192-spi",
645				     "mediatek,mt6765-spi";
646			#address-cells = <1>;
647			#size-cells = <0>;
648			reg = <0 0x11018000 0 0x1000>;
649			interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH 0>;
650			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
651				 <&topckgen CLK_TOP_SPI_SEL>,
652				 <&infracfg CLK_INFRA_SPI4>;
653			clock-names = "parent-clk", "sel-clk", "spi-clk";
654			status = "disabled";
655		};
656
657		spi5: spi@11019000 {
658			compatible = "mediatek,mt8192-spi",
659				     "mediatek,mt6765-spi";
660			#address-cells = <1>;
661			#size-cells = <0>;
662			reg = <0 0x11019000 0 0x1000>;
663			interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH 0>;
664			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
665				 <&topckgen CLK_TOP_SPI_SEL>,
666				 <&infracfg CLK_INFRA_SPI5>;
667			clock-names = "parent-clk", "sel-clk", "spi-clk";
668			status = "disabled";
669		};
670
671		spi6: spi@1101d000 {
672			compatible = "mediatek,mt8192-spi",
673				     "mediatek,mt6765-spi";
674			#address-cells = <1>;
675			#size-cells = <0>;
676			reg = <0 0x1101d000 0 0x1000>;
677			interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH 0>;
678			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
679				 <&topckgen CLK_TOP_SPI_SEL>,
680				 <&infracfg CLK_INFRA_SPI6>;
681			clock-names = "parent-clk", "sel-clk", "spi-clk";
682			status = "disabled";
683		};
684
685		spi7: spi@1101e000 {
686			compatible = "mediatek,mt8192-spi",
687				     "mediatek,mt6765-spi";
688			#address-cells = <1>;
689			#size-cells = <0>;
690			reg = <0 0x1101e000 0 0x1000>;
691			interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH 0>;
692			clocks = <&topckgen CLK_TOP_MAINPLL_D5_D4>,
693				 <&topckgen CLK_TOP_SPI_SEL>,
694				 <&infracfg CLK_INFRA_SPI7>;
695			clock-names = "parent-clk", "sel-clk", "spi-clk";
696			status = "disabled";
697		};
698
699		scp: scp@10500000 {
700			compatible = "mediatek,mt8192-scp";
701			reg = <0 0x10500000 0 0x100000>,
702			      <0 0x10720000 0 0xe0000>,
703			      <0 0x10700000 0 0x8000>;
704			reg-names = "sram", "cfg", "l1tcm";
705			interrupts = <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH 0>;
706			clocks = <&infracfg CLK_INFRA_SCPSYS>;
707			clock-names = "main";
708			status = "disabled";
709		};
710
711		xhci: usb@11200000 {
712			compatible = "mediatek,mt8192-xhci",
713				     "mediatek,mtk-xhci";
714			reg = <0 0x11200000 0 0x1000>,
715			      <0 0x11203e00 0 0x0100>;
716			reg-names = "mac", "ippc";
717			interrupts-extended = <&gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
718			interrupt-names = "host";
719			phys = <&u2port0 PHY_TYPE_USB2>,
720			       <&u3port0 PHY_TYPE_USB3>;
721			assigned-clocks = <&topckgen CLK_TOP_USB_TOP_SEL>,
722					  <&topckgen CLK_TOP_SSUSB_XHCI_SEL>;
723			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
724						 <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
725			clocks = <&infracfg CLK_INFRA_SSUSB>,
726				 <&infracfg CLK_INFRA_SSUSB_XHCI>,
727				 <&apmixedsys CLK_APMIXED_USBPLL>;
728			clock-names = "sys_ck", "xhci_ck", "ref_ck";
729			wakeup-source;
730			mediatek,syscon-wakeup = <&pericfg 0x420 102>;
731			status = "disabled";
732		};
733
734		audsys: syscon@11210000 {
735			compatible = "mediatek,mt8192-audsys", "syscon";
736			reg = <0 0x11210000 0 0x2000>;
737			#clock-cells = <1>;
738
739			afe: mt8192-afe-pcm {
740				compatible = "mediatek,mt8192-audio";
741				interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 0>;
742				resets = <&watchdog 17>;
743				reset-names = "audiosys";
744				mediatek,apmixedsys = <&apmixedsys>;
745				mediatek,infracfg = <&infracfg>;
746				mediatek,topckgen = <&topckgen>;
747				power-domains = <&spm MT8192_POWER_DOMAIN_AUDIO>;
748				clocks = <&audsys CLK_AUD_AFE>,
749					 <&audsys CLK_AUD_DAC>,
750					 <&audsys CLK_AUD_DAC_PREDIS>,
751					 <&audsys CLK_AUD_ADC>,
752					 <&audsys CLK_AUD_ADDA6_ADC>,
753					 <&audsys CLK_AUD_22M>,
754					 <&audsys CLK_AUD_24M>,
755					 <&audsys CLK_AUD_APLL_TUNER>,
756					 <&audsys CLK_AUD_APLL2_TUNER>,
757					 <&audsys CLK_AUD_TDM>,
758					 <&audsys CLK_AUD_TML>,
759					 <&audsys CLK_AUD_NLE>,
760					 <&audsys CLK_AUD_DAC_HIRES>,
761					 <&audsys CLK_AUD_ADC_HIRES>,
762					 <&audsys CLK_AUD_ADC_HIRES_TML>,
763					 <&audsys CLK_AUD_ADDA6_ADC_HIRES>,
764					 <&audsys CLK_AUD_3RD_DAC>,
765					 <&audsys CLK_AUD_3RD_DAC_PREDIS>,
766					 <&audsys CLK_AUD_3RD_DAC_TML>,
767					 <&audsys CLK_AUD_3RD_DAC_HIRES>,
768					 <&infracfg CLK_INFRA_AUDIO>,
769					 <&infracfg CLK_INFRA_AUDIO_26M_B>,
770					 <&topckgen CLK_TOP_AUDIO_SEL>,
771					 <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
772					 <&topckgen CLK_TOP_MAINPLL_D4_D4>,
773					 <&topckgen CLK_TOP_AUD_1_SEL>,
774					 <&topckgen CLK_TOP_APLL1>,
775					 <&topckgen CLK_TOP_AUD_2_SEL>,
776					 <&topckgen CLK_TOP_APLL2>,
777					 <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
778					 <&topckgen CLK_TOP_APLL1_D4>,
779					 <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
780					 <&topckgen CLK_TOP_APLL2_D4>,
781					 <&topckgen CLK_TOP_APLL_I2S0_M_SEL>,
782					 <&topckgen CLK_TOP_APLL_I2S1_M_SEL>,
783					 <&topckgen CLK_TOP_APLL_I2S2_M_SEL>,
784					 <&topckgen CLK_TOP_APLL_I2S3_M_SEL>,
785					 <&topckgen CLK_TOP_APLL_I2S4_M_SEL>,
786					 <&topckgen CLK_TOP_APLL_I2S5_M_SEL>,
787					 <&topckgen CLK_TOP_APLL_I2S6_M_SEL>,
788					 <&topckgen CLK_TOP_APLL_I2S7_M_SEL>,
789					 <&topckgen CLK_TOP_APLL_I2S8_M_SEL>,
790					 <&topckgen CLK_TOP_APLL_I2S9_M_SEL>,
791					 <&topckgen CLK_TOP_APLL12_DIV0>,
792					 <&topckgen CLK_TOP_APLL12_DIV1>,
793					 <&topckgen CLK_TOP_APLL12_DIV2>,
794					 <&topckgen CLK_TOP_APLL12_DIV3>,
795					 <&topckgen CLK_TOP_APLL12_DIV4>,
796					 <&topckgen CLK_TOP_APLL12_DIVB>,
797					 <&topckgen CLK_TOP_APLL12_DIV5>,
798					 <&topckgen CLK_TOP_APLL12_DIV6>,
799					 <&topckgen CLK_TOP_APLL12_DIV7>,
800					 <&topckgen CLK_TOP_APLL12_DIV8>,
801					 <&topckgen CLK_TOP_APLL12_DIV9>,
802					 <&topckgen CLK_TOP_AUDIO_H_SEL>,
803					 <&clk26m>;
804				clock-names = "aud_afe_clk",
805					      "aud_dac_clk",
806					      "aud_dac_predis_clk",
807					      "aud_adc_clk",
808					      "aud_adda6_adc_clk",
809					      "aud_apll22m_clk",
810					      "aud_apll24m_clk",
811					      "aud_apll1_tuner_clk",
812					      "aud_apll2_tuner_clk",
813					      "aud_tdm_clk",
814					      "aud_tml_clk",
815					      "aud_nle",
816					      "aud_dac_hires_clk",
817					      "aud_adc_hires_clk",
818					      "aud_adc_hires_tml",
819					      "aud_adda6_adc_hires_clk",
820					      "aud_3rd_dac_clk",
821					      "aud_3rd_dac_predis_clk",
822					      "aud_3rd_dac_tml",
823					      "aud_3rd_dac_hires_clk",
824					      "aud_infra_clk",
825					      "aud_infra_26m_clk",
826					      "top_mux_audio",
827					      "top_mux_audio_int",
828					      "top_mainpll_d4_d4",
829					      "top_mux_aud_1",
830					      "top_apll1_ck",
831					      "top_mux_aud_2",
832					      "top_apll2_ck",
833					      "top_mux_aud_eng1",
834					      "top_apll1_d4",
835					      "top_mux_aud_eng2",
836					      "top_apll2_d4",
837					      "top_i2s0_m_sel",
838					      "top_i2s1_m_sel",
839					      "top_i2s2_m_sel",
840					      "top_i2s3_m_sel",
841					      "top_i2s4_m_sel",
842					      "top_i2s5_m_sel",
843					      "top_i2s6_m_sel",
844					      "top_i2s7_m_sel",
845					      "top_i2s8_m_sel",
846					      "top_i2s9_m_sel",
847					      "top_apll12_div0",
848					      "top_apll12_div1",
849					      "top_apll12_div2",
850					      "top_apll12_div3",
851					      "top_apll12_div4",
852					      "top_apll12_divb",
853					      "top_apll12_div5",
854					      "top_apll12_div6",
855					      "top_apll12_div7",
856					      "top_apll12_div8",
857					      "top_apll12_div9",
858					      "top_mux_audio_h",
859					      "top_clk26m_clk";
860			};
861		};
862
863		pcie: pcie@11230000 {
864			compatible = "mediatek,mt8192-pcie";
865			device_type = "pci";
866			reg = <0 0x11230000 0 0x2000>;
867			reg-names = "pcie-mac";
868			#address-cells = <3>;
869			#size-cells = <2>;
870			clocks = <&infracfg CLK_INFRA_PCIE_PL_P_250M>,
871				 <&infracfg CLK_INFRA_PCIE_TL_26M>,
872				 <&infracfg CLK_INFRA_PCIE_TL_96M>,
873				 <&infracfg CLK_INFRA_PCIE_TL_32K>,
874				 <&infracfg CLK_INFRA_PCIE_PERI_26M>,
875				 <&infracfg CLK_INFRA_PCIE_TOP_H_133M>;
876			clock-names = "pl_250m", "tl_26m", "tl_96m",
877				      "tl_32k", "peri_26m", "top_133m";
878			assigned-clocks = <&topckgen CLK_TOP_TL_SEL>;
879			assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D6_D4>;
880			interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>;
881			bus-range = <0x00 0xff>;
882			ranges = <0x82000000 0 0x12000000 0x0 0x12000000 0 0x0800000>,
883				 <0x81000000 0 0x12800000 0x0 0x12800000 0 0x0800000>;
884			#interrupt-cells = <1>;
885			interrupt-map-mask = <0 0 0 7>;
886			interrupt-map = <0 0 0 1 &pcie_intc0 0>,
887					<0 0 0 2 &pcie_intc0 1>,
888					<0 0 0 3 &pcie_intc0 2>,
889					<0 0 0 4 &pcie_intc0 3>;
890
891			pcie_intc0: interrupt-controller {
892				interrupt-controller;
893				#address-cells = <0>;
894				#interrupt-cells = <1>;
895			};
896		};
897
898		nor_flash: spi@11234000 {
899			compatible = "mediatek,mt8192-nor";
900			reg = <0 0x11234000 0 0xe0>;
901			interrupts = <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH 0>;
902			clocks = <&topckgen CLK_TOP_SFLASH_SEL>,
903				 <&infracfg CLK_INFRA_FLASHIF_SFLASH>,
904				 <&infracfg CLK_INFRA_FLASHIF_TOP_H_133M>;
905			clock-names = "spi", "sf", "axi";
906			assigned-clocks = <&topckgen CLK_TOP_SFLASH_SEL>;
907			assigned-clock-parents = <&clk26m>;
908			#address-cells = <1>;
909			#size-cells = <0>;
910			status = "disabled";
911		};
912
913		efuse: efuse@11c10000 {
914			compatible = "mediatek,efuse";
915			reg = <0 0x11c10000 0 0x1000>;
916			#address-cells = <1>;
917			#size-cells = <1>;
918
919			lvts_e_data1: data1@1c0 {
920				reg = <0x1c0 0x58>;
921			};
922
923			svs_calibration: calib@580 {
924				reg = <0x580 0x68>;
925			};
926		};
927
928		i2c3: i2c@11cb0000 {
929			compatible = "mediatek,mt8192-i2c";
930			reg = <0 0x11cb0000 0 0x1000>,
931			      <0 0x10217300 0 0x80>;
932			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
933			clocks = <&imp_iic_wrap_e CLK_IMP_IIC_WRAP_E_I2C3>,
934				 <&infracfg CLK_INFRA_AP_DMA>;
935			clock-names = "main", "dma";
936			clock-div = <1>;
937			#address-cells = <1>;
938			#size-cells = <0>;
939			status = "disabled";
940		};
941
942		imp_iic_wrap_e: clock-controller@11cb1000 {
943			compatible = "mediatek,mt8192-imp_iic_wrap_e";
944			reg = <0 0x11cb1000 0 0x1000>;
945			#clock-cells = <1>;
946		};
947
948		i2c7: i2c@11d00000 {
949			compatible = "mediatek,mt8192-i2c";
950			reg = <0 0x11d00000 0 0x1000>,
951			      <0 0x10217600 0 0x180>;
952			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
953			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C7>,
954				 <&infracfg CLK_INFRA_AP_DMA>;
955			clock-names = "main", "dma";
956			clock-div = <1>;
957			#address-cells = <1>;
958			#size-cells = <0>;
959			status = "disabled";
960		};
961
962		i2c8: i2c@11d01000 {
963			compatible = "mediatek,mt8192-i2c";
964			reg = <0 0x11d01000 0 0x1000>,
965			      <0 0x10217780 0 0x180>;
966			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
967			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C8>,
968				 <&infracfg CLK_INFRA_AP_DMA>;
969			clock-names = "main", "dma";
970			clock-div = <1>;
971			#address-cells = <1>;
972			#size-cells = <0>;
973			status = "disabled";
974		};
975
976		i2c9: i2c@11d02000 {
977			compatible = "mediatek,mt8192-i2c";
978			reg = <0 0x11d02000 0 0x1000>,
979			      <0 0x10217900 0 0x180>;
980			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH 0>;
981			clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C9>,
982				 <&infracfg CLK_INFRA_AP_DMA>;
983			clock-names = "main", "dma";
984			clock-div = <1>;
985			#address-cells = <1>;
986			#size-cells = <0>;
987			status = "disabled";
988		};
989
990		imp_iic_wrap_s: clock-controller@11d03000 {
991			compatible = "mediatek,mt8192-imp_iic_wrap_s";
992			reg = <0 0x11d03000 0 0x1000>;
993			#clock-cells = <1>;
994		};
995
996		i2c1: i2c@11d20000 {
997			compatible = "mediatek,mt8192-i2c";
998			reg = <0 0x11d20000 0 0x1000>,
999			      <0 0x10217100 0 0x80>;
1000			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>;
1001			clocks = <&imp_iic_wrap_ws CLK_IMP_IIC_WRAP_WS_I2C1>,
1002				 <&infracfg CLK_INFRA_AP_DMA>;
1003			clock-names = "main", "dma";
1004			clock-div = <1>;
1005			#address-cells = <1>;
1006			#size-cells = <0>;
1007			status = "disabled";
1008		};
1009
1010		i2c2: i2c@11d21000 {
1011			compatible = "mediatek,mt8192-i2c";
1012			reg = <0 0x11d21000 0 0x1000>,
1013			      <0 0x10217180 0 0x180>;
1014			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH 0>;
1015			clocks = <&imp_iic_wrap_ws CLK_IMP_IIC_WRAP_WS_I2C2>,
1016				 <&infracfg CLK_INFRA_AP_DMA>;
1017			clock-names = "main", "dma";
1018			clock-div = <1>;
1019			#address-cells = <1>;
1020			#size-cells = <0>;
1021			status = "disabled";
1022		};
1023
1024		i2c4: i2c@11d22000 {
1025			compatible = "mediatek,mt8192-i2c";
1026			reg = <0 0x11d22000 0 0x1000>,
1027			      <0 0x10217380 0 0x180>;
1028			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
1029			clocks = <&imp_iic_wrap_ws CLK_IMP_IIC_WRAP_WS_I2C4>,
1030				 <&infracfg CLK_INFRA_AP_DMA>;
1031			clock-names = "main", "dma";
1032			clock-div = <1>;
1033			#address-cells = <1>;
1034			#size-cells = <0>;
1035			status = "disabled";
1036		};
1037
1038		imp_iic_wrap_ws: clock-controller@11d23000 {
1039			compatible = "mediatek,mt8192-imp_iic_wrap_ws";
1040			reg = <0 0x11d23000 0 0x1000>;
1041			#clock-cells = <1>;
1042		};
1043
1044		i2c5: i2c@11e00000 {
1045			compatible = "mediatek,mt8192-i2c";
1046			reg = <0 0x11e00000 0 0x1000>,
1047			      <0 0x10217500 0 0x80>;
1048			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
1049			clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C5>,
1050				 <&infracfg CLK_INFRA_AP_DMA>;
1051			clock-names = "main", "dma";
1052			clock-div = <1>;
1053			#address-cells = <1>;
1054			#size-cells = <0>;
1055			status = "disabled";
1056		};
1057
1058		imp_iic_wrap_w: clock-controller@11e01000 {
1059			compatible = "mediatek,mt8192-imp_iic_wrap_w";
1060			reg = <0 0x11e01000 0 0x1000>;
1061			#clock-cells = <1>;
1062		};
1063
1064		u3phy0: t-phy@11e40000 {
1065			compatible = "mediatek,mt8192-tphy",
1066				     "mediatek,generic-tphy-v2";
1067			#address-cells = <1>;
1068			#size-cells = <1>;
1069			ranges = <0x0 0x0 0x11e40000 0x1000>;
1070
1071			u2port0: usb-phy@0 {
1072				reg = <0x0 0x700>;
1073				clocks = <&clk26m>;
1074				clock-names = "ref";
1075				#phy-cells = <1>;
1076			};
1077
1078			u3port0: usb-phy@700 {
1079				reg = <0x700 0x900>;
1080				clocks = <&clk26m>;
1081				clock-names = "ref";
1082				#phy-cells = <1>;
1083			};
1084		};
1085
1086		i2c0: i2c@11f00000 {
1087			compatible = "mediatek,mt8192-i2c";
1088			reg = <0 0x11f00000 0 0x1000>,
1089			      <0 0x10217080 0 0x80>;
1090			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH 0>;
1091			clocks = <&imp_iic_wrap_n CLK_IMP_IIC_WRAP_N_I2C0>,
1092				 <&infracfg CLK_INFRA_AP_DMA>;
1093			clock-names = "main", "dma";
1094			clock-div = <1>;
1095			#address-cells = <1>;
1096			#size-cells = <0>;
1097			status = "disabled";
1098		};
1099
1100		i2c6: i2c@11f01000 {
1101			compatible = "mediatek,mt8192-i2c";
1102			reg = <0 0x11f01000 0 0x1000>,
1103			      <0 0x10217580 0 0x80>;
1104			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
1105			clocks = <&imp_iic_wrap_n CLK_IMP_IIC_WRAP_N_I2C6>,
1106				 <&infracfg CLK_INFRA_AP_DMA>;
1107			clock-names = "main", "dma";
1108			clock-div = <1>;
1109			#address-cells = <1>;
1110			#size-cells = <0>;
1111			status = "disabled";
1112		};
1113
1114		imp_iic_wrap_n: clock-controller@11f02000 {
1115			compatible = "mediatek,mt8192-imp_iic_wrap_n";
1116			reg = <0 0x11f02000 0 0x1000>;
1117			#clock-cells = <1>;
1118		};
1119
1120		msdc_top: clock-controller@11f10000 {
1121			compatible = "mediatek,mt8192-msdc_top";
1122			reg = <0 0x11f10000 0 0x1000>;
1123			#clock-cells = <1>;
1124		};
1125
1126		mmc0: mmc@11f60000 {
1127			compatible = "mediatek,mt8192-mmc", "mediatek,mt8183-mmc";
1128			reg = <0 0x11f60000 0 0x1000>, <0 0x11f50000 0 0x1000>;
1129			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
1130			clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
1131				 <&msdc_top CLK_MSDC_TOP_H_MST_0P>,
1132				 <&msdc_top CLK_MSDC_TOP_SRC_0P>,
1133				 <&msdc_top CLK_MSDC_TOP_P_CFG>,
1134				 <&msdc_top CLK_MSDC_TOP_P_MSDC0>,
1135				 <&msdc_top CLK_MSDC_TOP_AXI>,
1136				 <&msdc_top CLK_MSDC_TOP_AHB2AXI_BRG_AXI>;
1137			clock-names = "source", "hclk", "source_cg", "sys_cg",
1138				      "pclk_cg", "axi_cg", "ahb_cg";
1139			status = "disabled";
1140		};
1141
1142		mmc1: mmc@11f70000 {
1143			compatible = "mediatek,mt8192-mmc", "mediatek,mt8183-mmc";
1144			reg = <0 0x11f70000 0 0x1000>, <0 0x11c70000 0 0x1000>;
1145			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>;
1146			clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
1147				 <&msdc_top CLK_MSDC_TOP_H_MST_1P>,
1148				 <&msdc_top CLK_MSDC_TOP_SRC_1P>,
1149				 <&msdc_top CLK_MSDC_TOP_P_CFG>,
1150				 <&msdc_top CLK_MSDC_TOP_P_MSDC1>,
1151				 <&msdc_top CLK_MSDC_TOP_AXI>,
1152				 <&msdc_top CLK_MSDC_TOP_AHB2AXI_BRG_AXI>;
1153			clock-names = "source", "hclk", "source_cg", "sys_cg",
1154				      "pclk_cg", "axi_cg", "ahb_cg";
1155			status = "disabled";
1156		};
1157
1158		mfgcfg: clock-controller@13fbf000 {
1159			compatible = "mediatek,mt8192-mfgcfg";
1160			reg = <0 0x13fbf000 0 0x1000>;
1161			#clock-cells = <1>;
1162		};
1163
1164		mmsys: syscon@14000000 {
1165			compatible = "mediatek,mt8192-mmsys", "syscon";
1166			reg = <0 0x14000000 0 0x1000>;
1167			#clock-cells = <1>;
1168		};
1169
1170		smi_common: smi@14002000 {
1171			compatible = "mediatek,mt8192-smi-common";
1172			reg = <0 0x14002000 0 0x1000>;
1173			clocks = <&mmsys CLK_MM_SMI_COMMON>,
1174				 <&mmsys CLK_MM_SMI_INFRA>,
1175				 <&mmsys CLK_MM_SMI_GALS>,
1176				 <&mmsys CLK_MM_SMI_GALS>;
1177			clock-names = "apb", "smi", "gals0", "gals1";
1178			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1179		};
1180
1181		larb0: larb@14003000 {
1182			compatible = "mediatek,mt8192-smi-larb";
1183			reg = <0 0x14003000 0 0x1000>;
1184			mediatek,larb-id = <0>;
1185			mediatek,smi = <&smi_common>;
1186			clocks = <&clk26m>, <&clk26m>;
1187			clock-names = "apb", "smi";
1188			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1189		};
1190
1191		larb1: larb@14004000 {
1192			compatible = "mediatek,mt8192-smi-larb";
1193			reg = <0 0x14004000 0 0x1000>;
1194			mediatek,larb-id = <1>;
1195			mediatek,smi = <&smi_common>;
1196			clocks = <&clk26m>, <&clk26m>;
1197			clock-names = "apb", "smi";
1198			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1199		};
1200
1201		dpi0: dpi@14016000 {
1202			compatible = "mediatek,mt8192-dpi";
1203			reg = <0 0x14016000 0 0x1000>;
1204			interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 0>;
1205			clocks = <&mmsys CLK_MM_DPI_DPI0>,
1206				 <&mmsys CLK_MM_DISP_DPI0>,
1207				 <&apmixedsys CLK_APMIXED_TVDPLL>;
1208			clock-names = "pixel", "engine", "pll";
1209			status = "disabled";
1210		};
1211
1212		iommu0: m4u@1401d000 {
1213			compatible = "mediatek,mt8192-m4u";
1214			reg = <0 0x1401d000 0 0x1000>;
1215			mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
1216					 <&larb4>, <&larb5>, <&larb7>,
1217					 <&larb9>, <&larb11>, <&larb13>,
1218					 <&larb14>, <&larb16>, <&larb17>,
1219					 <&larb18>, <&larb19>, <&larb20>;
1220			interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
1221			clocks = <&mmsys CLK_MM_SMI_IOMMU>;
1222			clock-names = "bclk";
1223			power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
1224			#iommu-cells = <1>;
1225		};
1226
1227		imgsys: clock-controller@15020000 {
1228			compatible = "mediatek,mt8192-imgsys";
1229			reg = <0 0x15020000 0 0x1000>;
1230			#clock-cells = <1>;
1231		};
1232
1233		larb9: larb@1502e000 {
1234			compatible = "mediatek,mt8192-smi-larb";
1235			reg = <0 0x1502e000 0 0x1000>;
1236			mediatek,larb-id = <9>;
1237			mediatek,smi = <&smi_common>;
1238			clocks = <&imgsys CLK_IMG_LARB9>,
1239				 <&imgsys CLK_IMG_LARB9>;
1240			clock-names = "apb", "smi";
1241			power-domains = <&spm MT8192_POWER_DOMAIN_ISP>;
1242		};
1243
1244		imgsys2: clock-controller@15820000 {
1245			compatible = "mediatek,mt8192-imgsys2";
1246			reg = <0 0x15820000 0 0x1000>;
1247			#clock-cells = <1>;
1248		};
1249
1250		larb11: larb@1582e000 {
1251			compatible = "mediatek,mt8192-smi-larb";
1252			reg = <0 0x1582e000 0 0x1000>;
1253			mediatek,larb-id = <11>;
1254			mediatek,smi = <&smi_common>;
1255			clocks = <&imgsys2 CLK_IMG2_LARB11>,
1256				 <&imgsys2 CLK_IMG2_LARB11>;
1257			clock-names = "apb", "smi";
1258			power-domains = <&spm MT8192_POWER_DOMAIN_ISP2>;
1259		};
1260
1261		larb5: larb@1600d000 {
1262			compatible = "mediatek,mt8192-smi-larb";
1263			reg = <0 0x1600d000 0 0x1000>;
1264			mediatek,larb-id = <5>;
1265			mediatek,smi = <&smi_common>;
1266			clocks = <&vdecsys_soc CLK_VDEC_SOC_LARB1>,
1267				 <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
1268			clock-names = "apb", "smi";
1269			power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
1270		};
1271
1272		vdecsys_soc: clock-controller@1600f000 {
1273			compatible = "mediatek,mt8192-vdecsys_soc";
1274			reg = <0 0x1600f000 0 0x1000>;
1275			#clock-cells = <1>;
1276		};
1277
1278		larb4: larb@1602e000 {
1279			compatible = "mediatek,mt8192-smi-larb";
1280			reg = <0 0x1602e000 0 0x1000>;
1281			mediatek,larb-id = <4>;
1282			mediatek,smi = <&smi_common>;
1283			clocks = <&vdecsys CLK_VDEC_SOC_LARB1>,
1284				 <&vdecsys CLK_VDEC_SOC_LARB1>;
1285			clock-names = "apb", "smi";
1286			power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
1287		};
1288
1289		vdecsys: clock-controller@1602f000 {
1290			compatible = "mediatek,mt8192-vdecsys";
1291			reg = <0 0x1602f000 0 0x1000>;
1292			#clock-cells = <1>;
1293		};
1294
1295		vencsys: clock-controller@17000000 {
1296			compatible = "mediatek,mt8192-vencsys";
1297			reg = <0 0x17000000 0 0x1000>;
1298			#clock-cells = <1>;
1299		};
1300
1301		larb7: larb@17010000 {
1302			compatible = "mediatek,mt8192-smi-larb";
1303			reg = <0 0x17010000 0 0x1000>;
1304			mediatek,larb-id = <7>;
1305			mediatek,smi = <&smi_common>;
1306			clocks = <&vencsys CLK_VENC_SET0_LARB>,
1307				 <&vencsys CLK_VENC_SET1_VENC>;
1308			clock-names = "apb", "smi";
1309			power-domains = <&spm MT8192_POWER_DOMAIN_VENC>;
1310		};
1311
1312		vcodec_enc: vcodec@17020000 {
1313			compatible = "mediatek,mt8192-vcodec-enc";
1314			reg = <0 0x17020000 0 0x2000>;
1315			iommus = <&iommu0 M4U_PORT_L7_VENC_RCPU>,
1316				 <&iommu0 M4U_PORT_L7_VENC_REC>,
1317				 <&iommu0 M4U_PORT_L7_VENC_BSDMA>,
1318				 <&iommu0 M4U_PORT_L7_VENC_SV_COMV>,
1319				 <&iommu0 M4U_PORT_L7_VENC_RD_COMV>,
1320				 <&iommu0 M4U_PORT_L7_VENC_CUR_LUMA>,
1321				 <&iommu0 M4U_PORT_L7_VENC_CUR_CHROMA>,
1322				 <&iommu0 M4U_PORT_L7_VENC_REF_LUMA>,
1323				 <&iommu0 M4U_PORT_L7_VENC_REF_CHROMA>,
1324				 <&iommu0 M4U_PORT_L7_VENC_SUB_R_LUMA>,
1325				 <&iommu0 M4U_PORT_L7_VENC_SUB_W_LUMA>;
1326			interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 0>;
1327			mediatek,scp = <&scp>;
1328			power-domains = <&spm MT8192_POWER_DOMAIN_VENC>;
1329			clocks = <&vencsys CLK_VENC_SET1_VENC>;
1330			clock-names = "venc-set1";
1331			assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>;
1332			assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4>;
1333		};
1334
1335		camsys: clock-controller@1a000000 {
1336			compatible = "mediatek,mt8192-camsys";
1337			reg = <0 0x1a000000 0 0x1000>;
1338			#clock-cells = <1>;
1339		};
1340
1341		larb13: larb@1a001000 {
1342			compatible = "mediatek,mt8192-smi-larb";
1343			reg = <0 0x1a001000 0 0x1000>;
1344			mediatek,larb-id = <13>;
1345			mediatek,smi = <&smi_common>;
1346			clocks = <&camsys CLK_CAM_CAM>,
1347				 <&camsys CLK_CAM_LARB13>;
1348			clock-names = "apb", "smi";
1349			power-domains = <&spm MT8192_POWER_DOMAIN_CAM>;
1350		};
1351
1352		larb14: larb@1a002000 {
1353			compatible = "mediatek,mt8192-smi-larb";
1354			reg = <0 0x1a002000 0 0x1000>;
1355			mediatek,larb-id = <14>;
1356			mediatek,smi = <&smi_common>;
1357			clocks = <&camsys CLK_CAM_CAM>,
1358				 <&camsys CLK_CAM_LARB14>;
1359			clock-names = "apb", "smi";
1360			power-domains = <&spm MT8192_POWER_DOMAIN_CAM>;
1361		};
1362
1363		larb16: larb@1a00f000 {
1364			compatible = "mediatek,mt8192-smi-larb";
1365			reg = <0 0x1a00f000 0 0x1000>;
1366			mediatek,larb-id = <16>;
1367			mediatek,smi = <&smi_common>;
1368			clocks = <&camsys_rawa CLK_CAM_RAWA_CAM>,
1369				 <&camsys_rawa CLK_CAM_RAWA_LARBX>;
1370			clock-names = "apb", "smi";
1371			power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWA>;
1372		};
1373
1374		larb17: larb@1a010000 {
1375			compatible = "mediatek,mt8192-smi-larb";
1376			reg = <0 0x1a010000 0 0x1000>;
1377			mediatek,larb-id = <17>;
1378			mediatek,smi = <&smi_common>;
1379			clocks = <&camsys_rawb CLK_CAM_RAWB_CAM>,
1380				 <&camsys_rawb CLK_CAM_RAWB_LARBX>;
1381			clock-names = "apb", "smi";
1382			power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWB>;
1383		};
1384
1385		larb18: larb@1a011000 {
1386			compatible = "mediatek,mt8192-smi-larb";
1387			reg = <0 0x1a011000 0 0x1000>;
1388			mediatek,larb-id = <18>;
1389			mediatek,smi = <&smi_common>;
1390			clocks = <&camsys_rawc CLK_CAM_RAWC_LARBX>,
1391				 <&camsys_rawc CLK_CAM_RAWC_CAM>;
1392			clock-names = "apb", "smi";
1393			power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWC>;
1394		};
1395
1396		camsys_rawa: clock-controller@1a04f000 {
1397			compatible = "mediatek,mt8192-camsys_rawa";
1398			reg = <0 0x1a04f000 0 0x1000>;
1399			#clock-cells = <1>;
1400		};
1401
1402		camsys_rawb: clock-controller@1a06f000 {
1403			compatible = "mediatek,mt8192-camsys_rawb";
1404			reg = <0 0x1a06f000 0 0x1000>;
1405			#clock-cells = <1>;
1406		};
1407
1408		camsys_rawc: clock-controller@1a08f000 {
1409			compatible = "mediatek,mt8192-camsys_rawc";
1410			reg = <0 0x1a08f000 0 0x1000>;
1411			#clock-cells = <1>;
1412		};
1413
1414		ipesys: clock-controller@1b000000 {
1415			compatible = "mediatek,mt8192-ipesys";
1416			reg = <0 0x1b000000 0 0x1000>;
1417			#clock-cells = <1>;
1418		};
1419
1420		larb20: larb@1b00f000 {
1421			compatible = "mediatek,mt8192-smi-larb";
1422			reg = <0 0x1b00f000 0 0x1000>;
1423			mediatek,larb-id = <20>;
1424			mediatek,smi = <&smi_common>;
1425			clocks = <&ipesys CLK_IPE_SMI_SUBCOM>,
1426				 <&ipesys CLK_IPE_LARB20>;
1427			clock-names = "apb", "smi";
1428			power-domains = <&spm MT8192_POWER_DOMAIN_IPE>;
1429		};
1430
1431		larb19: larb@1b10f000 {
1432			compatible = "mediatek,mt8192-smi-larb";
1433			reg = <0 0x1b10f000 0 0x1000>;
1434			mediatek,larb-id = <19>;
1435			mediatek,smi = <&smi_common>;
1436			clocks = <&ipesys CLK_IPE_SMI_SUBCOM>,
1437				 <&ipesys CLK_IPE_LARB19>;
1438			clock-names = "apb", "smi";
1439			power-domains = <&spm MT8192_POWER_DOMAIN_IPE>;
1440		};
1441
1442		mdpsys: clock-controller@1f000000 {
1443			compatible = "mediatek,mt8192-mdpsys";
1444			reg = <0 0x1f000000 0 0x1000>;
1445			#clock-cells = <1>;
1446		};
1447
1448		larb2: larb@1f002000 {
1449			compatible = "mediatek,mt8192-smi-larb";
1450			reg = <0 0x1f002000 0 0x1000>;
1451			mediatek,larb-id = <2>;
1452			mediatek,smi = <&smi_common>;
1453			clocks = <&mdpsys CLK_MDP_SMI0>,
1454				 <&mdpsys CLK_MDP_SMI0>;
1455			clock-names = "apb", "smi";
1456			power-domains = <&spm MT8192_POWER_DOMAIN_MDP>;
1457		};
1458	};
1459};
1460