xref: /rk3399_rockchip-uboot/arch/arm/dts/rk3576.dtsi (revision 2f6c020d95ebda22b28d3a31f574ec547a9281fb)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
4 */
5
6#include <dt-bindings/clock/rockchip,rk3576-cru.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/phy/phy.h>
10#include <dt-bindings/power/rk3576-power.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/soc/rockchip,boot-mode.h>
13#include <dt-bindings/soc/rockchip-system-status.h>
14#include <dt-bindings/thermal/thermal.h>
15
16/ {
17	compatible = "rockchip,rk3576";
18
19	interrupt-parent = <&gic>;
20	#address-cells = <2>;
21	#size-cells = <2>;
22
23	aliases {
24		csi2dcphy0 = &csi2_dcphy0;
25		csi2dphy0 = &csi2_dphy0;
26		csi2dphy1 = &csi2_dphy1;
27		csi2dphy2 = &csi2_dphy2;
28		csi2dphy3 = &csi2_dphy3;
29		csi2dphy4 = &csi2_dphy4;
30		csi2dphy5 = &csi2_dphy5;
31		ethernet0 = &gmac0;
32		ethernet1 = &gmac1;
33		gpio0 = &gpio0;
34		gpio1 = &gpio1;
35		gpio2 = &gpio2;
36		gpio3 = &gpio3;
37		gpio4 = &gpio4;
38		hdcp0 = &hdcp0;
39		hdcp1 = &hdcp1;
40		i2c0 = &i2c0;
41		i2c1 = &i2c1;
42		i2c2 = &i2c2;
43		i2c3 = &i2c3;
44		i2c4 = &i2c4;
45		i2c5 = &i2c5;
46		i2c6 = &i2c6;
47		i2c7 = &i2c7;
48		i2c8 = &i2c8;
49		i2c9 = &i2c9;
50		i3c0 = &i3c0;
51		i3c1 = &i3c1;
52		rkcif_mipi_lvds0 = &rkcif_mipi_lvds;
53		rkcif_mipi_lvds1 = &rkcif_mipi_lvds1;
54		rkcif_mipi_lvds2 = &rkcif_mipi_lvds2;
55		rkcif_mipi_lvds3 = &rkcif_mipi_lvds3;
56		rkcif_mipi_lvds4 = &rkcif_mipi_lvds4;
57		serial0 = &uart0;
58		serial1 = &uart1;
59		serial2 = &uart2;
60		serial3 = &uart3;
61		serial4 = &uart4;
62		serial5 = &uart5;
63		serial6 = &uart6;
64		serial7 = &uart7;
65		serial8 = &uart8;
66		serial9 = &uart9;
67		serial10 = &uart10;
68		serial11 = &uart11;
69		spi0 = &spi0;
70		spi1 = &spi1;
71		spi2 = &spi2;
72		spi3 = &spi3;
73		spi4 = &spi4;
74		spi5 = &sfc0;
75		spi6 = &sfc1;
76	};
77
78	clocks {
79		compatible = "simple-bus";
80		#address-cells = <2>;
81		#size-cells = <2>;
82		ranges;
83
84		xin32k: xin32k {
85			compatible = "fixed-clock";
86			#clock-cells = <0>;
87			clock-frequency = <32768>;
88			clock-output-names = "xin32k";
89		};
90
91		xin24m: xin24m {
92			compatible = "fixed-clock";
93			#clock-cells = <0>;
94			clock-frequency = <24000000>;
95			clock-output-names = "xin24m";
96		};
97
98		spll: spll {
99			compatible = "fixed-clock";
100			#clock-cells = <0>;
101			clock-frequency = <702000000>;
102			clock-output-names = "spll";
103		};
104
105		mclkin_sai0: mclkin-sai0 {
106			compatible = "fixed-clock";
107			#clock-cells = <0>;
108			clock-frequency = <0>;
109			clock-output-names = "sai0_mclkin";
110		};
111
112		mclkin_sai1: mclkin-sai1 {
113			compatible = "fixed-clock";
114			#clock-cells = <0>;
115			clock-frequency = <0>;
116			clock-output-names = "sai1_mclkin";
117		};
118
119		mclkin_sai2: mclkin-sai2 {
120			compatible = "fixed-clock";
121			#clock-cells = <0>;
122			clock-frequency = <0>;
123			clock-output-names = "sai2_mclkin";
124		};
125
126		mclkin_sai3: mclkin-sai3 {
127			compatible = "fixed-clock";
128			#clock-cells = <0>;
129			clock-frequency = <0>;
130			clock-output-names = "sai3_mclkin";
131		};
132
133		mclkin_sai4: mclkin-sai4 {
134			compatible = "fixed-clock";
135			#clock-cells = <0>;
136			clock-frequency = <0>;
137			clock-output-names = "sai4_mclkin";
138		};
139
140		mclkout_sai0: mclkout-sai0@26046400 {
141			compatible = "rockchip,clk-out";
142			reg = <0 0x26046400 0 0x4>;
143			clocks = <&cru CLK_SAI0_MCLKOUT>;
144			#clock-cells = <0>;
145			clock-output-names = "mclk_sai0_to_io";
146			rockchip,bit-shift = <0>;
147			rockchip,bit-set-to-disable;
148		};
149
150		mclkout_sai1: mclkout-sai1@26046400 {
151			compatible = "rockchip,clk-out";
152			reg = <0 0x26046400 0 0x4>;
153			clocks = <&cru CLK_SAI1_MCLKOUT>;
154			#clock-cells = <0>;
155			clock-output-names = "mclk_sai1_to_io";
156			rockchip,bit-shift = <1>;
157			rockchip,bit-set-to-disable;
158		};
159
160		mclkout_sai2: mclkout-sai2@26046400 {
161			compatible = "rockchip,clk-out";
162			reg = <0 0x26046400 0 0x4>;
163			clocks = <&cru CLK_SAI2_MCLKOUT>;
164			#clock-cells = <0>;
165			clock-output-names = "mclk_sai2_to_io";
166			rockchip,bit-shift = <2>;
167			rockchip,bit-set-to-disable;
168		};
169
170		mclkout_sai3: mclkout-sai3@26046400 {
171			compatible = "rockchip,clk-out";
172			reg = <0 0x26046400 0 0x4>;
173			clocks = <&cru CLK_SAI3_MCLKOUT>;
174			#clock-cells = <0>;
175			clock-output-names = "mclk_sai3_to_io";
176			rockchip,bit-shift = <3>;
177			rockchip,bit-set-to-disable;
178		};
179
180		mclkout_sai4: mclkout-sai4@26046400 {
181			compatible = "rockchip,clk-out";
182			reg = <0 0x26046400 0 0x4>;
183			clocks = <&cru CLK_SAI4_MCLKOUT>;
184			#clock-cells = <0>;
185			clock-output-names = "mclk_sai4_to_io";
186			rockchip,bit-shift = <4>;
187			rockchip,bit-set-to-disable;
188		};
189
190		mclkout_sai4m2: mclkout-sai4m2@2604a400 {
191			compatible = "rockchip,clk-out";
192			reg = <0 0x2604a400 0 0x4>;
193			clocks = <&cru CLK_SAI4_MCLKOUT>;
194			#clock-cells = <0>;
195			clock-output-names = "mclk_sai4_to_io";
196			rockchip,bit-shift = <0>;
197			rockchip,bit-set-to-disable;
198		};
199
200		sclkin_sai0: sclkin-sai0 {
201			compatible = "fixed-clock";
202			#clock-cells = <0>;
203			clock-frequency = <0>;
204			clock-output-names = "sai0_sclk_in";
205		};
206
207		sclkin_sai1: sclkin-sai1 {
208			compatible = "fixed-clock";
209			#clock-cells = <0>;
210			clock-frequency = <0>;
211			clock-output-names = "sai1_sclk_in";
212		};
213
214		sclkin_sai2: sclkin-sai2 {
215			compatible = "fixed-clock";
216			#clock-cells = <0>;
217			clock-frequency = <0>;
218			clock-output-names = "sai2_sclk_in";
219		};
220
221		sclkin_sai3: sclkin-sai3 {
222			compatible = "fixed-clock";
223			#clock-cells = <0>;
224			clock-frequency = <0>;
225			clock-output-names = "sai3_sclk_in";
226		};
227
228		sclkin_sai4: sclkin-sai4 {
229			compatible = "fixed-clock";
230			#clock-cells = <0>;
231			clock-frequency = <0>;
232			clock-output-names = "sai4_sclk_in";
233		};
234
235		clk_pvtm_clkout: clk_pvtm_clkout {
236			compatible = "fixed-clock";
237			#clock-cells = <0>;
238			clock-frequency = <32768>;
239			clock-output-names = "clk_pvtm_clkout";
240		};
241
242		aclk_usb: aclk_usb@272008bc {
243			compatible = "rockchip,rk3576-clock-gate-link";
244			reg = <0 0x272008bc 0 0x10>;
245			clock-names = "link";
246			clocks = <&cru ACLK_VOP_ROOT>;
247			#power-domain-cells = <1>;
248			#clock-cells = <0>;
249		};
250
251		aclk_ufs: aclk_ufs@272008bc {
252			compatible = "rockchip,rk3576-clock-gate-link";
253			reg = <0 0x272008bc 0 0x10>;
254			clock-names = "link";
255			clocks = <&aclk_usb>;
256			#power-domain-cells = <1>;
257			#clock-cells = <0>;
258		};
259
260		pclk_usbufs: pclk_usbufs@272008bc {
261			compatible = "rockchip,rk3576-clock-gate-link";
262			reg = <0 0x272008bc 0 0x10>;
263			clock-names = "link";
264			clocks = <&cru HCLK_VOP_ROOT>;
265			#power-domain-cells = <1>;
266			#clock-cells = <0>;
267		};
268
269		aclk_hdcp1: aclk_hdcp1@27200910 {
270			compatible = "rockchip,rk3576-clock-gate-link";
271			reg = <0 0x27200910 0 0x10>;
272			clock-names = "link";
273			clocks = <&cru ACLK_VOP_ROOT>;
274			#power-domain-cells = <1>;
275			#clock-cells = <0>;
276		};
277
278		aclk_hdcp0: aclk_hdcp0@272008fc {
279			compatible = "rockchip,rk3576-clock-gate-link";
280			reg = <0 0x272008fc 0 0x10>;
281			clock-names = "link";
282			clocks = <&cru ACLK_VOP_ROOT>;
283			#power-domain-cells = <1>;
284			#clock-cells = <0>;
285		};
286
287		aclk_sdgmac: aclk_sdgmac@272008a8 {
288			compatible = "rockchip,rk3576-clock-gate-link";
289			reg = <0 0x272008a8 0 0x10>;
290			clock-names = "link";
291			clocks = <&cru ACLK_NVM_ROOT>;
292			#power-domain-cells = <1>;
293			#clock-cells = <0>;
294		};
295
296		hclk_sdgmac: hclk_sdgmac@272008a8 {
297			compatible = "rockchip,rk3576-clock-gate-link";
298			reg = <0 0x272008a8 0 0x10>;
299			clock-names = "link";
300			clocks = <&aclk_sdgmac>;
301			#power-domain-cells = <1>;
302			#clock-cells = <0>;
303		};
304
305		aclk_vdpp: aclk_vdpp@272008c8 {
306			compatible = "rockchip,rk3576-clock-gate-link";
307			reg = <0 0x272008c8 0 0x10>;
308			clock-names = "link";
309			clocks = <&cru ACLK_VPU_ROOT>;
310			#power-domain-cells = <1>;
311			#clock-cells = <0>;
312		};
313
314		aclk_ebc: aclk_ebc@272008c8 {
315			compatible = "rockchip,rk3576-clock-gate-link";
316			reg = <0 0x272008c8 0 0x10>;
317			clock-names = "link";
318			clocks = <&cru ACLK_VPU_ROOT>;
319			#power-domain-cells = <1>;
320			#clock-cells = <0>;
321		};
322
323		aclk_jpeg: aclk_jpeg@272008c8 {
324			compatible = "rockchip,rk3576-clock-gate-link";
325			reg = <0 0x272008c8 0 0x10>;
326			clock-names = "link";
327			clocks = <&cru ACLK_VPU_ROOT>;
328			#power-domain-cells = <1>;
329			#clock-cells = <0>;
330		};
331
332		aclk_vepu0: aclk_vepu0@272008cc {
333			compatible = "rockchip,rk3576-clock-gate-link";
334			reg = <0 0x272008cc 0 0x10>;
335			clock-names = "link";
336			clocks = <&cru ACLK_VI_ROOT>;
337			#power-domain-cells = <1>;
338			#clock-cells = <0>;
339		};
340
341		hclk_vo1: hclk_vo1@2720090c {
342			compatible = "rockchip,rk3576-clock-gate-link";
343			reg = <0 0x2720090c 0 0x10>;
344			clock-names = "link";
345			clocks = <&cru HCLK_VOP_ROOT>;
346			#power-domain-cells = <1>;
347			#clock-cells = <0>;
348		};
349
350		hclk_vo0: hclk_vo0@272008fc {
351			compatible = "rockchip,rk3576-clock-gate-link";
352			reg = <0 0x272008fc 0 0x10>;
353			clock-names = "link";
354			clocks = <&cru HCLK_VOP_ROOT>;
355			#power-domain-cells = <1>;
356			#clock-cells = <0>;
357		};
358
359		aclk_dsmc: aclk_dsmc@272008ac {
360			compatible = "rockchip,rk3576-clock-gate-link";
361			reg = <0 0x272008ac 0 0x10>;
362			clock-names = "link";
363			clocks = <&cru HCLK_NVM_ROOT>;
364			#power-domain-cells = <1>;
365			#clock-cells = <0>;
366		};
367
368		pclk_sdgmac: pclk_sdgmac@272008a8 {
369			compatible = "rockchip,rk3576-clock-gate-link";
370			reg = <0 0x272008a8 0 0x10>;
371			clock-names = "link";
372			clocks = <&aclk_dsmc>;
373			#power-domain-cells = <1>;
374			#clock-cells = <0>;
375		};
376
377		hclk_vepu0: hclk_vepu0@272008cc {
378			compatible = "rockchip,rk3576-clock-gate-link";
379			reg = <0 0x272008cc 0 0x10>;
380			clock-names = "link";
381			clocks = <&cru HCLK_VI_ROOT>;
382			#power-domain-cells = <1>;
383			#clock-cells = <0>;
384		};
385	};
386
387	cpus {
388		#address-cells = <1>;
389		#size-cells = <0>;
390
391		cpu-map {
392			cluster0 {
393				core0 {
394					cpu = <&cpu_l0>;
395				};
396				core1 {
397					cpu = <&cpu_l1>;
398				};
399				core2 {
400					cpu = <&cpu_l2>;
401				};
402				core3 {
403					cpu = <&cpu_l3>;
404				};
405			};
406			cluster1 {
407				core0 {
408					cpu = <&cpu_b0>;
409				};
410				core1 {
411					cpu = <&cpu_b1>;
412				};
413				core2 {
414					cpu = <&cpu_b2>;
415				};
416				core3 {
417					cpu = <&cpu_b3>;
418				};
419			};
420		};
421
422		cpu_l0: cpu@0 {
423			device_type = "cpu";
424			compatible = "arm,cortex-a53";
425			reg = <0x0>;
426			enable-method = "psci";
427			capacity-dmips-mhz = <485>;
428			clocks = <&cru ARMCLK_L>;
429			operating-points-v2 = <&cluster0_opp_table>;
430		};
431
432		cpu_l1: cpu@1 {
433			device_type = "cpu";
434			compatible = "arm,cortex-a53";
435			reg = <0x1>;
436			enable-method = "psci";
437			capacity-dmips-mhz = <485>;
438			clocks = <&cru ARMCLK_L>;
439			operating-points-v2 = <&cluster0_opp_table>;
440		};
441
442		cpu_l2: cpu@2 {
443			device_type = "cpu";
444			compatible = "arm,cortex-a53";
445			reg = <0x2>;
446			enable-method = "psci";
447			capacity-dmips-mhz = <485>;
448			clocks = <&cru ARMCLK_L>;
449			operating-points-v2 = <&cluster0_opp_table>;
450		};
451
452		cpu_l3: cpu@3 {
453			device_type = "cpu";
454			compatible = "arm,cortex-a53";
455			reg = <0x3>;
456			enable-method = "psci";
457			capacity-dmips-mhz = <485>;
458			clocks = <&cru ARMCLK_L>;
459			operating-points-v2 = <&cluster0_opp_table>;
460		};
461
462		cpu_b0: cpu@100 {
463			device_type = "cpu";
464			compatible = "arm,cortex-a72";
465			reg = <0x100>;
466			enable-method = "psci";
467			capacity-dmips-mhz = <1024>;
468			clocks = <&cru ARMCLK_B>;
469			operating-points-v2 = <&cluster1_opp_table>;
470		};
471
472		cpu_b1: cpu@101 {
473			device_type = "cpu";
474			compatible = "arm,cortex-a72";
475			reg = <0x101>;
476			enable-method = "psci";
477			capacity-dmips-mhz = <1024>;
478			clocks = <&cru ARMCLK_B>;
479			operating-points-v2 = <&cluster1_opp_table>;
480		};
481
482		cpu_b2: cpu@102 {
483			device_type = "cpu";
484			compatible = "arm,cortex-a72";
485			reg = <0x102>;
486			enable-method = "psci";
487			capacity-dmips-mhz = <1024>;
488			clocks = <&cru ARMCLK_B>;
489			operating-points-v2 = <&cluster1_opp_table>;
490		};
491
492		cpu_b3: cpu@103 {
493			device_type = "cpu";
494			compatible = "arm,cortex-a72";
495			reg = <0x103>;
496			enable-method = "psci";
497			capacity-dmips-mhz = <1024>;
498			clocks = <&cru ARMCLK_B>;
499			operating-points-v2 = <&cluster1_opp_table>;
500		};
501	};
502
503	cluster0_opp_table: cluster0-opp-table {
504		compatible = "operating-points-v2";
505		opp-shared;
506
507		opp-408000000 {
508			opp-hz = /bits/ 64 <408000000>;
509			opp-microvolt = <950000 950000 950000>;
510			clock-latency-ns = <40000>;
511		};
512		opp-600000000 {
513			opp-hz = /bits/ 64 <600000000>;
514			opp-microvolt = <950000 950000 950000>;
515			clock-latency-ns = <40000>;
516		};
517		opp-816000000 {
518			opp-hz = /bits/ 64 <816000000>;
519			opp-microvolt = <950000 950000 950000>;
520			clock-latency-ns = <40000>;
521		};
522		opp-1008000000 {
523			opp-hz = /bits/ 64 <1008000000>;
524			opp-microvolt = <950000 950000 950000>;
525			clock-latency-ns = <40000>;
526		};
527		opp-1200000000 {
528			opp-hz = /bits/ 64 <1200000000>;
529			opp-microvolt = <950000 950000 950000>;
530			clock-latency-ns = <40000>;
531		};
532		opp-1416000000 {
533			opp-hz = /bits/ 64 <1416000000>;
534			opp-microvolt = <950000 950000 950000>;
535			clock-latency-ns = <40000>;
536		};
537	};
538
539	cluster1_opp_table: cluster1-opp-table {
540		compatible = "operating-points-v2";
541		opp-shared;
542
543		opp-408000000 {
544			opp-hz = /bits/ 64 <408000000>;
545			opp-microvolt = <950000 950000 950000>;
546			clock-latency-ns = <40000>;
547		};
548		opp-600000000 {
549			opp-hz = /bits/ 64 <600000000>;
550			opp-microvolt = <950000 950000 950000>;
551			clock-latency-ns = <40000>;
552		};
553		opp-816000000 {
554			opp-hz = /bits/ 64 <816000000>;
555			opp-microvolt = <950000 950000 950000>;
556			clock-latency-ns = <40000>;
557		};
558		opp-1008000000 {
559			opp-hz = /bits/ 64 <1008000000>;
560			opp-microvolt = <950000 950000 950000>;
561			clock-latency-ns = <40000>;
562		};
563		opp-1200000000 {
564			opp-hz = /bits/ 64 <1200000000>;
565			opp-microvolt = <950000 950000 950000>;
566			clock-latency-ns = <40000>;
567		};
568		opp-1416000000 {
569			opp-hz = /bits/ 64 <1416000000>;
570			opp-microvolt = <950000 950000 950000>;
571			clock-latency-ns = <40000>;
572		};
573		opp-1608000000 {
574			opp-hz = /bits/ 64 <1608000000>;
575			opp-microvolt = <950000 950000 950000>;
576			clock-latency-ns = <40000>;
577		};
578	};
579
580	cpuinfo {
581		compatible = "rockchip,cpuinfo";
582		nvmem-cells = <&otp_id>, <&otp_cpu_version>, <&cpu_code>;
583		nvmem-cell-names = "id", "cpu-version", "cpu-code";
584	};
585
586	csi2_dcphy0: csi2-dcphy0 {
587		compatible = "rockchip,rk3576-csi2-dphy";
588		rockchip,hw = <&csi2_dphy0_hw>, <&csi2_dphy1_hw>;
589		phys = <&mipidcphy0>;
590		phy-names = "dcphy0";
591		status = "disabled";
592	};
593
594	csi2_dphy0: csi2-dphy0 {
595		compatible = "rockchip,rk3576-csi2-dphy";
596		rockchip,hw = <&csi2_dphy0_hw>, <&csi2_dphy1_hw>;
597		phys = <&mipidcphy0>;
598		phy-names = "dcphy0";
599		status = "disabled";
600	};
601
602	csi2_dphy1: csi2-dphy1 {
603		compatible = "rockchip,rk3576-csi2-dphy";
604		rockchip,hw = <&csi2_dphy0_hw>, <&csi2_dphy1_hw>;
605		phys = <&mipidcphy0>;
606		phy-names = "dcphy0";
607		status = "disabled";
608	};
609
610	csi2_dphy2: csi2-dphy2 {
611		compatible = "rockchip,rk3576-csi2-dphy";
612		rockchip,hw = <&csi2_dphy0_hw>, <&csi2_dphy1_hw>;
613		phys = <&mipidcphy0>;
614		phy-names = "dcphy0";
615		status = "disabled";
616	};
617
618	csi2_dphy3: csi2-dphy3 {
619		compatible = "rockchip,rk3576-csi2-dphy";
620		rockchip,hw = <&csi2_dphy0_hw>, <&csi2_dphy1_hw>;
621		phys = <&mipidcphy0>;
622		phy-names = "dcphy0";
623		status = "disabled";
624	};
625
626	csi2_dphy4: csi2-dphy4 {
627		compatible = "rockchip,rk3576-csi2-dphy";
628		rockchip,hw = <&csi2_dphy0_hw>, <&csi2_dphy1_hw>;
629		phys = <&mipidcphy0>;
630		phy-names = "dcphy0";
631		status = "disabled";
632	};
633
634	csi2_dphy5: csi2-dphy5 {
635		compatible = "rockchip,rk3576-csi2-dphy";
636		rockchip,hw = <&csi2_dphy0_hw>, <&csi2_dphy1_hw>;
637		phys = <&mipidcphy0>;
638		phy-names = "dcphy0";
639		status = "disabled";
640	};
641
642	display_subsystem: display-subsystem {
643		compatible = "rockchip,display-subsystem";
644		ports = <&vop_out>, <&vopl_out>;
645
646		route {
647			route_dsi: route-dsi {
648				status = "disabled";
649				logo,uboot = "logo.bmp";
650				logo,kernel = "logo_kernel.bmp";
651				logo,mode = "center";
652				charge_logo,mode = "center";
653				connect = <&vp2_out_dsi>;
654			};
655
656			route_edp: route-edp {
657				status = "disabled";
658				logo,uboot = "logo.bmp";
659				logo,kernel = "logo_kernel.bmp";
660				logo,mode = "center";
661				charge_logo,mode = "center";
662				connect = <&vp1_out_edp>;
663			};
664
665			route_hdmi: route-hdmi {
666				status = "disabled";
667				logo,uboot = "logo.bmp";
668				logo,kernel = "logo_kernel.bmp";
669				logo,mode = "center";
670				charge_logo,mode = "center";
671				connect = <&vp0_out_hdmi>;
672			};
673
674			route_dp0: route-dp0 {
675				status = "disabled";
676				logo,uboot = "logo.bmp";
677				logo,kernel = "logo_kernel.bmp";
678				logo,mode = "center";
679				charge_logo,mode = "center";
680				connect = <&vp0_out_dp0>;
681			};
682
683			route_rgb: route-rgb {
684				status = "disabled";
685				logo,uboot = "logo.bmp";
686				logo,kernel = "logo_kernel.bmp";
687				logo,mode = "center";
688				charge_logo,mode = "center";
689				connect = <&vp2_out_rgb>;
690			};
691		};
692	};
693
694	firmware: firmware {
695		scmi: scmi {
696			compatible = "arm,scmi-smc";
697			arm,smc-id = <0x82000010>;
698			shmem = <&scmi_shmem>;
699			#address-cells = <1>;
700			#size-cells = <0>;
701
702			scmi_clk: protocol@14 {
703				reg = <0x14>;
704				#clock-cells = <1>;
705			};
706		};
707	};
708
709	mipi0_csi2: mipi0-csi2 {
710		compatible = "rockchip,rk3576-mipi-csi2";
711		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>,
712			      <&mipi2_csi2_hw>, <&mipi3_csi2_hw>,
713			      <&mipi4_csi2_hw>;
714		status = "disabled";
715	};
716
717	mipi1_csi2: mipi1-csi2 {
718		compatible = "rockchip,rk3576-mipi-csi2";
719		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>,
720			      <&mipi2_csi2_hw>, <&mipi3_csi2_hw>,
721			      <&mipi4_csi2_hw>;
722		status = "disabled";
723	};
724
725	mipi2_csi2: mipi2-csi2 {
726		compatible = "rockchip,rk3576-mipi-csi2";
727		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>,
728			      <&mipi2_csi2_hw>, <&mipi3_csi2_hw>,
729			      <&mipi4_csi2_hw>;
730		status = "disabled";
731	};
732
733	mipi3_csi2: mipi3-csi2 {
734		compatible = "rockchip,rk3576-mipi-csi2";
735		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>,
736			      <&mipi2_csi2_hw>, <&mipi3_csi2_hw>,
737			      <&mipi4_csi2_hw>;
738		status = "disabled";
739	};
740
741	mipi4_csi2: mipi4-csi2 {
742		compatible = "rockchip,rk3576-mipi-csi2";
743		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>,
744			      <&mipi2_csi2_hw>, <&mipi3_csi2_hw>,
745			      <&mipi4_csi2_hw>;
746		status = "disabled";
747	};
748
749	mpp_srv: mpp-srv {
750		compatible = "rockchip,mpp-service";
751		rockchip,taskqueue-count = <6>;
752		rockchip,resetgroup-count = <1>;
753		status = "disabled";
754	};
755
756	pmu_a53: pmu-a53 {
757		compatible = "arm,cortex-a53-pmu";
758		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
759			     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
760			     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
761			     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
762		interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>, <&cpu_l3>;
763	};
764
765	pmu_a72: pmu-a72 {
766		compatible = "arm,cortex-a72-pmu";
767		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
768			     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
769			     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
770			     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
771		interrupt-affinity = <&cpu_b0>, <&cpu_b1>, <&cpu_b2>, <&cpu_b3>;
772	};
773
774	psci: psci {
775		compatible = "arm,psci-1.0";
776		method = "smc";
777	};
778
779	rkcif_dvp: rkcif-dvp {
780		compatible = "rockchip,rkcif-dvp";
781		rockchip,hw = <&rkcif>;
782		iommus = <&rkcif_mmu>;
783		status = "disabled";
784	};
785
786	rkcif_dvp_sditf: rkcif-dvp-sditf {
787		compatible = "rockchip,rkcif-sditf";
788		rockchip,cif = <&rkcif_dvp>;
789		status = "disabled";
790	};
791
792	rkcif_mipi_lvds: rkcif-mipi-lvds {
793		compatible = "rockchip,rkcif-mipi-lvds";
794		rockchip,hw = <&rkcif>;
795		iommus = <&rkcif_mmu>;
796		status = "disabled";
797	};
798
799	rkcif_mipi_lvds_sditf: rkcif-mipi-lvds-sditf {
800		compatible = "rockchip,rkcif-sditf";
801		rockchip,cif = <&rkcif_mipi_lvds>;
802		status = "disabled";
803	};
804
805	rkcif_mipi_lvds_sditf_vir1: rkcif-mipi-lvds-sditf-vir1 {
806		compatible = "rockchip,rkcif-sditf";
807		rockchip,cif = <&rkcif_mipi_lvds>;
808		status = "disabled";
809	};
810
811	rkcif_mipi_lvds_sditf_vir2: rkcif-mipi-lvds-sditf-vir2 {
812		compatible = "rockchip,rkcif-sditf";
813		rockchip,cif = <&rkcif_mipi_lvds>;
814		status = "disabled";
815	};
816
817	rkcif_mipi_lvds_sditf_vir3: rkcif-mipi-lvds-sditf-vir3 {
818		compatible = "rockchip,rkcif-sditf";
819		rockchip,cif = <&rkcif_mipi_lvds>;
820		status = "disabled";
821	};
822
823	rkcif_mipi_lvds1: rkcif-mipi-lvds1 {
824		compatible = "rockchip,rkcif-mipi-lvds";
825		rockchip,hw = <&rkcif>;
826		iommus = <&rkcif_mmu>;
827		status = "disabled";
828	};
829
830	rkcif_mipi_lvds1_sditf: rkcif-mipi-lvds1-sditf {
831		compatible = "rockchip,rkcif-sditf";
832		rockchip,cif = <&rkcif_mipi_lvds1>;
833		status = "disabled";
834	};
835
836	rkcif_mipi_lvds1_sditf_vir1: rkcif-mipi-lvds1-sditf-vir1 {
837		compatible = "rockchip,rkcif-sditf";
838		rockchip,cif = <&rkcif_mipi_lvds1>;
839		status = "disabled";
840	};
841
842	rkcif_mipi_lvds1_sditf_vir2: rkcif-mipi-lvds1-sditf-vir2 {
843		compatible = "rockchip,rkcif-sditf";
844		rockchip,cif = <&rkcif_mipi_lvds1>;
845		status = "disabled";
846	};
847
848	rkcif_mipi_lvds1_sditf_vir3: rkcif-mipi-lvds1-sditf-vir3 {
849		compatible = "rockchip,rkcif-sditf";
850		rockchip,cif = <&rkcif_mipi_lvds1>;
851		status = "disabled";
852	};
853
854	rkcif_mipi_lvds2: rkcif-mipi-lvds2 {
855		compatible = "rockchip,rkcif-mipi-lvds";
856		rockchip,hw = <&rkcif>;
857		iommus = <&rkcif_mmu>;
858		status = "disabled";
859	};
860
861	rkcif_mipi_lvds2_sditf: rkcif-mipi-lvds2-sditf {
862		compatible = "rockchip,rkcif-sditf";
863		rockchip,cif = <&rkcif_mipi_lvds2>;
864		status = "disabled";
865	};
866
867	rkcif_mipi_lvds2_sditf_vir1: rkcif-mipi-lvds2-sditf-vir1 {
868		compatible = "rockchip,rkcif-sditf";
869		rockchip,cif = <&rkcif_mipi_lvds2>;
870		status = "disabled";
871	};
872
873	rkcif_mipi_lvds2_sditf_vir2: rkcif-mipi-lvds2-sditf-vir2 {
874		compatible = "rockchip,rkcif-sditf";
875		rockchip,cif = <&rkcif_mipi_lvds2>;
876		status = "disabled";
877	};
878
879	rkcif_mipi_lvds2_sditf_vir3: rkcif-mipi-lvds2-sditf-vir3 {
880		compatible = "rockchip,rkcif-sditf";
881		rockchip,cif = <&rkcif_mipi_lvds2>;
882		status = "disabled";
883	};
884
885	rkcif_mipi_lvds3: rkcif-mipi-lvds3 {
886		compatible = "rockchip,rkcif-mipi-lvds";
887		rockchip,hw = <&rkcif>;
888		iommus = <&rkcif_mmu>;
889		status = "disabled";
890	};
891
892	rkcif_mipi_lvds3_sditf: rkcif-mipi-lvds3-sditf {
893		compatible = "rockchip,rkcif-sditf";
894		rockchip,cif = <&rkcif_mipi_lvds3>;
895		status = "disabled";
896	};
897
898	rkcif_mipi_lvds3_sditf_vir1: rkcif-mipi-lvds3-sditf-vir1 {
899		compatible = "rockchip,rkcif-sditf";
900		rockchip,cif = <&rkcif_mipi_lvds3>;
901		status = "disabled";
902	};
903
904	rkcif_mipi_lvds3_sditf_vir2: rkcif-mipi-lvds3-sditf-vir2 {
905		compatible = "rockchip,rkcif-sditf";
906		rockchip,cif = <&rkcif_mipi_lvds3>;
907		status = "disabled";
908	};
909
910	rkcif_mipi_lvds3_sditf_vir3: rkcif-mipi-lvds3-sditf-vir3 {
911		compatible = "rockchip,rkcif-sditf";
912		rockchip,cif = <&rkcif_mipi_lvds3>;
913		status = "disabled";
914	};
915
916	rkcif_mipi_lvds4: rkcif-mipi-lvds4 {
917		compatible = "rockchip,rkcif-mipi-lvds";
918		rockchip,hw = <&rkcif>;
919		iommus = <&rkcif_mmu>;
920		status = "disabled";
921	};
922
923	rkcif_mipi_lvds4_sditf: rkcif-mipi-lvds4-sditf {
924		compatible = "rockchip,rkcif-sditf";
925		rockchip,cif = <&rkcif_mipi_lvds4>;
926		status = "disabled";
927	};
928
929	rkcif_mipi_lvds4_sditf_vir1: rkcif-mipi-lvds4-sditf-vir1 {
930		compatible = "rockchip,rkcif-sditf";
931		rockchip,cif = <&rkcif_mipi_lvds4>;
932		status = "disabled";
933	};
934
935	rkcif_mipi_lvds4_sditf_vir2: rkcif-mipi-lvds4-sditf-vir2 {
936		compatible = "rockchip,rkcif-sditf";
937		rockchip,cif = <&rkcif_mipi_lvds4>;
938		status = "disabled";
939	};
940
941	rkcif_mipi_lvds4_sditf_vir3: rkcif-mipi-lvds4-sditf-vir3 {
942		compatible = "rockchip,rkcif-sditf";
943		rockchip,cif = <&rkcif_mipi_lvds4>;
944		status = "disabled";
945	};
946
947	rkisp_vir0: rkisp-vir0 {
948		compatible = "rockchip,rkisp-vir";
949		rockchip,hw = <&rkisp>;
950		status = "disabled";
951	};
952
953	rkisp_vir1: rkisp-vir1 {
954		compatible = "rockchip,rkisp-vir";
955		rockchip,hw = <&rkisp>;
956		status = "disabled";
957	};
958
959	rkisp_vir2: rkisp-vir2 {
960		compatible = "rockchip,rkisp-vir";
961		rockchip,hw = <&rkisp>;
962		status = "disabled";
963	};
964
965	rkisp_vir3: rkisp-vir3 {
966		compatible = "rockchip,rkisp-vir";
967		rockchip,hw = <&rkisp>;
968		status = "disabled";
969	};
970
971	rkisp_vir4: rkisp-vir4 {
972		compatible = "rockchip,rkisp-vir";
973		rockchip,hw = <&rkisp>;
974		status = "disabled";
975	};
976
977	rkisp_vir5: rkisp-vir5 {
978		compatible = "rockchip,rkisp-vir";
979		rockchip,hw = <&rkisp>;
980		status = "disabled";
981	};
982
983	rkisp_vir0_sditf: rkisp-vir0-sditf {
984		compatible = "rockchip,rkisp-sditf";
985		rockchip,isp = <&rkisp_vir0>;
986		status = "disabled";
987
988		port {
989			isp_sditf0: endpoint {
990				remote-endpoint = <&vpss0_in>;
991			};
992		};
993	};
994
995	rkisp_vir1_sditf: rkisp-vir1-sditf {
996		compatible = "rockchip,rkisp-sditf";
997		rockchip,isp = <&rkisp_vir1>;
998		status = "disabled";
999
1000		port {
1001			isp_sditf1: endpoint {
1002				remote-endpoint = <&vpss1_in>;
1003			};
1004		};
1005	};
1006
1007	rkisp_vir2_sditf: rkisp-vir2-sditf {
1008		compatible = "rockchip,rkisp-sditf";
1009		rockchip,isp = <&rkisp_vir2>;
1010		status = "disabled";
1011
1012		port {
1013			isp_sditf2: endpoint {
1014				remote-endpoint = <&vpss2_in>;
1015			};
1016		};
1017	};
1018
1019	rkisp_vir3_sditf: rkisp-vir3-sditf {
1020		compatible = "rockchip,rkisp-sditf";
1021		rockchip,isp = <&rkisp_vir3>;
1022		status = "disabled";
1023
1024		port {
1025			isp_sditf3: endpoint {
1026				remote-endpoint = <&vpss3_in>;
1027			};
1028		};
1029	};
1030
1031	rkisp_vir4_sditf: rkisp-vir4-sditf {
1032		compatible = "rockchip,rkisp-sditf";
1033		rockchip,isp = <&rkisp_vir4>;
1034		status = "disabled";
1035
1036		port {
1037			isp_sditf4: endpoint {
1038				remote-endpoint = <&vpss4_in>;
1039			};
1040		};
1041	};
1042
1043	rkisp_vir5_sditf: rkisp-vir5-sditf {
1044		compatible = "rockchip,rkisp-sditf";
1045		rockchip,isp = <&rkisp_vir5>;
1046		status = "disabled";
1047
1048		port {
1049			isp_sditf5: endpoint {
1050				remote-endpoint = <&vpss5_in>;
1051			};
1052		};
1053	};
1054
1055	rkvenc_ccu: rkvenc-ccu {
1056		compatible = "rockchip,rkv-encoder-rk3576-ccu", "rockchip,rkv-encoder-v2-ccu";
1057		status = "disabled";
1058	};
1059
1060	rkvpss_vir0: rkvpss-vir0 {
1061		compatible = "rockchip,rkvpss-vir";
1062		rockchip,hw = <&rkvpss>;
1063		status = "disabled";
1064
1065		port {
1066			vpss0_in: endpoint {
1067				remote-endpoint = <&isp_sditf0>;
1068			};
1069		};
1070	};
1071
1072	rkvpss_vir1: rkvpss-vir1 {
1073		compatible = "rockchip,rkvpss-vir";
1074		rockchip,hw = <&rkvpss>;
1075		status = "disabled";
1076
1077		port {
1078			vpss1_in: endpoint {
1079				remote-endpoint = <&isp_sditf1>;
1080			};
1081		};
1082	};
1083
1084	rkvpss_vir2: rkvpss-vir2 {
1085		compatible = "rockchip,rkvpss-vir";
1086		rockchip,hw = <&rkvpss>;
1087		status = "disabled";
1088
1089		port {
1090			vpss2_in: endpoint {
1091				remote-endpoint = <&isp_sditf2>;
1092			};
1093		};
1094	};
1095
1096	rkvpss_vir3: rkvpss-vir3 {
1097		compatible = "rockchip,rkvpss-vir";
1098		rockchip,hw = <&rkvpss>;
1099		status = "disabled";
1100
1101		port {
1102			vpss3_in: endpoint {
1103				remote-endpoint = <&isp_sditf3>;
1104			};
1105		};
1106	};
1107
1108	rkvpss_vir4: rkvpss-vir4 {
1109		compatible = "rockchip,rkvpss-vir";
1110		rockchip,hw = <&rkvpss>;
1111		status = "disabled";
1112
1113		port {
1114			vpss4_in: endpoint {
1115				remote-endpoint = <&isp_sditf4>;
1116			};
1117		};
1118	};
1119
1120	rkvpss_vir5: rkvpss-vir5 {
1121		compatible = "rockchip,rkvpss-vir";
1122		rockchip,hw = <&rkvpss>;
1123		status = "disabled";
1124
1125		port {
1126			vpss5_in: endpoint {
1127				remote-endpoint = <&isp_sditf5>;
1128			};
1129		};
1130	};
1131
1132	thermal_zones: thermal-zones {
1133		soc_thermal: soc-thermal {
1134			polling-delay-passive = <20>; /* milliseconds */
1135			polling-delay = <1000>; /* milliseconds */
1136			thermal-sensors = <&tsadc 0>;
1137			trips {
1138				soc_crit: soc-crit {
1139					/* millicelsius */
1140					temperature = <115000>;
1141					/* millicelsius */
1142					hysteresis = <2000>;
1143					type = "critical";
1144				};
1145			};
1146		};
1147		bigcore_thermal: bigcore-thermal {
1148			polling-delay-passive = <20>; /* milliseconds */
1149			polling-delay = <1000>; /* milliseconds */
1150			thermal-sensors = <&tsadc 1>;
1151			trips {
1152				bigcore_crit: bigcore-crit {
1153					/* millicelsius */
1154					temperature = <115000>;
1155					/* millicelsius */
1156					hysteresis = <2000>;
1157					type = "critical";
1158				};
1159			};
1160		};
1161		little_core_thermal: little-core-thermal {
1162			polling-delay-passive = <20>; /* milliseconds */
1163			polling-delay = <1000>; /* milliseconds */
1164			thermal-sensors = <&tsadc 2>;
1165			trips {
1166				little_core_crit: little-core-crit {
1167					/* millicelsius */
1168					temperature = <115000>;
1169					/* millicelsius */
1170					hysteresis = <2000>;
1171					type = "critical";
1172				};
1173			};
1174		};
1175		ddr_thermal: ddr-thermal {
1176			polling-delay-passive = <20>; /* milliseconds */
1177			polling-delay = <1000>; /* milliseconds */
1178			thermal-sensors = <&tsadc 3>;
1179			trips {
1180				ddr_crit: ddr-crit {
1181					/* millicelsius */
1182					temperature = <115000>;
1183					/* millicelsius */
1184					hysteresis = <2000>;
1185					type = "critical";
1186				};
1187			};
1188		};
1189		npu_thermal: npu-thermal {
1190			polling-delay-passive = <20>; /* milliseconds */
1191			polling-delay = <1000>; /* milliseconds */
1192			thermal-sensors = <&tsadc 4>;
1193			trips {
1194				npu_crit: npu-crit {
1195					/* millicelsius */
1196					temperature = <115000>;
1197					/* millicelsius */
1198					hysteresis = <2000>;
1199					type = "critical";
1200				};
1201			};
1202		};
1203		gpu_thermal: gpu-thermal {
1204			polling-delay-passive = <20>; /* milliseconds */
1205			polling-delay = <1000>; /* milliseconds */
1206			thermal-sensors = <&tsadc 5>;
1207			trips {
1208				gpu_crit: gpu-crit {
1209					/* millicelsius */
1210					temperature = <115000>;
1211					/* millicelsius */
1212					hysteresis = <2000>;
1213					type = "critical";
1214				};
1215			};
1216		};
1217	};
1218
1219	timer {
1220		compatible = "arm,armv8-timer";
1221		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
1222			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
1223			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
1224			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
1225	};
1226
1227	usb_drd0_dwc3: usb@23000000 {
1228		compatible = "rockchip,rk3576-dwc3", "snps,dwc3";
1229		reg = <0x0 0x23000000 0x0 0x400000>;
1230		clocks = <&cru CLK_REF_USB3OTG0>,
1231			 <&cru CLK_SUSPEND_USB3OTG0>,
1232			 <&cru ACLK_USB3OTG0>;
1233		clock-names = "ref", "suspend", "bus_clk";
1234		interrupts = <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>;
1235		power-domains = <&power RK3576_PD_USB>;
1236		resets = <&cru SRST_A_USB3OTG0>;
1237		reset-names = "usb3-otg";
1238		dr_mode = "otg";
1239		phys = <&u2phy0_otg>, <&usbdp_phy_u3>;
1240		phy-names = "usb2-phy", "usb3-phy";
1241		phy_type = "utmi_wide";
1242		snps,dis_enblslpm_quirk;
1243		snps,dis-u1-entry-quirk;
1244		snps,dis-u2-entry-quirk;
1245		snps,dis-u2-freeclk-exists-quirk;
1246		snps,dis-del-phy-power-chg-quirk;
1247		snps,dis-tx-ipgap-linecheck-quirk;
1248		snps,parkmode-disable-hs-quirk;
1249		snps,parkmode-disable-ss-quirk;
1250		status = "disabled";
1251	};
1252
1253	usb_drd1_dwc3: usb@23400000 {
1254		compatible = "rockchip,rk3576-dwc3", "snps,dwc3";
1255		reg = <0x0 0x23400000 0x0 0x400000>;
1256		clocks = <&cru CLK_REF_USB3OTG1>,
1257			 <&cru CLK_SUSPEND_USB3OTG1>,
1258			 <&cru ACLK_USB3OTG1>;
1259		clock-names = "ref", "suspend", "bus_clk";
1260		interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>;
1261		power-domains = <&power RK3576_PD_PHP>;
1262		resets = <&cru SRST_A_USB3OTG1>;
1263		reset-names = "usb3-otg";
1264		dr_mode = "otg";
1265		phys = <&u2phy1_otg>, <&combphy1_psu PHY_TYPE_USB3>;
1266		phy-names = "usb2-phy", "usb3-phy";
1267		phy_type = "utmi_wide";
1268		snps,dis_enblslpm_quirk;
1269		snps,dis-u1-entry-quirk;
1270		snps,dis-u2-entry-quirk;
1271		snps,dis-u2-freeclk-exists-quirk;
1272		snps,dis-del-phy-power-chg-quirk;
1273		snps,dis-tx-ipgap-linecheck-quirk;
1274		snps,dis_rxdet_inp3_quirk;
1275		snps,parkmode-disable-hs-quirk;
1276		snps,parkmode-disable-ss-quirk;
1277		status = "disabled";
1278	};
1279
1280	sys_grf: syscon@2600a000 {
1281		compatible = "rockchip,rk3576-sys-grf", "syscon", "simple-mfd";
1282		reg = <0x0 0x2600a000 0x0 0x10000>;
1283	};
1284
1285	vo0_grf: syscon@2601a000 {
1286		compatible = "rockchip,rk3576-vo0-grf", "syscon";
1287		reg = <0x0 0x2601a000 0x0 0x2000>;
1288		clocks = <&cru PCLK_VO0_ROOT>;
1289	};
1290
1291	usb_grf: syscon@2601e000 {
1292		compatible = "rockchip,rk3576-usb-grf", "syscon";
1293		reg = <0x0 0x2601e000 0x0 0x1000>;
1294		clocks = <&cru PCLK_USB_ROOT>;
1295	};
1296
1297	php_grf: syscon@26020000 {
1298		compatible = "rockchip,rk3576-php-grf", "syscon";
1299		reg = <0x0 0x26020000 0x0 0x2000>;
1300		clocks = <&cru PCLK_PHP_ROOT>;
1301	};
1302
1303	pmu0_grf: syscon@26024000 {
1304		compatible = "rockchip,rk3576-pmu0-grf", "syscon", "simple-mfd";
1305		reg = <0x0 0x26024000 0x0 0x1000>;
1306
1307		reboot_mode: reboot-mode {
1308			compatible = "syscon-reboot-mode";
1309			offset = <0x40>;
1310			mode-bootloader = <BOOT_BL_DOWNLOAD>;
1311			mode-charge = <BOOT_CHARGING>;
1312			mode-fastboot = <BOOT_FASTBOOT>;
1313			mode-loader = <BOOT_BL_DOWNLOAD>;
1314			mode-normal = <BOOT_NORMAL>;
1315			mode-recovery = <BOOT_RECOVERY>;
1316			mode-ums = <BOOT_UMS>;
1317			mode-panic = <BOOT_PANIC>;
1318			mode-watchdog = <BOOT_WATCHDOG>;
1319			mode-quiescent = <BOOT_QUIESCENT>;
1320			/* add a mode to capture the ramdump through usb */
1321			mode-winusb = <BOOT_WINUSB>;
1322		};
1323	};
1324
1325	pipe_phy0_grf: syscon@26028000 {
1326		compatible = "rockchip,rk3576-pipe-phy-grf", "syscon";
1327		reg = <0x0 0x26028000 0x0 0x2000>;
1328		clocks = <&cru PCLK_PCIE2_COMBOPHY0>;
1329	};
1330
1331	pipe_phy1_grf: syscon@2602a000 {
1332		compatible = "rockchip,rk3576-pipe-phy-grf", "syscon";
1333		reg = <0x0 0x2602a000 0x0 0x2000>;
1334		clocks = <&cru PCLK_PCIE2_COMBOPHY1>;
1335	};
1336
1337	usbdpphy_grf: syscon@2602c000 {
1338		compatible = "rockchip,rk3576-usbdpphy-grf", "syscon";
1339		reg = <0x0 0x2602c000 0x0 0x2000>;
1340		clocks = <&cru PCLK_PMUPHY_ROOT>;
1341	};
1342
1343	usb2phy_grf: syscon@2602e000 {
1344		compatible = "rockchip,rk3576-usb2phy-grf", "syscon", "simple-mfd";
1345		reg = <0x0 0x2602e000 0x0 0x4000>;
1346		#address-cells = <1>;
1347		#size-cells = <1>;
1348		clocks = <&cru PCLK_PMUPHY_ROOT>;
1349
1350		u2phy0: usb2-phy@0 {
1351			compatible = "rockchip,rk3576-usb2phy";
1352			reg = <0x0 0x10>;
1353			resets = <&cru SRST_OTGPHY_0>, <&cru SRST_P_USBPHY_GRF_0>;
1354			reset-names = "phy", "apb";
1355			clocks = <&cru CLK_PHY_REF_SRC>;
1356			clock-names = "phyclk";
1357			clock-output-names = "usb480m_phy0";
1358			#clock-cells = <0>;
1359			rockchip,usbctrl-grf = <&usb_grf>;
1360			status = "disabled";
1361
1362			u2phy0_otg: otg-port {
1363				#phy-cells = <0>;
1364				interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
1365					     <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
1366					     <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1367				interrupt-names = "otg-bvalid", "otg-id", "linestate";
1368				status = "disabled";
1369			};
1370		};
1371
1372		u2phy1: usb2-phy@2000 {
1373			compatible = "rockchip,rk3576-usb2phy";
1374			reg = <0x2000 0x10>;
1375			resets = <&cru SRST_OTGPHY_1>, <&cru SRST_P_USBPHY_GRF_1>;
1376			reset-names = "phy", "apb";
1377			clocks = <&cru CLK_PHY_REF_SRC>;
1378			clock-names = "phyclk";
1379			clock-output-names = "usb480m_phy1";
1380			#clock-cells = <0>;
1381			rockchip,usbctrl-grf = <&php_grf>;
1382			status = "disabled";
1383
1384			u2phy1_otg: otg-port {
1385				#phy-cells = <0>;
1386				interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
1387					     <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>,
1388					     <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1389				interrupt-names = "otg-bvalid", "otg-id", "linestate";
1390				status = "disabled";
1391			};
1392		};
1393	};
1394
1395	hdptxphy_grf: syscon@26032000 {
1396		compatible = "rockchip,rk3576-hdptxphy-grf", "syscon";
1397		reg = <0x0 0x26032000 0x0 0x100>;
1398		clocks = <&cru PCLK_PMUPHY_ROOT>;
1399	};
1400
1401	mipidcphy0_grf: syscon@26034000 {
1402		compatible = "rockchip,rk3576-mipi-dcphy-grf", "syscon";
1403		reg = <0x0 0x26034000 0x0 0x2000>;
1404		clocks = <&cru PCLK_PMUPHY_ROOT>;
1405	};
1406
1407	vo1_grf: syscon@26036000 {
1408		compatible = "rockchip,rk3576-vo-grf", "syscon";
1409		reg = <0x0 0x26036000 0x0 0x100>;
1410		clocks = <&cru PCLK_VO1_ROOT>;
1411	};
1412
1413	sdgmac_grf: syscon@26038000 {
1414		compatible = "rockchip,rk3576-sdgmac-grf", "syscon";
1415		reg = <0x0 0x26038000 0x0 0x1000>;
1416		clocks = <&cru PCLK_SDGMAC_ROOT>;
1417	};
1418
1419	mipidphy0_grf: syscon@2603a000 {
1420		compatible = "rockchip,rk3576-mipi-dphy-grf", "syscon";
1421		reg = <0x0 0x2603a000 0x0 0x2000>;
1422		clocks = <&cru PCLK_PMUPHY_ROOT>;
1423	};
1424
1425	ioc_grf: syscon@26040000 {
1426		compatible = "rockchip,rk3576-ioc-grf", "syscon", "simple-mfd";
1427		reg = <0x0 0x26040000 0x0 0xc000>;
1428
1429		rgb: rgb {
1430			compatible = "rockchip,rk3576-rgb";
1431			pinctrl-names = "default";
1432			status = "disabled";
1433
1434			ports {
1435				#address-cells = <1>;
1436				#size-cells = <0>;
1437
1438				port@0 {
1439					reg = <0>;
1440					#address-cells = <1>;
1441					#size-cells = <0>;
1442
1443					rgb_in_vopl: endpoint@0 {
1444						reg = <0>;
1445						remote-endpoint = <&vopl_out_rgb>;
1446						status = "disabled";
1447					};
1448
1449					rgb_in_vp1: endpoint@1 {
1450						reg = <1>;
1451						remote-endpoint = <&vp1_out_rgb>;
1452						status = "disabled";
1453					};
1454
1455					rgb_in_vp2: endpoint@2 {
1456						reg = <2>;
1457						remote-endpoint = <&vp2_out_rgb>;
1458						status = "disabled";
1459					};
1460				};
1461			};
1462		};
1463	};
1464
1465	mipidphy1_grf: syscon@2604c000 {
1466		compatible = "rockchip,rk3576-mipi-dphy-grf", "syscon";
1467		reg = <0x0 0x2604c000 0x0 0x2000>;
1468	};
1469
1470	cru: clock-controller@27200000 {
1471		compatible = "rockchip,rk3576-cru";
1472		reg = <0x0 0x27200000 0x0 0x50000>;
1473		rockchip,grf = <&pmu0_grf>;
1474		#clock-cells = <1>;
1475		#reset-cells = <1>;
1476
1477		assigned-clocks =
1478			<&cru PLL_GPLL>, <&cru PLL_CPLL>,
1479			<&cru PLL_AUPLL>, <&cru CLK_UART_FRAC_0>,
1480			<&cru CLK_UART_FRAC_1>, <&cru CLK_UART_FRAC_2>;
1481		assigned-clock-rates =
1482			<1188000000>, <1000000000>,
1483			<786432000>, <18432000>,
1484			<48000000>, <64000000>;
1485	};
1486
1487	i2c0: i2c@27300000 {
1488		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
1489		reg = <0x0 0x27300000 0x0 0x1000>;
1490		clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
1491		clock-names = "i2c", "pclk";
1492		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1493		pinctrl-names = "default";
1494		pinctrl-0 = <&i2c0m0_xfer>;
1495		resets = <&cru SRST_I2C0>, <&cru SRST_P_I2C0>;
1496		reset-names = "i2c", "apb";
1497		#address-cells = <1>;
1498		#size-cells = <0>;
1499		status = "disabled";
1500	};
1501
1502	uart1: serial@27310000 {
1503		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
1504		reg = <0x0 0x27310000 0x0 0x100>;
1505		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
1506		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
1507		clock-names = "baudclk", "apb_pclk";
1508		reg-shift = <2>;
1509		reg-io-width = <4>;
1510		dmas = <&dmac0 8>, <&dmac0 9>;
1511		pinctrl-names = "default";
1512		pinctrl-0 = <&uart1m0_xfer>;
1513		status = "disabled";
1514	};
1515
1516	pwm0_2ch_0: pwm@27330000 {
1517		compatible = "rockchip,rk3576-pwm";
1518		reg = <0x0 0x27330000 0x0 0x1000>;
1519		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1520		#pwm-cells = <3>;
1521		pinctrl-names = "active";
1522		pinctrl-0 = <&pwm0m0_ch0>;
1523		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
1524		clock-names = "pwm", "pclk";
1525		status = "disabled";
1526	};
1527
1528	pwm0_2ch_1: pwm@27331000 {
1529		compatible = "rockchip,rk3576-pwm";
1530		reg = <0x0 0x27331000 0x0 0x1000>;
1531		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1532		#pwm-cells = <3>;
1533		pinctrl-names = "active";
1534		pinctrl-0 = <&pwm0m0_ch1>;
1535		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
1536		clock-names = "pwm", "pclk";
1537		status = "disabled";
1538	};
1539
1540	pmu: power-management@27380000 {
1541		compatible = "rockchip,rk3576-pmu", "syscon", "simple-mfd";
1542		reg = <0x0 0x27380000 0x0 0x800>;
1543
1544		power: power-controller {
1545			compatible = "rockchip,rk3576-power-controller";
1546			#power-domain-cells = <1>;
1547			#address-cells = <1>;
1548			#size-cells = <0>;
1549			status = "okay";
1550
1551			/* These power domains are grouped by VD_NPU */
1552			power-domain@RK3576_PD_NPU {
1553				reg = <RK3576_PD_NPU>;
1554				#address-cells = <1>;
1555				#size-cells = <0>;
1556
1557				power-domain@RK3576_PD_NPUTOP {
1558					reg = <RK3576_PD_NPUTOP>;
1559					#address-cells = <1>;
1560					#size-cells = <0>;
1561
1562					power-domain@RK3576_PD_NPU0 {
1563						reg = <RK3576_PD_NPU0>;
1564					};
1565					power-domain@RK3576_PD_NPU1 {
1566						reg = <RK3576_PD_NPU1>;
1567					};
1568				};
1569			};
1570			/* These power domains are grouped by VD_GPU */
1571			power-domain@RK3576_PD_GPU {
1572				reg = <RK3576_PD_GPU>;
1573			};
1574			/* These power domains are grouped by VD_LOGIC */
1575			power-domain@RK3576_PD_NVM {
1576				reg = <RK3576_PD_NVM>;
1577				#address-cells = <1>;
1578				#size-cells = <0>;
1579
1580				power-domain@RK3576_PD_SDGMAC {
1581					reg = <RK3576_PD_SDGMAC>;
1582				};
1583			};
1584			power-domain@RK3576_PD_PHP {
1585				reg = <RK3576_PD_PHP>;
1586				#address-cells = <1>;
1587				#size-cells = <0>;
1588
1589				power-domain@RK3576_PD_SUBPHP {
1590					reg = <RK3576_PD_SUBPHP>;
1591				};
1592			};
1593			power-domain@RK3576_PD_AUDIO {
1594				reg = <RK3576_PD_AUDIO>;
1595			};
1596			power-domain@RK3576_PD_VEPU1 {
1597				reg = <RK3576_PD_VEPU1>;
1598			};
1599			power-domain@RK3576_PD_VPU {
1600				reg = <RK3576_PD_VPU>;
1601			};
1602			power-domain@RK3576_PD_VDEC {
1603				reg = <RK3576_PD_VDEC>;
1604			};
1605			power-domain@RK3576_PD_VI {
1606				reg = <RK3576_PD_VI>;
1607				#address-cells = <1>;
1608				#size-cells = <0>;
1609
1610				power-domain@RK3576_PD_VEPU0 {
1611					reg = <RK3576_PD_VEPU0>;
1612				};
1613			};
1614			power-domain@RK3576_PD_VOP {
1615				reg = <RK3576_PD_VOP>;
1616				#address-cells = <1>;
1617				#size-cells = <0>;
1618
1619				power-domain@RK3576_PD_USB {
1620					reg = <RK3576_PD_USB>;
1621				};
1622				power-domain@RK3576_PD_VO0 {
1623					reg = <RK3576_PD_VO0>;
1624				};
1625				power-domain@RK3576_PD_VO1 {
1626					reg = <RK3576_PD_VO1>;
1627				};
1628			};
1629		};
1630	};
1631
1632	pdm0: pdm@273b0000 {
1633		compatible = "rockchip,rk3576-pdm";
1634		reg = <0x0 0x273b0000 0x0 0x1000>;
1635		interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
1636		clocks = <&cru MCLK_PDM0>, <&cru HCLK_PDM0>, <&cru CLK_PDM0_OUT>;
1637		clock-names = "pdm_clk", "pdm_hclk", "pdm_clk_out";
1638		dmas = <&dmac0 4>;
1639		dma-names = "rx";
1640		pinctrl-names = "default";
1641		pinctrl-0 = <&pdm0m0_clk0
1642			     &pdm0m0_clk1
1643			     &pdm0m0_sdi0
1644			     &pdm0m0_sdi1
1645			     &pdm0m0_sdi2
1646			     &pdm0m0_sdi3>;
1647		#sound-dai-cells = <0>;
1648		sound-name-prefix = "PDM0";
1649		status = "disabled";
1650	};
1651
1652	rknpu: npu@27700000 {
1653		compatible = "rockchip,rk3576-rknpu";
1654		reg = <0x0 0x27700000 0x0 0x8000>,
1655		      <0x0 0x27708000 0x0 0x8000>;
1656		interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
1657			     <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
1658		interrupt-names = "npu0_irq", "npu1_irq";
1659		clocks = <&cru ACLK_RKNN0>, <&cru ACLK_RKNN1>, <&cru HCLK_RKNN_ROOT>,
1660			 <&cru ACLK_RKNN_CBUF>, <&cru HCLK_RKNN_CBUF>;
1661		clock-names = "aclk0", "aclk1", "hclk_root",
1662			      "aclk_cbuf", "hclk_cbuf";
1663		resets = <&cru SRST_A_RKNN0>, <&cru SRST_A_RKNN1>,
1664			 <&cru SRST_A_RKNN_CBUF>, <&cru SRST_A_RKNN_CBUF>;
1665		reset-names = "srst_a0", "srst_a1",
1666			      "srst_a_cbuf", "srst_h_cbuf";
1667		power-domains = <&power RK3576_PD_NPU0>, <&power RK3576_PD_NPU1>;
1668		power-domain-names = "npu0", "npu1";
1669		iommus = <&rknpu_mmu>;
1670		status = "disabled";
1671	};
1672
1673	rknpu_mmu: iommu@27702000 {
1674		compatible = "rockchip,iommu-v2";
1675		reg = <0x0 0x27702000 0x0 0x100>,
1676		      <0x0 0x27702100 0x0 0x100>,
1677		      <0x0 0x2770a000 0x0 0x100>,
1678		      <0x0 0x2770a100 0x0 0x100>;
1679		interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
1680			     <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
1681		interrupt-names = "npu0_mmu", "npu1_mmu";
1682		clocks = <&cru ACLK_RKNN0>, <&cru ACLK_RKNN1>, <&cru HCLK_RKNN_ROOT>;
1683		clock-names = "aclk0", "aclk1", "iface";
1684		#iommu-cells = <0>;
1685		status = "disabled";
1686	};
1687
1688	gpu: gpu@27800000 {
1689		compatible = "arm,mali-bifrost";
1690		reg = <0x0 0x27800000 0x0 0x20000>;
1691
1692		interrupts = <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>,
1693			<GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
1694			<GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>;
1695		interrupt-names = "GPU", "MMU", "JOB";
1696
1697		upthreshold = <40>;
1698		downdifferential = <10>;
1699
1700		clocks = <&cru CLK_GPU>;
1701		clock-names = "clk_mali";
1702		power-domains = <&power RK3576_PD_GPU>;
1703		operating-points-v2 = <&gpu_opp_table>;
1704		#cooling-cells = <2>;
1705
1706		status = "disabled";
1707	};
1708
1709	gpu_opp_table: gpu-opp-table {
1710		compatible = "operating-points-v2";
1711
1712		opp-300000000 {
1713			opp-hz = /bits/ 64 <300000000>;
1714			opp-microvolt = <850000 850000 850000>;
1715		};
1716		opp-400000000 {
1717			opp-hz = /bits/ 64 <400000000>;
1718			opp-microvolt = <850000 850000 850000>;
1719		};
1720		opp-500000000 {
1721			opp-hz = /bits/ 64 <500000000>;
1722			opp-microvolt = <850000 850000 850000>;
1723		};
1724		opp-600000000 {
1725			opp-hz = /bits/ 64 <600000000>;
1726			opp-microvolt = <850000 850000 850000>;
1727		};
1728	};
1729
1730	ebc: ebc@27900000 {
1731		compatible = "rockchip,rk3576-ebc-tcon";
1732		reg = <0x0 0x27900000 0x0 0x5000>;
1733		interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>;
1734		clocks = <&cru HCLK_EBC>, <&cru ACLK_EBC>, <&cru DCLK_EBC>;
1735		clock-names = "hclk", "aclk", "dclk";
1736		pinctrl-names = "default";
1737		pinctrl-0 = <&vo_ebc_pins>;
1738		power-domains = <&power RK3576_PD_VPU>;
1739		rockchip,grf = <&sys_grf>;
1740		status = "disabled";
1741	};
1742
1743	vopl: vop@27900000 {
1744		compatible = "rockchip,rk3576-vop-lit";
1745		reg = <0x0 0x27900000 0x0 0x200>;
1746		reg-names = "regs";
1747		interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>;
1748		clocks = <&cru ACLK_EBC>, <&cru DCLK_EBC>, <&cru HCLK_EBC>;
1749		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1750		power-domains = <&power RK3576_PD_VPU>;
1751		rockchip,grf = <&ioc_grf>;
1752		rockchip,vo0_grf = <&vo0_grf>;
1753		status = "disabled";
1754
1755		vopl_out: port {
1756			#address-cells = <1>;
1757			#size-cells = <0>;
1758
1759			vopl_out_rgb: endpoint@0 {
1760				reg = <0>;
1761				remote-endpoint = <&rgb_in_vopl>;
1762			};
1763
1764			vopl_out_dsi: endpoint@1 {
1765				reg = <1>;
1766				remote-endpoint = <&dsi_in_vopl>;
1767			};
1768
1769			vopl_out_edp: endpoint@2 {
1770				reg = <2>;
1771				remote-endpoint = <&edp_in_vopl>;
1772			};
1773
1774			vopl_out_hdmi: endpoint@3 {
1775				reg = <3>;
1776				remote-endpoint = <&hdmi_in_vopl>;
1777			};
1778		};
1779	};
1780
1781	jpegd: jpegd@27910000 {
1782		compatible = "rockchip,rkv-jpeg-decoder-v1";
1783		reg = <0x0 0x27910000 0x0 0x330>;
1784		interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1785		interrupt-names = "irq_jpegd";
1786		clocks = <&aclk_jpeg>, <&cru HCLK_JPEG>;
1787		clock-names = "aclk_vcodec", "hclk_vcodec";
1788		rockchip,normal-rates = <700000000>, <0>;
1789		assigned-clocks = <&aclk_jpeg>;
1790		assigned-clock-rates = <700000000>;
1791		resets = <&cru SRST_A_JPEG>, <&cru SRST_H_JPEG>;
1792		reset-names = "shared_video_a", "shared_video_h";
1793		rockchip,skip-pmu-idle-request;
1794		iommus = <&jpeg_mmu>;
1795		rockchip,srv = <&mpp_srv>;
1796		rockchip,taskqueue-node = <0>;
1797		rockchip,resetgroup-node = <0>;
1798		power-domains = <&power RK3576_PD_VPU>;
1799		status = "disabled";
1800	};
1801
1802	jpege: jpege@27910800 {
1803		compatible = "rockchip,rkv-jpeg-encoder-v1";
1804		reg = <0x0 0x27910800 0x0 0x13c>;
1805		interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1806		interrupt-names = "irq_jpege";
1807		clocks = <&aclk_jpeg>, <&cru HCLK_JPEG>;
1808		clock-names = "aclk_vcodec", "hclk_vcodec";
1809		rockchip,normal-rates = <700000000>, <0>;
1810		assigned-clocks = <&aclk_jpeg>;
1811		assigned-clock-rates = <700000000>;
1812		resets = <&cru SRST_A_JPEG>, <&cru SRST_H_JPEG>;
1813		reset-names = "shared_video_a", "shared_video_h";
1814		rockchip,skip-pmu-idle-request;
1815		iommus = <&jpeg_mmu>;
1816		rockchip,srv = <&mpp_srv>;
1817		rockchip,taskqueue-node = <0>;
1818		rockchip,resetgroup-node = <0>;
1819		power-domains = <&power RK3576_PD_VPU>;
1820		status = "disabled";
1821	};
1822
1823	jpeg_mmu: iommu@27910f00 {
1824		compatible = "rockchip,iommu-v2";
1825		reg = <0x0 0x27910f00 0x0 0x28>;
1826		interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1827		interrupt-names = "irq_jpeg_mmu";
1828		clocks = <&aclk_jpeg>, <&cru HCLK_JPEG>;
1829		clock-name = "aclk", "iface";
1830		#iommu-cells = <0>;
1831		rockchip,shootdown-entire;
1832		power-domains = <&power RK3576_PD_VPU>;
1833		status = "disabled";
1834	};
1835
1836	rga2_core0: rga@27920000 {
1837		compatible = "rockchip,rga2_core0";
1838		reg = <0x0 0x27920000 0x0 0x1000>;
1839		interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1840		interrupt-names = "rga2_core0_irq";
1841		clocks = <&cru ACLK_RGA2E_0>, <&cru HCLK_RGA2E_0>, <&cru CLK_CORE_RGA2E_0>;
1842		clock-names = "aclk_rga2e_0", "hclk_rga2e_0", "clk_rga2e_0";
1843		power-domains = <&power RK3576_PD_VPU>;
1844		iommus = <&rga2_core0_mmu>;
1845		status = "disabled";
1846	};
1847
1848	rga2_core0_mmu: iommu@27920f00 {
1849		compatible = "rockchip,iommu-v2";
1850		reg = <0x0 0x27920f00 0x0 0x100>;
1851		interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1852		interrupt-names = "rga2_0_mmu";
1853		clocks = <&cru ACLK_RGA2E_0>, <&cru HCLK_RGA2E_0>;
1854		clock-names = "aclk", "iface";
1855		power-domains = <&power RK3576_PD_VPU>;
1856		#iommu-cells = <0>;
1857		status = "disabled";
1858	};
1859
1860	rga2_core1: rga@27930000 {
1861		compatible = "rockchip,rga2_core1";
1862		reg = <0x0 0x27930000 0x0 0x1000>;
1863		interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1864		interrupt-names = "rga2_core1_irq";
1865		clocks = <&cru ACLK_RGA2E_1>, <&cru HCLK_RGA2E_1>, <&cru CLK_CORE_RGA2E_1>;
1866		clock-names = "aclk_rga2e_1", "hclk_rga2e_1", "clk_rga2e_1";
1867		power-domains = <&power RK3576_PD_VPU>;
1868		iommus = <&rga2_core1_mmu>;
1869		status = "disabled";
1870	};
1871
1872	rga2_core1_mmu: iommu@27930f00 {
1873		compatible = "rockchip,iommu-v2";
1874		reg = <0x0 0x27930f00 0x0 0x100>;
1875		interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1876		interrupt-names = "rga2_1_mmu";
1877		clocks = <&cru ACLK_RGA2E_1>, <&cru HCLK_RGA2E_1>;
1878		clock-names = "aclk", "iface";
1879		power-domains = <&power RK3576_PD_VPU>;
1880		#iommu-cells = <0>;
1881		status = "disabled";
1882	};
1883
1884	iep: iep@27960000 {
1885		compatible = "rockchip,iep-v2";
1886		reg = <0x0 0x27960000 0x0 0x500>;
1887		interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>;
1888		interrupt-names = "irq_vdpp";
1889		clocks = <&aclk_vdpp>, <&cru HCLK_VDPP>, <&cru CLK_CORE_VDPP>;
1890		clock-names = "aclk", "hclk", "sclk";
1891		rockchip,normal-rates = <340000000>, <0>, <340000000>;
1892		assigned-clocks = <&aclk_vdpp>, <&cru CLK_CORE_VDPP>;
1893		assigned-clock-rates = <340000000>, <340000000>;
1894		resets = <&cru SRST_A_VDPP>, <&cru SRST_H_VDPP>, <&cru SRST_CORE_VDPP>;
1895		reset-names = "shared_rst_a", "shared_rst_h", "shared_rst_s";
1896		rockchip,skip-pmu-idle-request;
1897		rockchip,srv = <&mpp_srv>;
1898		rockchip,taskqueue-node = <2>;
1899		iommus = <&iep_mmu>;
1900		power-domains = <&power RK3576_PD_VPU>;
1901		status = "disabled";
1902	};
1903
1904	iep_mmu: iommu@27960800 {
1905		compatible = "rockchip,iommu-v2";
1906		reg = <0x0 0x27960800 0x0 0x100>;
1907		interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>;
1908		interrupt-names = "iep_mmu";
1909		clocks = <&aclk_vdpp>, <&cru HCLK_VDPP>;
1910		clock-names = "aclk", "iface";
1911		#iommu-cells = <0>;
1912		rockchip,shootdown-entire;
1913		power-domains = <&power RK3576_PD_VPU>;
1914		status = "disabled";
1915	};
1916
1917	vdpp: vdpp@27961000 {
1918		compatible = "rockchip,vdpp-rk3576";
1919		reg = <0x0 0x27961000 0x0 0x500>,  <0x0 0x27962000 0x0 0x900>;
1920		reg-names = "vdpp_regs", "zme_regs";
1921		interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>;
1922		interrupt-names = "irq_vdpp";
1923		clocks = <&aclk_vdpp>, <&cru HCLK_VDPP>, <&cru CLK_CORE_VDPP>;
1924		clock-names = "aclk", "hclk", "sclk";
1925		rockchip,normal-rates = <340000000>, <0>, <340000000>;
1926		assigned-clocks = <&aclk_vdpp>, <&cru CLK_CORE_VDPP>;
1927		assigned-clock-rates = <340000000>, <340000000>;
1928		resets = <&cru SRST_A_VDPP>, <&cru SRST_H_VDPP>, <&cru SRST_CORE_VDPP>;
1929		reset-names = "shared_rst_a", "shared_rst_h", "shared_rst_s";
1930		rockchip,skip-pmu-idle-request;
1931		rockchip,srv = <&mpp_srv>;
1932		rockchip,taskqueue-node = <2>;
1933		rockchip,disable-auto-freq;
1934		iommus = <&iep_mmu>;
1935		power-domains = <&power RK3576_PD_VPU>;
1936		status = "disabled";
1937	};
1938
1939	rkvenc0: rkvenc-core@27a00000 {
1940		compatible = "rockchip,rkv-encoder-rk3576-core";
1941		reg = <0x0 0x27a00000 0x0 0x6000>;
1942		interrupts = <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>;
1943		interrupt-names = "irq_vepu0";
1944		clocks = <&aclk_vepu0>, <&hclk_vepu0>, <&cru CLK_VEPU0_CORE>;
1945		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
1946		rockchip,normal-rates = <400000000>, <0>, <700000000>;
1947		resets = <&cru SRST_A_VEPU0>, <&cru SRST_H_VEPU0>,
1948			 <&cru SRST_VEPU0_CORE>;
1949		reset-names = "video_a", "video_h", "video_core";
1950		assigned-clocks = <&aclk_vepu0>, <&cru CLK_VEPU0_CORE>;
1951		assigned-clock-rates = <400000000>, <700000000>;
1952		iommus = <&rkvenc0_mmu>;
1953		rockchip,srv = <&mpp_srv>;
1954		rockchip,taskqueue-node = <3>;
1955		rockchip,task-capacity = <8>;
1956		rockchip,ccu = <&rkvenc_ccu>;
1957		power-domains = <&power RK3576_PD_VEPU0>;
1958		status = "disabled";
1959	};
1960
1961	rkvenc0_mmu: iommu@27a0f000 {
1962		compatible = "rockchip,iommu-v2";
1963		reg = <0x0 0x27a0f000 0x0 0x40>;
1964		interrupts = <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>;
1965		interrupt-names = "irq_vepu0_mmu";
1966		clocks = <&aclk_vepu0>, <&hclk_vepu0>;
1967		clock-names = "aclk", "iface";
1968		#iommu-cells = <0>;
1969		rockchip,shootdown-entire;
1970		rockchip,disable-mmu-reset;
1971		rockchip,enable-cmd-retry;
1972		power-domains = <&power RK3576_PD_VEPU0>;
1973		status = "disabled";
1974	};
1975
1976	rkvenc1: rkvenc-core@27a10000 {
1977		compatible = "rockchip,rkv-encoder-rk3576-core";
1978		reg = <0x0 0x27a10000 0x0 0x6000>;
1979		interrupts = <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>;
1980		interrupt-names = "irq_vepu1";
1981		clocks = <&cru ACLK_VEPU1>, <&cru HCLK_VEPU1>, <&cru CLK_VEPU1_CORE>;
1982		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
1983		rockchip,normal-rates = <400000000>, <0>, <700000000>;
1984		resets = <&cru SRST_A_VEPU1>, <&cru SRST_H_VEPU1>,
1985			 <&cru SRST_VEPU1_CORE>;
1986		reset-names = "video_a", "video_h", "video_core";
1987		assigned-clocks = <&cru ACLK_VEPU1>, <&cru CLK_VEPU1_CORE>;
1988		assigned-clock-rates = <400000000>, <700000000>;
1989		iommus = <&rkvenc1_mmu>;
1990		rockchip,srv = <&mpp_srv>;
1991		rockchip,taskqueue-node = <3>;
1992		rockchip,task-capacity = <8>;
1993		rockchip,ccu = <&rkvenc_ccu>;
1994		power-domains = <&power RK3576_PD_VEPU1>;
1995		status = "disabled";
1996	};
1997
1998	rkvenc1_mmu: iommu@27a1f000 {
1999		compatible = "rockchip,iommu-v2";
2000		reg = <0x0 0x27a1f000 0x0 0x40>;
2001		interrupts = <GIC_SPI 388 IRQ_TYPE_LEVEL_HIGH>;
2002		interrupt-names = "irq_vepu1_mmu";
2003		clocks = <&cru ACLK_VEPU1>, <&cru HCLK_VEPU1>;
2004		clock-names = "aclk", "iface";
2005		#iommu-cells = <0>;
2006		rockchip,disable-mmu-reset;
2007		rockchip,enable-cmd-retry;
2008		rockchip,shootdown-entire;
2009		power-domains = <&power RK3576_PD_VEPU1>;
2010		status = "disabled";
2011	};
2012
2013	rkvdec: rkvdec@27b00000 {
2014		compatible = "rockchip,rkv-decoder-v383";
2015		reg = <0x0 0x27b00100 0x0 0x400>, <0x0 0x27b00000 0x0 0x100>;
2016		reg-names = "regs", "link";
2017		interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
2018		interrupt-names = "irq_rkvdec";
2019		clocks = <&cru ACLK_RKVDEC_ROOT>, <&cru HCLK_RKVDEC_ROOT>,
2020			 <&cru CLK_RKVDEC_CORE>, <&cru CLK_RKVDEC_HEVC_CA>;
2021		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core", "clk_hevc_ca";
2022		resets = <&cru SRST_A_RKVDEC_BIU >, <&cru SRST_H_RKVDEC_BIU>,
2023			 <&cru SRST_RKVDEC_CORE>, <&cru SRST_RKVDEC_HEVC_CA>;
2024		reset-names = "video_a","video_h", "video_core", "video_hevc_cabac";
2025		rockchip,normal-rates = <600000000>, <0>, <600000000>, <600000000>;
2026		assigned-clocks = <&cru ACLK_RKVDEC_ROOT>, <&cru HCLK_RKVDEC_ROOT>,
2027				  <&cru CLK_RKVDEC_CORE>, <&cru CLK_RKVDEC_HEVC_CA>;
2028		assigned-clock-rates = <600000000>,<0>, <600000000>, <600000000>;
2029		iommus = <&rkvdec_mmu>;
2030		rockchip,srv = <&mpp_srv>;
2031		rockchip,task-capacity = <1>;
2032		rockchip,taskqueue-node = <5>;
2033		power-domains = <&power RK3576_PD_VDEC>;
2034		status = "disabled";
2035	};
2036
2037	rkvdec_mmu: iommu@27b00800 {
2038		compatible = "rockchip,iommu-v2";
2039		reg = <0x0 0x27b00800 0x0 0x40>, <0x0 0x27b00900 0x0 0x40>;
2040		interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
2041		interrupt-names = "irq_rkvdec_mmu";
2042		clocks = <&cru ACLK_RKVDEC_ROOT>, <&cru HCLK_RKVDEC>;
2043		clock-names = "aclk", "iface";
2044		rockchip,disable-mmu-reset;
2045		rockchip,enable-cmd-retry;
2046		rockchip,shootdown-entire;
2047		#iommu-cells = <0>;
2048		power-domains = <&power RK3576_PD_VDEC>;
2049		status = "disabled";
2050	};
2051
2052	rkisp: isp@27c00000 {
2053		compatible = "rockchip,rk3576-rkisp";
2054		reg = <0x0 0x27c00000 0x0 0x7f00>;
2055		interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
2056			     <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
2057			     <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
2058		interrupt-names = "mipi_irq", "mi_irq", "isp_irq";
2059		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>,
2060			 <&cru CLK_ISP_CORE>, <&cru CLK_ISP_CORE_MARVIN>,
2061			 <&cru CLK_ISP_CORE_VICAP>;
2062		clock-names = "aclk_isp", "hclk_isp",
2063			      "clk_isp_core", "clk_isp_core_marvin",
2064			      "clk_isp_core_vicap";
2065		power-domains = <&power RK3576_PD_VI>;
2066		iommus = <&rkisp_mmu>;
2067		status = "disabled";
2068	};
2069
2070	rkisp_mmu: iommu@27c07f00 {
2071		compatible = "rockchip,iommu-v2";
2072		reg = <0x0 0x27c07f00 0x0 0x100>;
2073		interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>;
2074		interrupt-names = "isp_mmu";
2075		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
2076		clock-names = "aclk", "iface";
2077		power-domains = <&power RK3576_PD_VI>;
2078		#iommu-cells = <0>;
2079		rockchip,disable-mmu-reset;
2080		status = "disabled";
2081	};
2082
2083	rkcif: rkcif@27c10000 {
2084		compatible = "rockchip,rk3576-cif";
2085		reg = <0x0 0x27c10000 0x0 0x800>;
2086		reg-names = "cif_regs";
2087		interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
2088		interrupt-names = "cif-intr";
2089		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>, <&cru DCLK_VICAP>,
2090			 <&cru CLK_VICAP_I0CLK>, <&cru CLK_VICAP_I1CLK>,
2091			 <&cru CLK_VICAP_I2CLK>, <&cru CLK_VICAP_I3CLK>,
2092			 <&cru CLK_VICAP_I4CLK>;
2093		clock-names = "aclk_cif", "hclk_cif", "dclk_cif",
2094			      "i0clk_cif", "i1clk_cif",
2095			      "i2clk_cif", "i3clk_cif",
2096			      "i4clk_cif";
2097		resets = <&cru SRST_A_VICAP>, <&cru SRST_H_VICAP>, <&cru SRST_D_VICAP>,
2098			 <&cru SRST_VICAP_I0CLK>, <&cru SRST_VICAP_I1CLK>,
2099			 <&cru SRST_VICAP_I2CLK>, <&cru SRST_VICAP_I3CLK>,
2100			 <&cru SRST_VICAP_I4CLK>;
2101		reset-names = "rst_cif_a", "rst_cif_h", "rst_cif_d",
2102			      "rst_cif_iclk0", "rst_cif_iclk1", "rst_cif_iclk2",
2103			      "rst_cif_iclk3", "rst_cif_iclk4";
2104		assigned-clocks = <&cru DCLK_VICAP>;
2105		assigned-clock-rates = <600000000>;
2106		power-domains = <&power RK3576_PD_VI>;
2107		rockchip,grf = <&sys_grf>;
2108		iommus = <&rkcif_mmu>;
2109		status = "disabled";
2110	};
2111
2112	rkcif_mmu: iommu@27c10800 {
2113		compatible = "rockchip,iommu-v2";
2114		reg = <0x0 0x27c10800 0x0 0x100>;
2115		interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>;
2116		interrupt-names = "cif_mmu";
2117		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>;
2118		clock-names = "aclk", "iface";
2119		power-domains = <&power RK3576_PD_VI>;
2120		rockchip,disable-mmu-reset;
2121		#iommu-cells = <0>;
2122		status = "disabled";
2123	};
2124
2125	rkvpss: vpss@27c30000 {
2126		compatible = "rockchip,rk3576-rkvpss";
2127		reg = <0x0 0x27c30000 0x0 0x3f00>;
2128		interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
2129			     <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
2130		interrupt-names = "mi_irq", "vpss_irq";
2131		clocks = <&cru ACLK_VPSS>, <&cru HCLK_VPSS>,
2132			 <&cru CLK_CORE_VPSS>;
2133		clock-names = "aclk_vpss", "hclk_vpss", "clk_vpss";
2134		power-domains = <&power RK3576_PD_VI>;
2135		iommus = <&rkvpss_mmu>;
2136		status = "disabled";
2137	};
2138
2139	rkvpss_mmu: iommu@27c33f00 {
2140		compatible = "rockchip,iommu-v2";
2141		reg = <0x0 0x27c33f00 0x0 0x100>;
2142		interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
2143		interrupt-names = "vpss_mmu";
2144		clocks = <&cru ACLK_VPSS>, <&cru HCLK_VPSS>;
2145		clock-names = "aclk", "iface";
2146		power-domains = <&power RK3576_PD_VI>;
2147		#iommu-cells = <0>;
2148		rockchip,disable-mmu-reset;
2149		status = "disabled";
2150	};
2151
2152	mipi0_csi2_hw: mipi0-csi2-hw@27c80000 {
2153		compatible = "rockchip,rk3576-mipi-csi2-hw";
2154		reg = <0x0 0x27c80000 0x0 0x10000>;
2155		reg-names = "csihost_regs";
2156		interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
2157			     <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>;
2158		interrupt-names = "csi-intr1", "csi-intr2";
2159		clocks = <&cru PCLK_CSI_HOST_0>, <&cru ICLK_CSIHOST0>;
2160		clock-names = "pclk_csi2host", "iclk_csi2host";
2161		resets = <&cru SRST_P_CSI_HOST_0>;
2162		reset-names = "srst_csihost_p";
2163		status = "okay";
2164	};
2165
2166	mipi1_csi2_hw: mipi1-csi2-hw@27c90000 {
2167		compatible = "rockchip,rk3576-mipi-csi2-hw";
2168		reg = <0x0 0x27c90000 0x0 0x10000>;
2169		reg-names = "csihost_regs";
2170		interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
2171			     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>;
2172		interrupt-names = "csi-intr1", "csi-intr2";
2173		clocks = <&cru PCLK_CSI_HOST_1>;
2174		clock-names = "pclk_csi2host";
2175		resets = <&cru SRST_P_CSI_HOST_1>;
2176		reset-names = "srst_csihost_p";
2177		status = "okay";
2178	};
2179
2180	mipi2_csi2_hw: mipi2-csi2-hw@27ca0000 {
2181		compatible = "rockchip,rk3576-mipi-csi2-hw";
2182		reg = <0x0 0x27ca0000 0x0 0x10000>;
2183		reg-names = "csihost_regs";
2184		interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
2185			     <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
2186		interrupt-names = "csi-intr1", "csi-intr2";
2187		clocks = <&cru PCLK_CSI_HOST_2>;
2188		clock-names = "pclk_csi2host";
2189		resets = <&cru SRST_P_CSI_HOST_2>;
2190		reset-names = "srst_csihost_p";
2191		status = "okay";
2192	};
2193
2194	mipi3_csi2_hw: mipi3-csi2-hw@27cb0000 {
2195		compatible = "rockchip,rk3576-mipi-csi2-hw";
2196		reg = <0x0 0x27cb0000 0x0 0x10000>;
2197		reg-names = "csihost_regs";
2198		interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
2199			     <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>;
2200		interrupt-names = "csi-intr1", "csi-intr2";
2201		clocks = <&cru PCLK_CSI_HOST_3>;
2202		clock-names = "pclk_csi2host";
2203		resets = <&cru SRST_P_CSI_HOST_3>;
2204		reset-names = "srst_csihost_p";
2205		status = "okay";
2206	};
2207
2208	mipi4_csi2_hw: mipi4-csi2-hw@27cc0000 {
2209		compatible = "rockchip,rk3576-mipi-csi2-hw";
2210		reg = <0x0 0x27cc0000 0x0 0x10000>;
2211		reg-names = "csihost_regs";
2212		interrupts = <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>,
2213			     <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>;
2214		interrupt-names = "csi-intr1", "csi-intr2";
2215		clocks = <&cru PCLK_CSI_HOST_4>;
2216		clock-names = "pclk_csi2host";
2217		resets = <&cru SRST_P_CSI_HOST_4>;
2218		reset-names = "srst_csihost_p";
2219		status = "okay";
2220	};
2221
2222	vop: vop@27d00000 {
2223		compatible = "rockchip,rk3576-vop";
2224		reg = <0x0 0x27d00000 0x0 0x3000>,
2225		      <0x0 0x27d05000 0x0 0x1000>,
2226		      <0x0 0x27d06400 0x0 0x800>,
2227		      <0x0 0x27d06c00 0x0 0x300>;
2228		reg-names = "regs",
2229			    "gamma_lut",
2230			    "acm_regs",
2231			    "sharp_regs";
2232		interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
2233			     <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>,
2234			     <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>,
2235			     <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>;
2236		interrupt-names = "vop-sys",
2237				  "vop-vp0",
2238				  "vop-vp1",
2239				  "vop-vp2";
2240		clocks = <&cru ACLK_VOP>,
2241			 <&cru HCLK_VOP>,
2242			 <&cru DCLK_VP0_SRC>,
2243			 <&cru DCLK_VP1_SRC>,
2244			 <&cru DCLK_VP2_SRC>;
2245		clock-names = "aclk_vop",
2246			      "hclk_vop",
2247			      "dclk_vp0",
2248			      "dclk_vp1",
2249			      "dclk_vp2";
2250		iommus = <&vop_mmu>;
2251		power-domains = <&power RK3576_PD_VOP>;
2252		rockchip,grf = <&sys_grf>;
2253		rockchip,ioc-grf = <&ioc_grf>;
2254		rockchip,pmu = <&pmu>;
2255		status = "disabled";
2256
2257		vop_out: ports {
2258			#address-cells = <1>;
2259			#size-cells = <0>;
2260
2261			vp0: port@0 {
2262				#address-cells = <1>;
2263				#size-cells = <0>;
2264				reg = <0>;
2265
2266				vp0_out_dsi: endpoint@0 {
2267					reg = <0>;
2268					remote-endpoint = <&dsi_in_vp0>;
2269				};
2270
2271				vp0_out_edp: endpoint@1 {
2272					reg = <1>;
2273					remote-endpoint = <&edp_in_vp0>;
2274				};
2275
2276				vp0_out_hdmi: endpoint@2 {
2277					reg = <2>;
2278					remote-endpoint = <&hdmi_in_vp0>;
2279				};
2280
2281				vp0_out_dp0: endpoint@3 {
2282					reg = <3>;
2283					remote-endpoint = <&dp0_in_vp0>;
2284				};
2285
2286				vp0_out_dp1: endpoint@4 {
2287					reg = <4>;
2288					remote-endpoint = <&dp1_in_vp0>;
2289				};
2290
2291				vp0_out_dp2: endpoint@5 {
2292					reg = <5>;
2293					remote-endpoint = <&dp2_in_vp0>;
2294				};
2295			};
2296
2297			vp1: port@1 {
2298				#address-cells = <1>;
2299				#size-cells = <0>;
2300				reg = <1>;
2301
2302				vp1_out_rgb: endpoint@0 {
2303					reg = <0>;
2304					remote-endpoint = <&rgb_in_vp1>;
2305				};
2306
2307				vp1_out_dsi: endpoint@1 {
2308					reg = <1>;
2309					remote-endpoint = <&dsi_in_vp1>;
2310				};
2311
2312				vp1_out_edp: endpoint@2 {
2313					reg = <2>;
2314					remote-endpoint = <&edp_in_vp1>;
2315				};
2316
2317				vp1_out_hdmi: endpoint@3 {
2318					reg = <3>;
2319					remote-endpoint = <&hdmi_in_vp1>;
2320				};
2321
2322				vp1_out_dp0: endpoint@4 {
2323					reg = <4>;
2324					remote-endpoint = <&dp0_in_vp1>;
2325				};
2326
2327				vp1_out_dp1: endpoint@5 {
2328					reg = <5>;
2329					remote-endpoint = <&dp1_in_vp1>;
2330				};
2331
2332				vp1_out_dp2: endpoint@6 {
2333					reg = <6>;
2334					remote-endpoint = <&dp2_in_vp1>;
2335				};
2336			};
2337
2338			vp2: port@2 {
2339				#address-cells = <1>;
2340				#size-cells = <0>;
2341				reg = <2>;
2342
2343				vp2_out_rgb: endpoint@0 {
2344					reg = <0>;
2345					remote-endpoint = <&rgb_in_vp2>;
2346				};
2347
2348				vp2_out_dsi: endpoint@1 {
2349					reg = <1>;
2350					remote-endpoint = <&dsi_in_vp2>;
2351				};
2352
2353				vp2_out_edp: endpoint@2 {
2354					reg = <2>;
2355					remote-endpoint = <&edp_in_vp2>;
2356				};
2357
2358				vp2_out_hdmi: endpoint@3 {
2359					reg = <3>;
2360					remote-endpoint = <&hdmi_in_vp2>;
2361				};
2362
2363				vp2_out_dp0: endpoint@4 {
2364					reg = <4>;
2365					remote-endpoint = <&dp0_in_vp2>;
2366				};
2367
2368				vp2_out_dp1: endpoint@5 {
2369					reg = <5>;
2370					remote-endpoint = <&dp1_in_vp2>;
2371				};
2372
2373				vp2_out_dp2: endpoint@6 {
2374					reg = <6>;
2375					remote-endpoint = <&dp2_in_vp2>;
2376				};
2377			};
2378		};
2379	};
2380
2381	vop_mmu: iommu@27d07e00 {
2382		compatible = "rockchip,iommu-v2";
2383		reg = <0x0 0x27d07e00 0x0 0x100>, <0x0 0x27d07f00 0x0 0x100>;
2384		interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
2385		interrupt-names = "vop_mmu";
2386		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
2387		clock-names = "aclk", "iface";
2388		#iommu-cells = <0>;
2389		rockchip,disable-device-link-resume;
2390		rockchip,shootdown-entire;
2391		status = "disabled";
2392	};
2393
2394	spdif_tx2: spdif-tx@27d20000 {
2395		compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
2396		reg = <0x0 0x27d20000 0x0 0x1000>;
2397		interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
2398		clocks = <&cru MCLK_SPDIF_TX2>, <&cru HCLK_SPDIF_TX2>;
2399		clock-names = "mclk", "hclk";
2400		dmas = <&dmac2 28>;
2401		dma-names = "tx";
2402		power-domains = <&power RK3576_PD_VO0>;
2403		#sound-dai-cells = <0>;
2404		status = "disabled";
2405	};
2406
2407	spdif_rx2: spdif-rx@27d30000 {
2408		compatible = "rockchip,rk3576-spdifrx", "rockchip,rk3308-spdifrx";
2409		reg = <0x0 0x27d30000 0x0 0x1000>;
2410		interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
2411		clocks = <&cru MCLK_SPDIF_RX2>, <&cru HCLK_SPDIF_RX2>;
2412		clock-names = "mclk", "hclk";
2413		dmas = <&dmac2 27>;
2414		dma-names = "rx";
2415		power-domains = <&power RK3576_PD_VO0>;
2416		resets = <&cru SRST_M_SPDIF_RX2>;
2417		reset-names = "spdifrx-m";
2418		status = "disabled";
2419	};
2420
2421	sai5: sai@27d40000 {
2422		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
2423		reg = <0x0 0x27d40000 0x0 0x1000>;
2424		interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
2425		clocks = <&cru MCLK_SAI5_8CH>, <&cru HCLK_SAI5_8CH>;
2426		clock-names = "mclk", "hclk";
2427		dmas = <&dmac2 3>;
2428		dma-names = "rx";
2429		power-domains = <&power RK3576_PD_VO0>;
2430		resets = <&cru SRST_M_SAI5_8CH>, <&cru SRST_H_SAI5_8CH>;
2431		reset-names = "m", "h";
2432		#sound-dai-cells = <0>;
2433		sound-name-prefix = "SAI5";
2434		status = "disabled";
2435	};
2436
2437	sai6: sai@27d50000 {
2438		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
2439		reg = <0x0 0x27d50000 0x0 0x1000>;
2440		interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
2441		clocks = <&cru MCLK_SAI6_8CH>, <&cru HCLK_SAI6_8CH>;
2442		clock-names = "mclk", "hclk";
2443		dmas = <&dmac2 4>, <&dmac2 5>;
2444		dma-names = "tx", "rx";
2445		power-domains = <&power RK3576_PD_VO0>;
2446		resets = <&cru SRST_M_SAI6_8CH>, <&cru SRST_H_SAI6_8CH>;
2447		reset-names = "m", "h";
2448		#sound-dai-cells = <0>;
2449		sound-name-prefix = "SAI6";
2450		status = "disabled";
2451	};
2452
2453	dsi: dsi@27d80000 {
2454		compatible = "rockchip,rk3576-mipi-dsi2";
2455		reg = <0x0 0x27d80000 0x0 0x10000>;
2456		interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
2457		clocks = <&cru PCLK_DSIHOST0>, <&cru CLK_DSIHOST0>;
2458		clock-names = "pclk", "sys_clk";
2459		resets = <&cru SRST_P_DSIHOST0>;
2460		reset-names = "apb";
2461		power-domains = <&power RK3576_PD_VO0>;
2462		phys = <&mipidcphy0>;
2463		phy-names = "dcphy";
2464		rockchip,grf = <&vo0_grf>;
2465		#address-cells = <1>;
2466		#size-cells = <0>;
2467		status = "disabled";
2468
2469		ports {
2470			#address-cells = <1>;
2471			#size-cells = <0>;
2472
2473			dsi_in: port@0 {
2474				reg = <0>;
2475				#address-cells = <1>;
2476				#size-cells = <0>;
2477
2478				dsi_in_vp0: endpoint@0 {
2479					reg = <0>;
2480					remote-endpoint = <&vp0_out_dsi>;
2481					status = "disabled";
2482				};
2483
2484				dsi_in_vp1: endpoint@1 {
2485					reg = <1>;
2486					remote-endpoint = <&vp1_out_dsi>;
2487					status = "disabled";
2488				};
2489
2490				dsi_in_vp2: endpoint@2 {
2491					reg = <2>;
2492					remote-endpoint = <&vp2_out_dsi>;
2493					status = "disabled";
2494				};
2495
2496				dsi_in_vopl: endpoint@3 {
2497					reg = <3>;
2498					remote-endpoint = <&vopl_out_dsi>;
2499					status = "disabled";
2500				};
2501			};
2502		};
2503	};
2504
2505	hdcp0: hdcp@27d90000 {
2506		compatible = "rockchip,rk3576-hdcp";
2507		reg = <0x0 0x27d90000 0x0 0x80>;
2508		interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>;
2509		clocks = <&aclk_hdcp0>, <&cru PCLK_HDCP0>,
2510			 <&cru HCLK_HDCP0>, <&scmi_clk HCLK_HDCP_KEY0>,
2511			 <&scmi_clk PCLK_HDCP0_TRNG>;
2512		clock-names = "aclk", "pclk", "hclk", "hclk_key", "pclk_trng";
2513		resets = <&cru SRST_HDCP0>, <&cru SRST_H_HDCP0>,
2514			 <&cru SRST_A_HDCP0>;
2515		reset-names = "hdcp", "h_hdcp", "a_hdcp";
2516		power-domains = <&power RK3576_PD_VO0>;
2517		rockchip,vo-grf = <&vo0_grf>;
2518		status = "disabled";
2519	};
2520
2521	hdmi: hdmi@27da0000 {
2522		compatible = "rockchip,rk3576-dw-hdmi";
2523		reg = <0x0 0x27da0000 0x0 0x10000>, <0x0 0x27db0000 0x0 0x10000>;
2524		interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
2525			     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
2526			     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
2527			     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
2528			     <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>;
2529		clocks = <&cru PCLK_HDMITX0>,
2530			 <&cru CLK_HDMITXHPD>,
2531			 <&cru CLK_HDMITX0_EARC>,
2532			 <&cru CLK_HDMITX0_REF>,
2533			 <&cru MCLK_SAI5_8CH>,
2534			 <&cru DCLK_VP0>,
2535			 <&cru DCLK_VP1>,
2536			 <&cru DCLK_VP2>,
2537			 <&cru DCLK_EBC>,
2538			 <&hclk_vo1>,
2539			 <&hdptxphy_hdmi>;
2540		clock-names = "pclk",
2541			      "hpd",
2542			      "earc",
2543			      "hdmitx_ref",
2544			      "aud",
2545			      "dclk_vp0",
2546			      "dclk_vp1",
2547			      "dclk_vp2",
2548			      "dclk_ebc",
2549			      "hclk_vo1",
2550			      "link_clk";
2551		resets = <&cru SRST_HDMITX0_REF>, <&cru SRST_HDMITXHPD>;
2552		reset-names = "ref", "hdp";
2553		power-domains = <&power RK3576_PD_VO0>;
2554		pinctrl-names = "default";
2555		pinctrl-0 = <&hdmi_txm0_pins &hdmi_tx_scl &hdmi_tx_sda>;
2556		reg-io-width = <4>;
2557		rockchip,grf = <&sys_grf>;
2558		rockchip,vo1_grf = <&vo0_grf>;
2559		phys = <&hdptxphy_hdmi>;
2560		phy-names = "hdmi";
2561		#sound-dai-cells = <0>;
2562		status = "disabled";
2563
2564		ports {
2565			#address-cells = <1>;
2566			#size-cells = <0>;
2567
2568			hdmi_in: port@0 {
2569				reg = <0>;
2570				#address-cells = <1>;
2571				#size-cells = <0>;
2572
2573				hdmi_in_vp0: endpoint@0 {
2574					reg = <0>;
2575					remote-endpoint = <&vp0_out_hdmi>;
2576					status = "disabled";
2577				};
2578
2579				hdmi_in_vp1: endpoint@1 {
2580					reg = <1>;
2581					remote-endpoint = <&vp1_out_hdmi>;
2582					status = "disabled";
2583				};
2584
2585				hdmi_in_vp2: endpoint@2 {
2586					reg = <2>;
2587					remote-endpoint = <&vp2_out_hdmi>;
2588					status = "disabled";
2589				};
2590
2591				hdmi_in_vopl: endpoint@3 {
2592					reg = <3>;
2593					remote-endpoint = <&vopl_out_hdmi>;
2594					status = "disabled";
2595				};
2596			};
2597		};
2598	};
2599
2600	edp: edp@27dc0000 {
2601		compatible = "rockchip,rk3576-edp";
2602		reg = <0x0 0x27dc0000 0x0 0x1000>;
2603		interrupts = <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>;
2604		clocks = <&cru CLK_EDP0_24M>, <&cru PCLK_EDP0>,
2605			 <&cru CLK_EDP0_200M>, <&hclk_vo0>;
2606		clock-names = "dp", "pclk", "spdif", "hclk";
2607		resets = <&cru SRST_EDP0_24M>, <&cru SRST_P_EDP0>;
2608		reset-names = "dp", "apb";
2609		phys = <&hdptxphy>;
2610		phy-names = "dp";
2611		power-domains = <&power RK3576_PD_VO0>;
2612		rockchip,grf = <&vo0_grf>;
2613		status = "disabled";
2614
2615		ports {
2616			#address-cells = <1>;
2617			#size-cells = <0>;
2618
2619			port@0 {
2620				reg = <0>;
2621				#address-cells = <1>;
2622				#size-cells = <0>;
2623
2624				edp_in_vp0: endpoint@0 {
2625					reg = <0>;
2626					remote-endpoint = <&vp0_out_edp>;
2627					status = "disabled";
2628				};
2629
2630				edp_in_vp1: endpoint@1 {
2631					reg = <1>;
2632					remote-endpoint = <&vp1_out_edp>;
2633					status = "disabled";
2634				};
2635
2636				edp_in_vp2: endpoint@2 {
2637					reg = <2>;
2638					remote-endpoint = <&vp2_out_edp>;
2639					status = "disabled";
2640				};
2641
2642				edp_in_vopl: endpoint@3 {
2643					reg = <3>;
2644					remote-endpoint = <&vopl_out_edp>;
2645					status = "disabled";
2646				};
2647			};
2648		};
2649	};
2650
2651	dp: dp@27e40000 {
2652		compatible = "rockchip,rk3576-dp";
2653		reg = <0x0 0x27e40000 0x0 0x30000>;
2654		interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
2655		clocks = <&cru PCLK_DP0>, <&cru CLK_AUX16MHZ_0>,
2656			 <&cru ACLK_DP0>;
2657		clock-names = "apb", "aux", "hdcp";
2658		assigned-clocks = <&cru CLK_AUX16MHZ_0>;
2659		assigned-clock-rates = <16000000>;
2660		resets = <&cru SRST_DP0>;
2661		phys = <&usbdp_phy_dp>;
2662		power-domains = <&power RK3576_PD_VO1>;
2663		status = "disabled";
2664
2665		dp0: dp0 {
2666			ports {
2667				#address-cells = <1>;
2668				#size-cells = <0>;
2669
2670				port@0 {
2671					reg = <0>;
2672					#address-cells = <1>;
2673					#size-cells = <0>;
2674
2675					dp0_in_vp0: endpoint@0 {
2676						reg = <0>;
2677						remote-endpoint = <&vp0_out_dp0>;
2678						status = "disabled";
2679					};
2680
2681					dp0_in_vp1: endpoint@1 {
2682						reg = <1>;
2683						remote-endpoint = <&vp1_out_dp0>;
2684						status = "disabled";
2685					};
2686
2687					dp0_in_vp2: endpoint@2 {
2688						reg = <2>;
2689						remote-endpoint = <&vp2_out_dp0>;
2690						status = "disabled";
2691					};
2692				};
2693			};
2694		};
2695
2696		dp1: dp1 {
2697			ports {
2698				#address-cells = <1>;
2699				#size-cells = <0>;
2700
2701				port@0 {
2702					reg = <0>;
2703					#address-cells = <1>;
2704					#size-cells = <0>;
2705
2706					dp1_in_vp0: endpoint@0 {
2707						reg = <0>;
2708						remote-endpoint = <&vp0_out_dp1>;
2709						status = "disabled";
2710					};
2711
2712					dp1_in_vp1: endpoint@1 {
2713						reg = <1>;
2714						remote-endpoint = <&vp1_out_dp1>;
2715						status = "disabled";
2716					};
2717
2718					dp1_in_vp2: endpoint@2 {
2719						reg = <2>;
2720						remote-endpoint = <&vp2_out_dp1>;
2721						status = "disabled";
2722					};
2723				};
2724			};
2725		};
2726
2727		dp2: dp2 {
2728			ports {
2729				#address-cells = <1>;
2730				#size-cells = <0>;
2731				port@0 {
2732					reg = <0>;
2733					#address-cells = <1>;
2734					#size-cells = <0>;
2735
2736					dp2_in_vp0: endpoint@0 {
2737						reg = <0>;
2738						remote-endpoint = <&vp0_out_dp2>;
2739						status = "disabled";
2740					};
2741
2742					dp2_in_vp1: endpoint@1 {
2743						reg = <1>;
2744						remote-endpoint = <&vp1_out_dp2>;
2745						status = "disabled";
2746					};
2747
2748					dp2_in_vp2: endpoint@2 {
2749						reg = <2>;
2750						remote-endpoint = <&vp2_out_dp2>;
2751						status = "disabled";
2752					};
2753				};
2754			};
2755		};
2756	};
2757
2758	hdcp1: hdcp@27e70000 {
2759		compatible = "rockchip,rk3576-hdcp";
2760		reg = <0x0 0x27e70000 0x0 0x80>;
2761		interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>;
2762		clocks = <&aclk_hdcp1>, <&cru PCLK_HDCP1>,
2763			 <&cru HCLK_HDCP1>, <&scmi_clk HCLK_HDCP_KEY1>,
2764			 <&scmi_clk PCLK_HDCP1_TRNG>;
2765		clock-names = "aclk", "pclk", "hclk", "hclk_key", "pclk_trng";
2766		resets = <&cru SRST_HDCP1>, <&cru SRST_H_HDCP1>,
2767			 <&cru SRST_A_HDCP1>;
2768		reset-names = "hdcp", "h_hdcp", "a_hdcp";
2769		power-domains = <&power RK3576_PD_VO1>;
2770		rockchip,vo-grf = <&vo1_grf>;
2771		status = "disabled";
2772	};
2773
2774	spdif_tx3: spdif-tx@27ea0000 {
2775		compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
2776		reg = <0x0 0x27ea0000 0x0 0x1000>;
2777		interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
2778		clocks = <&cru MCLK_SPDIF_TX3>, <&cru HCLK_SPDIF_TX3>;
2779		clock-names = "mclk", "hclk";
2780		dmas = <&dmac2 29>;
2781		dma-names = "tx";
2782		power-domains = <&power RK3576_PD_VO1>;
2783		#sound-dai-cells = <0>;
2784		status = "disabled";
2785	};
2786
2787	spdif_tx4: spdif-tx@27eb0000 {
2788		compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
2789		reg = <0x0 0x27eb0000 0x0 0x1000>;
2790		interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
2791		clocks = <&cru MCLK_SPDIF_TX4>, <&cru HCLK_SPDIF_TX4>;
2792		clock-names = "mclk", "hclk";
2793		dmas = <&dmac1 6>;
2794		dma-names = "tx";
2795		power-domains = <&power RK3576_PD_VO1>;
2796		#sound-dai-cells = <0>;
2797		status = "disabled";
2798	};
2799
2800	spdif_tx5: spdif-tx@27ec0000 {
2801		compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
2802		reg = <0x0 0x27ec0000 0x0 0x1000>;
2803		interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
2804		clocks = <&cru MCLK_SPDIF_TX5>, <&cru HCLK_SPDIF_TX5>;
2805		clock-names = "mclk", "hclk";
2806		dmas = <&dmac0 25>;
2807		dma-names = "tx";
2808		power-domains = <&power RK3576_PD_VO1>;
2809		#sound-dai-cells = <0>;
2810		status = "disabled";
2811	};
2812
2813	sai7: sai@27ed0000 {
2814		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
2815		reg = <0x0 0x27ed0000 0x0 0x1000>;
2816		interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
2817		clocks = <&cru MCLK_SAI7_8CH>, <&cru HCLK_SAI7_8CH>;
2818		clock-names = "mclk", "hclk";
2819		dmas = <&dmac2 19>;
2820		dma-names = "tx";
2821		power-domains = <&power RK3576_PD_VO1>;
2822		resets = <&cru SRST_M_SAI7_8CH>, <&cru SRST_H_SAI7_8CH>;
2823		reset-names = "m", "h";
2824		#sound-dai-cells = <0>;
2825		sound-name-prefix = "SAI7";
2826		status = "disabled";
2827	};
2828
2829	sai8: sai@27ee0000 {
2830		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
2831		reg = <0x0 0x27ee0000 0x0 0x1000>;
2832		interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
2833		clocks = <&cru MCLK_SAI8_8CH>, <&cru HCLK_SAI8_8CH>;
2834		clock-names = "mclk", "hclk";
2835		dmas = <&dmac1 7>;
2836		dma-names = "tx";
2837		power-domains = <&power RK3576_PD_VO1>;
2838		resets = <&cru SRST_M_SAI8_8CH>, <&cru SRST_H_SAI8_8CH>;
2839		reset-names = "m", "h";
2840		#sound-dai-cells = <0>;
2841		sound-name-prefix = "SAI8";
2842		status = "disabled";
2843	};
2844
2845	sai9: sai@27ef0000 {
2846		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
2847		reg = <0x0 0x27ef0000 0x0 0x1000>;
2848		interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
2849		clocks = <&cru MCLK_SAI9_8CH>, <&cru HCLK_SAI9_8CH>;
2850		clock-names = "mclk", "hclk";
2851		dmas = <&dmac0 26>;
2852		dma-names = "tx";
2853		power-domains = <&power RK3576_PD_VO1>;
2854		resets = <&cru SRST_M_SAI9_8CH>, <&cru SRST_H_SAI9_8CH>;
2855		reset-names = "m", "h";
2856		#sound-dai-cells = <0>;
2857		sound-name-prefix = "SAI9";
2858		status = "disabled";
2859	};
2860
2861	pcie0: pcie@2a200000 {
2862		compatible = "rockchip,rk3576-pcie", "snps,dw-pcie";
2863		#address-cells = <3>;
2864		#size-cells = <2>;
2865		bus-range = <0x0 0xf>;
2866		clocks = <&cru ACLK_PCIE0_MST>, <&cru ACLK_PCIE0_SLV>,
2867			 <&cru ACLK_PCIE0_DBI>, <&cru PCLK_PCIE0>,
2868			 <&cru CLK_PCIE0_AUX>;
2869		clock-names = "aclk_mst", "aclk_slv",
2870			      "aclk_dbi", "pclk",
2871			      "aux";
2872		device_type = "pci";
2873		interrupts = <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
2874			     <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
2875			     <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
2876			     <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
2877			     <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
2878			     <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
2879		interrupt-names = "msi", "sys", "pmc", "msg", "legacy", "err";
2880		#interrupt-cells = <1>;
2881		interrupt-map-mask = <0 0 0 7>;
2882		interrupt-map = <0 0 0 1 &pcie0_intc 0>,
2883				<0 0 0 2 &pcie0_intc 1>,
2884				<0 0 0 3 &pcie0_intc 2>,
2885				<0 0 0 4 &pcie0_intc 3>;
2886		linux,pci-domain = <0>;
2887		num-ib-windows = <8>;
2888		num-viewport = <8>;
2889		num-ob-windows = <2>;
2890		max-link-speed = <2>;
2891		num-lanes = <1>;
2892		phys = <&combphy0_ps PHY_TYPE_PCIE>;
2893		phy-names = "pcie-phy";
2894		power-domains = <&power RK3576_PD_PHP>;
2895		ranges = <0x00000800 0x0 0x20000000 0x0 0x20000000 0x0 0x00100000
2896			  0x81000000 0x0 0x20100000 0x0 0x20100000 0x0 0x00100000
2897			  0x82000000 0x0 0x20200000 0x0 0x20200000 0x0 0x00e00000
2898			  0x83000000 0x9 0x00000000 0x9 0x00000000 0x0 0x80000000>;
2899		reg = <0x0 0x2a200000 0x0 0x00010000>,
2900		      <0x0 0x22000000 0x0 0x00400000>,
2901		      <0x0 0x20000000 0x0 0x00100000>;
2902		reg-names = "pcie-apb", "pcie-dbi", "config";
2903		resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
2904		reset-names = "pipe", "p_pcie0";
2905		dma-coherent;
2906		status = "disabled";
2907
2908		pcie0_intc: legacy-interrupt-controller {
2909			interrupt-controller;
2910			#address-cells = <0>;
2911			#interrupt-cells = <1>;
2912			interrupt-parent = <&gic>;
2913			interrupts = <GIC_SPI 280 IRQ_TYPE_EDGE_RISING>;
2914		};
2915	};
2916
2917	pcie1: pcie@2a210000 {
2918		compatible = "rockchip,rk3576-pcie", "snps,dw-pcie";
2919		#address-cells = <3>;
2920		#size-cells = <2>;
2921		bus-range = <0x20 0x2f>;
2922		clocks = <&cru ACLK_PCIE1_MST>, <&cru ACLK_PCIE1_SLV>,
2923			 <&cru ACLK_PCIE1_DBI>, <&cru PCLK_PCIE1>,
2924			 <&cru CLK_PCIE1_AUX>;
2925		clock-names = "aclk_mst", "aclk_slv",
2926			      "aclk_dbi", "pclk",
2927			      "aux";
2928		device_type = "pci";
2929		interrupts = <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
2930			     <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
2931			     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
2932			     <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
2933			     <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
2934			     <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>;
2935		interrupt-names = "msi", "sys", "pmc", "msg", "legacy", "err";
2936		#interrupt-cells = <1>;
2937		interrupt-map-mask = <0 0 0 7>;
2938		interrupt-map = <0 0 0 1 &pcie1_intc 0>,
2939				<0 0 0 2 &pcie1_intc 1>,
2940				<0 0 0 3 &pcie1_intc 2>,
2941				<0 0 0 4 &pcie1_intc 3>;
2942		linux,pci-domain = <0>;
2943		num-ib-windows = <8>;
2944		num-viewport = <8>;
2945		num-ob-windows = <2>;
2946		max-link-speed = <2>;
2947		num-lanes = <1>;
2948		phys = <&combphy1_psu PHY_TYPE_PCIE>;
2949		phy-names = "pcie-phy";
2950		power-domains = <&power RK3576_PD_SUBPHP>;
2951		ranges = <0x00000800 0x0 0x21000000 0x0 0x21000000 0x0 0x00100000
2952			  0x81000000 0x0 0x21100000 0x0 0x21100000 0x0 0x00100000
2953			  0x82000000 0x0 0x21200000 0x0 0x21200000 0x0 0x00e00000
2954			  0x83000000 0x9 0x80000000 0x9 0x80000000 0x0 0x80000000>;
2955		reg = <0x0 0x2a210000 0x0 0x00010000>,
2956		      <0x0 0x22400000 0x0 0x00400000>,
2957		      <0x0 0x21000000 0x0 0x00100000>;
2958		reg-names = "pcie-apb", "pcie-dbi", "config";
2959		resets = <&cru SRST_PCIE1_POWER_UP>, <&cru SRST_P_PCIE1>;
2960		reset-names = "pipe", "p_pcie1";
2961		dma-coherent;
2962		status = "disabled";
2963
2964		pcie1_intc: legacy-interrupt-controller {
2965			interrupt-controller;
2966			#address-cells = <0>;
2967			#interrupt-cells = <1>;
2968			interrupt-parent = <&gic>;
2969			interrupts = <GIC_SPI 266 IRQ_TYPE_EDGE_RISING>;
2970		};
2971	};
2972
2973	gmac0: ethernet@2a220000 {
2974		compatible = "rockchip,rk3576-gmac", "snps,dwmac-4.20a";
2975		reg = <0x0 0x2a220000 0x0 0x10000>;
2976		interrupts = <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
2977			     <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
2978		interrupt-names = "macirq", "eth_wake_irq";
2979		rockchip,grf = <&sdgmac_grf>;
2980		rockchip,php_grf = <&ioc_grf>;
2981		clocks = <&cru CLK_GMAC0_125M_SRC>, <&cru CLK_GMAC0_RMII_CRU>,
2982			 <&cru PCLK_GMAC0>, <&cru ACLK_GMAC0>,
2983			 <&cru CLK_GMAC0_PTP_REF>;
2984		clock-names = "stmmaceth", "clk_mac_ref",
2985			      "pclk_mac", "aclk_mac",
2986			      "ptp_ref";
2987		resets = <&cru SRST_A_GMAC0>;
2988		reset-names = "stmmaceth";
2989		power-domains = <&power RK3576_PD_SDGMAC>;
2990
2991		snps,mixed-burst;
2992		snps,tso;
2993
2994		snps,axi-config = <&gmac0_stmmac_axi_setup>;
2995		snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
2996		snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
2997		status = "disabled";
2998
2999		mdio0: mdio {
3000			compatible = "snps,dwmac-mdio";
3001			#address-cells = <0x1>;
3002			#size-cells = <0x0>;
3003		};
3004
3005		gmac0_stmmac_axi_setup: stmmac-axi-config {
3006			snps,wr_osr_lmt = <4>;
3007			snps,rd_osr_lmt = <8>;
3008			snps,blen = <0 0 0 0 16 8 4>;
3009		};
3010
3011		gmac0_mtl_rx_setup: rx-queues-config {
3012			snps,rx-queues-to-use = <1>;
3013			queue0 {};
3014		};
3015
3016		gmac0_mtl_tx_setup: tx-queues-config {
3017			snps,tx-queues-to-use = <1>;
3018			queue0 {};
3019		};
3020	};
3021
3022	gmac1: ethernet@2a230000 {
3023		compatible = "rockchip,rk3576-gmac", "snps,dwmac-4.20a";
3024		reg = <0x0 0x2a230000 0x0 0x10000>;
3025		interrupts = <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
3026			     <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
3027		interrupt-names = "macirq", "eth_wake_irq";
3028		rockchip,grf = <&sdgmac_grf>;
3029		rockchip,php_grf = <&ioc_grf>;
3030		clocks = <&cru CLK_GMAC1_125M_SRC>, <&cru CLK_GMAC1_RMII_CRU>,
3031			 <&cru PCLK_GMAC1>, <&cru ACLK_GMAC1>,
3032			 <&cru CLK_GMAC1_PTP_REF>;
3033		clock-names = "stmmaceth", "clk_mac_ref",
3034			      "pclk_mac", "aclk_mac",
3035			      "ptp_ref";
3036		resets = <&cru SRST_A_GMAC1>;
3037		reset-names = "stmmaceth";
3038		power-domains = <&power RK3576_PD_SDGMAC>;
3039
3040		snps,mixed-burst;
3041		snps,tso;
3042
3043		snps,axi-config = <&gmac1_stmmac_axi_setup>;
3044		snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
3045		snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
3046		status = "disabled";
3047
3048		mdio1: mdio {
3049			compatible = "snps,dwmac-mdio";
3050			#address-cells = <0x1>;
3051			#size-cells = <0x0>;
3052		};
3053
3054		gmac1_stmmac_axi_setup: stmmac-axi-config {
3055			snps,wr_osr_lmt = <4>;
3056			snps,rd_osr_lmt = <8>;
3057			snps,blen = <0 0 0 0 16 8 4>;
3058		};
3059
3060		gmac1_mtl_rx_setup: rx-queues-config {
3061			snps,rx-queues-to-use = <1>;
3062			queue0 {};
3063		};
3064
3065		gmac1_mtl_tx_setup: tx-queues-config {
3066			snps,tx-queues-to-use = <1>;
3067			queue0 {};
3068		};
3069	};
3070
3071	sata0: sata@2a240000 {
3072		compatible = "rockchip,rk-ahci", "snps,dwc-ahci";
3073		reg = <0 0x2a240000 0 0x1000>;
3074		clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>,
3075			 <&cru CLK_RXOOB0>;
3076		clock-names = "sata", "pmalive", "rxoob";
3077		interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
3078		interrupt-names = "hostc";
3079		power-domains = <&power RK3576_PD_SUBPHP>;
3080		phys = <&combphy0_ps PHY_TYPE_SATA>;
3081		phy-names = "sata-phy";
3082		ports-implemented = <0x1>;
3083		status = "disabled";
3084	};
3085
3086	sata1: sata@2a250000 {
3087		compatible = "rockchip,rk-ahci", "snps,dwc-ahci";
3088		reg = <0 0x2a250000 0 0x1000>;
3089		clocks = <&cru ACLK_SATA1>, <&cru CLK_PMALIVE1>,
3090			 <&cru CLK_RXOOB1>;
3091		clock-names = "sata", "pmalive", "rxoob";
3092		interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
3093		interrupt-names = "hostc";
3094		power-domains = <&power RK3576_PD_SUBPHP>;
3095		phys = <&combphy1_psu PHY_TYPE_SATA>;
3096		phy-names = "sata-phy";
3097		ports-implemented = <0x1>;
3098		status = "disabled";
3099	};
3100
3101	mmu0: iommu@2a260000 {
3102		compatible = "rockchip,iommu-v2";
3103		reg = <0x0 0x2a260000 0x0 0x100>;
3104		interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>;
3105		interrupt-names = "mmu0";
3106		clocks = <&cru ACLK_MMU0>, <&cru ACLK_SLV_MMU0>, <&cru PCLK_PHP_ROOT>;
3107		clock-names = "aclk", "iface", "root";
3108		power-domains = <&power RK3576_PD_PHP>;
3109		#iommu-cells = <0>;
3110		status = "disabled";
3111	};
3112
3113	mmu1: iommu@2a270000 {
3114		compatible = "rockchip,iommu-v2";
3115		reg = <0x0 0x2a270000 0x0 0x100>;
3116		interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>;
3117		interrupt-names = "mmu1";
3118		clocks = <&cru ACLK_MMU1>, <&cru ACLK_SLV_MMU1>, <&cru PCLK_PHP_ROOT>;
3119		clock-names = "aclk", "iface", "root";
3120		power-domains = <&power RK3576_PD_PHP>;
3121		#iommu-cells = <0>;
3122		status = "disabled";
3123	};
3124
3125	mmu2: iommu@2a2c0000 {
3126		compatible = "rockchip,iommu-v2";
3127		reg = <0x0 0x2a2c0000 0x0 0x100>;
3128		interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
3129		interrupt-names = "mmu2";
3130		clocks = <&cru ACLK_MMU2>, <&cru ACLK_SLV_MMU2>, <&cru PCLK_USB_ROOT>;
3131		clock-names = "aclk", "iface", "root";
3132		power-domains = <&power RK3576_PD_USB>;
3133		#iommu-cells = <0>;
3134		status = "disabled";
3135	};
3136
3137	ufs: ufs@2a2d0000 {
3138		compatible = "rockchip,rk3576-ufs";
3139		reg = <0x0 0x2a2d0000 0 0x10000>, /* 0: HCI standard */
3140		      <0x0 0x2b040000 0 0x10000>, /* 1: Mphy */
3141		      <0x0 0x2601f000 0 0x1000>,  /* 2: HCI Vendor specified */
3142		      <0x0 0x2603c000 0 0x1000>,  /* 3: Mphy Vendor specified */
3143		      <0x0 0x2a2e0000 0 0x10000>; /* 4: HCI apb */
3144		reg-names = "hci", "mphy", "hci_grf", "mphy_grf", "hci_apb";
3145		clocks = <&cru ACLK_UFS_SYS>, <&cru PCLK_USB_ROOT>, <&cru PCLK_MPHY>,
3146			 <&cru CLK_REF_UFS_CLKOUT>;
3147		clock-names = "core", "pclk", "pclk_mphy",
3148			      "ref_out";
3149		assigned-clocks = <&cru CLK_REF_OSC_MPHY>;
3150		assigned-clock-parents = <&cru CLK_REF_MPHY_26M>;
3151		interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
3152		power-domains = <&power RK3576_PD_USB>;
3153		pinctrl-0 = <&ufs_rst &ufs_refclk>;
3154		pinctrl-names = "default";
3155		resets = <&cru SRST_A_UFS_BIU>, <&cru SRST_A_UFS_SYS>, <&cru SRST_A_UFS>, <&cru SRST_P_UFS_GRF>;
3156		reset-names = "biu", "sys", "ufs", "grf";
3157		status = "disabled";
3158	};
3159
3160	sfc1: spi@2a300000 {
3161		compatible = "rockchip,sfc";
3162		reg = <0x0 0x2a300000 0x0 0x4000>;
3163		interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
3164		clocks = <&cru SCLK_FSPI1_X2>, <&cru HCLK_FSPI1>;
3165		clock-names = "clk_sfc", "hclk_sfc";
3166		assigned-clocks = <&cru SCLK_FSPI1_X2>;
3167		assigned-clock-rates = <80000000>;
3168		rockchip,max-dll = <0xFF>;
3169		#address-cells = <1>;
3170		#size-cells = <0>;
3171		status = "disabled";
3172	};
3173
3174	sdmmc: mmc@2a310000 {
3175		compatible = "rockchip,rk3576-dw-mshc",
3176			     "rockchip,rk3288-dw-mshc";
3177		reg = <0x0 0x2a310000 0x0 0x4000>;
3178		interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
3179		max-frequency = <200000000>;
3180		clocks = <&cru HCLK_SDMMC0>, <&cru CCLK_SRC_SDMMC0>;
3181		clock-names = "biu", "ciu";
3182		fifo-depth = <0x100>;
3183		pinctrl-names = "default";
3184		pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4 &sdmmc0_pwren>;
3185		resets = <&cru SRST_H_SDMMC0>;
3186		reset-names = "reset";
3187		rockchip,use-v2-tuning;
3188		status = "disabled";
3189	};
3190
3191	sdio: mmc@2a320000 {
3192		compatible = "rockchip,rk3576-dw-mshc",
3193			     "rockchip,rk3288-dw-mshc";
3194		reg = <0x0 0x2a320000 0x0 0x4000>;
3195		interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
3196		max-frequency = <200000000>;
3197		clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>;
3198		clock-names = "biu", "ciu";
3199		fifo-depth = <0x100>;
3200		pinctrl-names = "default";
3201		pinctrl-0 = <&sdmmc1m0_clk &sdmmc1m0_cmd &sdmmc1m0_bus4>;
3202		resets = <&cru SRST_H_SDIO>;
3203		reset-names = "reset";
3204		rockchip,use-v2-tuning;
3205		status = "disabled";
3206	};
3207
3208	sdhci: mmc@2a330000 {
3209		compatible = "rockchip,rk3576-dwcmshc", "rockchip,rk3588-dwcmshc";
3210		reg = <0x0 0x2a330000 0x0 0x10000>;
3211		interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
3212		assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>, <&cru CCLK_SRC_EMMC>;
3213		assigned-clock-rates = <200000000>, <24000000>, <200000000>;
3214		clocks = <&cru CCLK_SRC_EMMC>, <&cru HCLK_EMMC>,
3215			 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
3216			 <&cru TCLK_EMMC>;
3217		clock-names = "core", "bus", "axi", "block", "timer";
3218		resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,
3219			 <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,
3220			 <&cru SRST_T_EMMC>;
3221		reset-names = "core", "bus", "axi", "block", "timer";
3222		max-frequency = <200000000>;
3223		status = "disabled";
3224	};
3225
3226	sfc0: spi@2a340000 {
3227		compatible = "rockchip,sfc";
3228		reg = <0x0 0x2a340000 0x0 0x4000>;
3229		interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
3230		clocks = <&cru SCLK_FSPI_X2>, <&cru HCLK_FSPI>;
3231		clock-names = "clk_sfc", "hclk_sfc";
3232		assigned-clocks = <&cru SCLK_FSPI_X2>;
3233		assigned-clock-rates = <80000000>;
3234		rockchip,max-dll = <0xFF>;
3235		#address-cells = <1>;
3236		#size-cells = <0>;
3237		status = "disabled";
3238	};
3239
3240	crypto: crypto@2a400000 {
3241		compatible = "rockchip,crypto-v4";
3242		reg = <0x0 0x2a400000 0x0 0x2000>;
3243		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
3244		clocks = <&cru ACLK_CRYPTO_NS>, <&cru HCLK_CRYPTO_NS>,
3245			 <&cru CLK_PKA_CRYPTO_NS>;
3246		clock-names = "aclk", "hclk", "pka";
3247		assigned-clocks = <&cru ACLK_CRYPTO_NS>, <&cru CLK_PKA_CRYPTO_NS>;
3248		assigned-clock-rates = <300000000>, <300000000>;
3249		resets = <&cru SRST_H_CRYPTO_NS>;
3250		reset-names = "crypto-rst";
3251		status = "disabled";
3252	};
3253
3254	rng: rng@2a410000 {
3255		compatible = "rockchip,rkrng";
3256		reg = <0x0 0x2a410000 0x0 0x200>;
3257		interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
3258		clocks = <&cru HCLK_TRNG_NS>;
3259		clock-names = "hclk_trng";
3260		resets = <&cru SRST_H_TRNG_NS>;
3261		reset-names = "reset";
3262		status = "disabled";
3263	};
3264
3265	otp: otp@2a580000 {
3266		compatible = "rockchip,rk3576-otp";
3267		reg = <0x0 0x2a580000 0x0 0x400>;
3268		#address-cells = <1>;
3269		#size-cells = <1>;
3270		clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>;
3271		clock-names = "otpc", "apb";
3272		resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>;
3273		reset-names = "otpc", "apb";
3274
3275		/* Data cells */
3276		cpu_code: cpu-code@2 {
3277			reg = <0x02 0x2>;
3278		};
3279		otp_cpu_version: cpu-version@5 {
3280			reg = <0x05 0x1>;
3281			bits = <3 3>;
3282		};
3283		otp_id: id@a {
3284			reg = <0x0a 0x10>;
3285		};
3286		cpub_leakage: cpub-leakage@1e {
3287			reg = <0x1e 0x1>;
3288		};
3289		cpul_leakage: cpul-leakage@1f {
3290			reg = <0x1f 0x1>;
3291		};
3292		npu_leakage: npu-leakage@20 {
3293			reg = <0x20 0x1>;
3294		};
3295		gpu_leakage: gpu-leakage@21 {
3296			reg = <0x21 0x1>;
3297		};
3298		log_leakage: log-leakage@22 {
3299			reg = <0x22 0x1>;
3300		};
3301	};
3302
3303	sai0: sai@2a600000 {
3304		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
3305		reg = <0x0 0x2a600000 0x0 0x1000>;
3306		interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
3307		clocks = <&cru MCLK_SAI0_8CH>, <&cru HCLK_SAI0_8CH>;
3308		clock-names = "mclk", "hclk";
3309		dmas = <&dmac0 0>, <&dmac0 1>;
3310		dma-names = "tx", "rx";
3311		power-domains = <&power RK3576_PD_AUDIO>;
3312		resets = <&cru SRST_M_SAI0_8CH>, <&cru SRST_H_SAI0_8CH>;
3313		reset-names = "m", "h";
3314		pinctrl-names = "default";
3315		pinctrl-0 = <&sai0m0_lrck
3316			     &sai0m0_sclk
3317			     &sai0m0_sdi0
3318			     &sai0m0_sdi1
3319			     &sai0m0_sdi2
3320			     &sai0m0_sdi3
3321			     &sai0m0_sdo0
3322			     &sai0m0_sdo1
3323			     &sai0m0_sdo2
3324			     &sai0m0_sdo3>;
3325		#sound-dai-cells = <0>;
3326		sound-name-prefix = "SAI0";
3327		status = "disabled";
3328	};
3329
3330	sai1: sai@2a610000 {
3331		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
3332		reg = <0x0 0x2a610000 0x0 0x1000>;
3333		interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
3334		clocks = <&cru MCLK_SAI1_8CH>, <&cru HCLK_SAI1_8CH>;
3335		clock-names = "mclk", "hclk";
3336		dmas = <&dmac0 2>, <&dmac0 3>;
3337		dma-names = "tx", "rx";
3338		power-domains = <&power RK3576_PD_AUDIO>;
3339		resets = <&cru SRST_M_SAI1_8CH>, <&cru SRST_H_SAI1_8CH>;
3340		reset-names = "m", "h";
3341		pinctrl-names = "default";
3342		pinctrl-0 = <&sai1m0_lrck
3343			     &sai1m0_sclk
3344			     &sai1m0_sdi0
3345			     &sai1m0_sdo0
3346			     &sai1m0_sdo1
3347			     &sai1m0_sdo2
3348			     &sai1m0_sdo3>;
3349		#sound-dai-cells = <0>;
3350		sound-name-prefix = "SAI1";
3351		status = "disabled";
3352	};
3353
3354	sai2: sai@2a620000 {
3355		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
3356		reg = <0x0 0x2a620000 0x0 0x1000>;
3357		interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
3358		clocks = <&cru MCLK_SAI2_2CH>, <&cru HCLK_SAI2_2CH>;
3359		clock-names = "mclk", "hclk";
3360		dmas = <&dmac1 0>, <&dmac1 1>;
3361		dma-names = "tx", "rx";
3362		power-domains = <&power RK3576_PD_AUDIO>;
3363		resets = <&cru SRST_M_SAI2_2CH>, <&cru SRST_H_SAI2_2CH>;
3364		reset-names = "m", "h";
3365		pinctrl-names = "default";
3366		pinctrl-0 = <&sai2m0_lrck
3367			     &sai2m0_sclk
3368			     &sai2m0_sdi
3369			     &sai2m0_sdo>;
3370		#sound-dai-cells = <0>;
3371		sound-name-prefix = "SAI2";
3372		status = "disabled";
3373	};
3374
3375	sai3: sai@2a630000 {
3376		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
3377		reg = <0x0 0x2a630000 0x0 0x1000>;
3378		interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
3379		clocks = <&cru MCLK_SAI3_2CH>, <&cru HCLK_SAI3_2CH>;
3380		clock-names = "mclk", "hclk";
3381		dmas = <&dmac1 2>, <&dmac1 3>;
3382		dma-names = "tx", "rx";
3383		power-domains = <&power RK3576_PD_AUDIO>;
3384		resets = <&cru SRST_M_SAI3_2CH>, <&cru SRST_H_SAI3_2CH>;
3385		reset-names = "m", "h";
3386		pinctrl-names = "default";
3387		pinctrl-0 = <&sai3m0_lrck
3388			     &sai3m0_sclk
3389			     &sai3m0_sdi
3390			     &sai3m0_sdo>;
3391		#sound-dai-cells = <0>;
3392		sound-name-prefix = "SAI3";
3393		status = "disabled";
3394	};
3395
3396	sai4: sai@2a640000 {
3397		compatible = "rockchip,rk3576-sai", "rockchip,sai-v1";
3398		reg = <0x0 0x2a640000 0x0 0x1000>;
3399		interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
3400		clocks = <&cru MCLK_SAI4_2CH>, <&cru HCLK_SAI4_2CH>;
3401		clock-names = "mclk", "hclk";
3402		dmas = <&dmac2 0>, <&dmac2 1>;
3403		dma-names = "tx", "rx";
3404		power-domains = <&power RK3576_PD_AUDIO>;
3405		resets = <&cru SRST_M_SAI4_2CH>, <&cru SRST_H_SAI4_2CH>;
3406		reset-names = "m", "h";
3407		pinctrl-names = "default";
3408		pinctrl-0 = <&sai4m0_lrck
3409			     &sai4m0_sclk
3410			     &sai4m0_sdi
3411			     &sai4m0_sdo>;
3412		#sound-dai-cells = <0>;
3413		sound-name-prefix = "SAI4";
3414		status = "disabled";
3415	};
3416
3417	spdif_rx0: spdif-rx@2a650000 {
3418		compatible = "rockchip,rk3576-spdifrx", "rockchip,rk3308-spdifrx";
3419		reg = <0x0 0x2a650000 0x0 0x1000>;
3420		interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
3421		clocks = <&cru MCLK_SPDIF_RX0>, <&cru HCLK_SPDIF_RX0>;
3422		clock-names = "mclk", "hclk";
3423		dmas = <&dmac1 8>;
3424		dma-names = "rx";
3425		power-domains = <&power RK3576_PD_AUDIO>;
3426		resets = <&cru SRST_M_SPDIF_RX0>;
3427		reset-names = "spdifrx-m";
3428		pinctrl-names = "default";
3429		pinctrl-0 = <&spdifm0_rx0>;
3430		status = "disabled";
3431	};
3432
3433	spdif_rx1: spdif-rx@2a660000 {
3434		compatible = "rockchip,rk3576-spdifrx", "rockchip,rk3308-spdifrx";
3435		reg = <0x0 0x2a660000 0x0 0x1000>;
3436		interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
3437		clocks = <&cru MCLK_SPDIF_RX1>, <&cru HCLK_SPDIF_RX1>;
3438		clock-names = "mclk", "hclk";
3439		dmas = <&dmac2 16>;
3440		dma-names = "rx";
3441		power-domains = <&power RK3576_PD_AUDIO>;
3442		resets = <&cru SRST_M_SPDIF_RX1>;
3443		reset-names = "spdifrx-m";
3444		pinctrl-names = "default";
3445		pinctrl-0 = <&spdifm0_rx1>;
3446		status = "disabled";
3447	};
3448
3449	spdif_tx0: spdif-tx@2a670000 {
3450		compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
3451		reg = <0x0 0x2a670000 0x0 0x1000>;
3452		interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
3453		clocks = <&cru MCLK_SPDIF_TX0>, <&cru HCLK_SPDIF_TX0>;
3454		clock-names = "mclk", "hclk";
3455		dmas = <&dmac0 5>;
3456		dma-names = "tx";
3457		power-domains = <&power RK3576_PD_AUDIO>;
3458		pinctrl-names = "default";
3459		pinctrl-0 = <&spdifm0_tx0>;
3460		#sound-dai-cells = <0>;
3461		status = "disabled";
3462	};
3463
3464	spdif_tx1: spdif-tx@2a680000 {
3465		compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
3466		reg = <0x0 0x2a680000 0x0 0x1000>;
3467		interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
3468		clocks = <&cru MCLK_SPDIF_TX1>, <&cru HCLK_SPDIF_TX1>;
3469		clock-names = "mclk", "hclk";
3470		dmas = <&dmac1 5>;
3471		dma-names = "tx";
3472		power-domains = <&power RK3576_PD_AUDIO>;
3473		pinctrl-names = "default";
3474		pinctrl-0 = <&spdifm0_tx1>;
3475		#sound-dai-cells = <0>;
3476		status = "disabled";
3477	};
3478
3479	acdcdig_dsm: acdcdig-dsm@2a6d0000 {
3480		compatible = "rockchip,rk3576-dsm";
3481		reg = <0x0 0x2a6d0000 0x0 0x1000>;
3482		clocks = <&cru MCLK_ACDCDIG_DSM>, <&cru HCLK_ACDCDIG_DSM>;
3483		clock-names = "dac", "pclk";
3484		resets = <&cru SRST_M_ACDCDIG_DSM>;
3485		reset-names = "reset" ;
3486		rockchip,grf = <&sys_grf>;
3487		power-domains = <&power RK3576_PD_AUDIO>;
3488		pinctrl-names = "default";
3489		pinctrl-0 = <&dsm_audm0_ln
3490			     &dsm_audm0_lp
3491			     &dsm_audm0_rn
3492			     &dsm_audm0_rp>;
3493		#sound-dai-cells = <0>;
3494		status = "disabled";
3495	};
3496
3497	pdm1: pdm@2a6e0000 {
3498		compatible = "rockchip,rk3576-pdm";
3499		reg = <0x0 0x2a6e0000 0x0 0x1000>;
3500		interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
3501		clocks = <&cru MCLK_PDM1>, <&cru HCLK_PDM1>, <&cru CLK_PDM1_OUT>;
3502		clock-names = "pdm_clk", "pdm_hclk", "pdm_clk_out";
3503		assigned-clocks = <&cru MCLK_PDM1>;
3504		assigned-clock-parents = <&cru PLL_AUPLL>;
3505		dmas = <&dmac1 4>;
3506		dma-names = "rx";
3507		pinctrl-names = "default";
3508		pinctrl-0 = <&pdm1m0_clk0
3509			     &pdm1m0_clk1
3510			     &pdm1m0_sdi0
3511			     &pdm1m0_sdi1
3512			     &pdm1m0_sdi2
3513			     &pdm1m0_sdi3>;
3514		power-domains = <&power RK3576_PD_AUDIO>;
3515		#sound-dai-cells = <0>;
3516		sound-name-prefix = "PDM1";
3517		status = "disabled";
3518	};
3519
3520	gic: interrupt-controller@2a701000 {
3521		compatible = "arm,gic-400";
3522		#interrupt-cells = <3>;
3523		#address-cells = <2>;
3524		#size-cells = <2>;
3525		ranges;
3526		interrupt-controller;
3527
3528		reg = <0x0 0x2a701000 0 0x10000>,
3529		      <0x0 0x2a702000 0 0x10000>,
3530		      <0x0 0x2a704000 0 0x10000>,
3531		      <0x0 0x2a706000 0 0x10000>;
3532		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
3533	};
3534
3535	hwlock: hwspinlock@2ab00000 {
3536		compatible = "rockchip,hwspinlock";
3537		reg = <0x0 0x2ab00000 0x0 0x100>;
3538		#hwlock-cells = <1>;
3539		status = "disabled";
3540	};
3541
3542	dmac0: dma-controller@2ab90000 {
3543		compatible = "arm,pl330", "arm,primecell";
3544		reg = <0x0 0x2ab90000 0x0 0x4000>;
3545		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
3546			     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
3547		clocks = <&cru ACLK_DMAC0>;
3548		clock-names = "apb_pclk";
3549		#dma-cells = <1>;
3550		arm,pl330-periph-burst;
3551	};
3552
3553	dmac1: dma-controller@2abb0000 {
3554		compatible = "arm,pl330", "arm,primecell";
3555		reg = <0x0 0x2abb0000 0x0 0x4000>;
3556		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
3557			     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
3558		clocks = <&cru ACLK_DMAC1>;
3559		clock-names = "apb_pclk";
3560		#dma-cells = <1>;
3561		arm,pl330-periph-burst;
3562	};
3563
3564	dmac2: dma-controller@2abd0000 {
3565		compatible = "arm,pl330", "arm,primecell";
3566		reg = <0x0 0x2abd0000 0x0 0x4000>;
3567		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
3568			     <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
3569		clocks = <&cru ACLK_DMAC2>;
3570		clock-names = "apb_pclk";
3571		#dma-cells = <1>;
3572		arm,pl330-periph-burst;
3573	};
3574
3575	i3c0: i3c-master@2abe0000 {
3576		compatible = "rockchip,i3c-master";
3577		reg = <0x0 0x2abe0000 0x0 0x1000>;
3578		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
3579		#address-cells = <3>;
3580		#size-cells = <0>;
3581		clocks = <&cru HCLK_I3C0>, <&cru CLK_I3C0>;
3582		clock-names = "hclk", "i3c";
3583		dmas = <&dmac0 22>, <&dmac0 23>;
3584		dma-names = "rx", "tx";
3585		pinctrl-names = "default";
3586		pinctrl-0 = <&i3c0m0_xfer &i3c0_sdam0_pu>;
3587		status = "disabled";
3588	};
3589
3590	i3c1: i3c-master@2abf0000 {
3591		compatible = "rockchip,i3c-master";
3592		reg = <0x0 0x2abf0000 0x0 0x1000>;
3593		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
3594		#address-cells = <3>;
3595		#size-cells = <0>;
3596		clocks = <&cru HCLK_I3C1>, <&cru CLK_I3C1>;
3597		clock-names = "hclk", "i3c";
3598		dmas = <&dmac1 22>, <&dmac1 23>;
3599		dma-names = "rx", "tx";
3600		pinctrl-names = "default";
3601		pinctrl-0 = <&i3c1m0_xfer &i3c1_sdam0_pu>;
3602		status = "disabled";
3603	};
3604
3605	can0: can@2ac00000 {
3606		compatible = "rockchip,rk3576-canfd";
3607		reg = <0x0 0x2ac00000 0x0 0x1000>;
3608		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
3609		clocks = <&cru CLK_CAN0>, <&cru HCLK_CAN0>;
3610		clock-names = "baudclk", "apb_pclk";
3611		resets = <&cru SRST_CAN0>, <&cru SRST_H_CAN0>;
3612		reset-names = "can", "can-apb";
3613		dmas = <&dmac0 20>;
3614		dma-names = "rx";
3615		status = "disabled";
3616	};
3617
3618	can1: can@2ac10000 {
3619		compatible = "rockchip,rk3576-canfd";
3620		reg = <0x0 0x2ac10000 0x0 0x1000>;
3621		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
3622		clocks = <&cru CLK_CAN1>, <&cru HCLK_CAN1>;
3623		clock-names = "baudclk", "apb_pclk";
3624		resets = <&cru SRST_CAN1>, <&cru SRST_H_CAN1>;
3625		reset-names = "can", "can-apb";
3626		dmas = <&dmac1 21>;
3627		dma-names = "rx";
3628		status = "disabled";
3629	};
3630
3631	hw_decompress: decompress@2ac30000 {
3632		compatible = "rockchip,hw-decompress";
3633		reg = <0x0 0x2ac30000 0x0 0x1000>;
3634		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
3635		clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>;
3636		clock-names = "aclk", "dclk", "pclk";
3637		resets = <&cru SRST_D_DECOM>;
3638		reset-names = "dresetn";
3639		status = "disabled";
3640	};
3641
3642	i2c1: i2c@2ac40000 {
3643		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3644		reg = <0x0 0x2ac40000 0x0 0x1000>;
3645		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
3646		clock-names = "i2c", "pclk";
3647		interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
3648		pinctrl-names = "default";
3649		pinctrl-0 = <&i2c1m0_xfer>;
3650		resets = <&cru SRST_I2C1>, <&cru SRST_P_I2C1>;
3651		reset-names = "i2c", "apb";
3652		#address-cells = <1>;
3653		#size-cells = <0>;
3654		status = "disabled";
3655	};
3656
3657	i2c2: i2c@2ac50000 {
3658		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3659		reg = <0x0 0x2ac50000 0x0 0x1000>;
3660		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
3661		clock-names = "i2c", "pclk";
3662		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
3663		pinctrl-names = "default";
3664		pinctrl-0 = <&i2c2m0_xfer>;
3665		resets = <&cru SRST_I2C2>, <&cru SRST_P_I2C2>;
3666		reset-names = "i2c", "apb";
3667		#address-cells = <1>;
3668		#size-cells = <0>;
3669		status = "disabled";
3670	};
3671
3672	i2c3: i2c@2ac60000 {
3673		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3674		reg = <0x0 0x2ac60000 0x0 0x1000>;
3675		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
3676		clock-names = "i2c", "pclk";
3677		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
3678		pinctrl-names = "default";
3679		pinctrl-0 = <&i2c3m0_xfer>;
3680		resets = <&cru SRST_I2C3>, <&cru SRST_P_I2C3>;
3681		reset-names = "i2c", "apb";
3682		#address-cells = <1>;
3683		#size-cells = <0>;
3684		status = "disabled";
3685	};
3686
3687	i2c4: i2c@2ac70000 {
3688		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3689		reg = <0x0 0x2ac70000 0x0 0x1000>;
3690		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
3691		clock-names = "i2c", "pclk";
3692		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
3693		pinctrl-names = "default";
3694		pinctrl-0 = <&i2c4m0_xfer>;
3695		resets = <&cru SRST_I2C4>, <&cru SRST_P_I2C4>;
3696		reset-names = "i2c", "apb";
3697		#address-cells = <1>;
3698		#size-cells = <0>;
3699		status = "disabled";
3700	};
3701
3702	i2c5: i2c@2ac80000 {
3703		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3704		reg = <0x0 0x2ac80000 0x0 0x1000>;
3705		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
3706		clock-names = "i2c", "pclk";
3707		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
3708		pinctrl-names = "default";
3709		pinctrl-0 = <&i2c5m0_xfer>;
3710		resets = <&cru SRST_I2C5>, <&cru SRST_P_I2C5>;
3711		reset-names = "i2c", "apb";
3712		#address-cells = <1>;
3713		#size-cells = <0>;
3714		status = "disabled";
3715	};
3716
3717
3718	i2c6: i2c@2ac90000 {
3719		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3720		reg = <0x0 0x2ac90000 0x0 0x1000>;
3721		clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
3722		clock-names = "i2c", "pclk";
3723		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
3724		pinctrl-names = "default";
3725		pinctrl-0 = <&i2c6m0_xfer>;
3726		resets = <&cru SRST_I2C6>, <&cru SRST_P_I2C6>;
3727		reset-names = "i2c", "apb";
3728		#address-cells = <1>;
3729		#size-cells = <0>;
3730		status = "disabled";
3731	};
3732
3733	i2c7: i2c@2aca0000 {
3734		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3735		reg = <0x0 0x2aca0000 0x0 0x1000>;
3736		clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
3737		clock-names = "i2c", "pclk";
3738		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
3739		pinctrl-names = "default";
3740		pinctrl-0 = <&i2c7m0_xfer>;
3741		resets = <&cru SRST_I2C7>, <&cru SRST_P_I2C7>;
3742		reset-names = "i2c", "apb";
3743		#address-cells = <1>;
3744		#size-cells = <0>;
3745		status = "disabled";
3746	};
3747
3748	i2c8: i2c@2acb0000 {
3749		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
3750		reg = <0x0 0x2acb0000 0x0 0x1000>;
3751		clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>;
3752		clock-names = "i2c", "pclk";
3753		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
3754		pinctrl-names = "default";
3755		pinctrl-0 = <&i2c8m0_xfer>;
3756		resets = <&cru SRST_I2C8>, <&cru SRST_P_I2C8>;
3757		reset-names = "i2c", "apb";
3758		#address-cells = <1>;
3759		#size-cells = <0>;
3760		status = "disabled";
3761	};
3762
3763	rktimer: timer@2acc0000 {
3764		compatible = "rockchip,rk3576-timer", "rockchip,rk3288-timer";
3765		reg = <0x0 0x2acc0000 0x0 0x20>;
3766		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
3767		clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_TIMER0>;
3768		clock-names = "pclk", "timer";
3769	};
3770
3771	wdt: watchdog@2ace0000 {
3772		compatible = "snps,dw-wdt";
3773		reg = <0x0 0x2ace0000 0x0 0x100>;
3774		clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>;
3775		clock-names = "tclk", "pclk";
3776		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
3777		status = "disabled";
3778	};
3779
3780	spi0: spi@2acf0000 {
3781		compatible = "rockchip,rk3066-spi";
3782		reg = <0x0 0x2acf0000 0x0 0x1000>;
3783		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
3784		#address-cells = <1>;
3785		#size-cells = <0>;
3786		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
3787		clock-names = "spiclk", "apb_pclk";
3788		dmas = <&dmac0 14>, <&dmac0 15>;
3789		dma-names = "tx", "rx";
3790		pinctrl-names = "default";
3791		pinctrl-0 = <&spi0m0_csn0 &spi0m0_csn1 &spi0m0_pins>;
3792		num-cs = <2>;
3793		status = "disabled";
3794	};
3795
3796	spi1: spi@2ad00000 {
3797		compatible = "rockchip,rk3066-spi";
3798		reg = <0x0 0x2ad00000 0x0 0x1000>;
3799		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
3800		#address-cells = <1>;
3801		#size-cells = <0>;
3802		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
3803		clock-names = "spiclk", "apb_pclk";
3804		dmas = <&dmac0 16>, <&dmac0 17>;
3805		dma-names = "tx", "rx";
3806		pinctrl-names = "default";
3807		pinctrl-0 = <&spi1m0_csn0 &spi1m0_csn1 &spi1m0_pins>;
3808		num-cs = <2>;
3809		status = "disabled";
3810	};
3811
3812	spi2: spi@2ad10000 {
3813		compatible = "rockchip,rk3066-spi";
3814		reg = <0x0 0x2ad10000 0x0 0x1000>;
3815		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
3816		#address-cells = <1>;
3817		#size-cells = <0>;
3818		clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
3819		clock-names = "spiclk", "apb_pclk";
3820		dmas = <&dmac1 15>, <&dmac1 16>;
3821		dma-names = "tx", "rx";
3822		pinctrl-names = "default";
3823		pinctrl-0 = <&spi2m0_csn0 &spi2m0_csn1 &spi2m0_pins>;
3824		num-cs = <2>;
3825		status = "disabled";
3826	};
3827
3828	spi3: spi@2ad20000 {
3829		compatible = "rockchip,rk3066-spi";
3830		reg = <0x0 0x2ad20000 0x0 0x1000>;
3831		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
3832		#address-cells = <1>;
3833		#size-cells = <0>;
3834		clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
3835		clock-names = "spiclk", "apb_pclk";
3836		dmas = <&dmac1 17>, <&dmac1 18>;
3837		dma-names = "tx", "rx";
3838		pinctrl-names = "default";
3839		pinctrl-0 = <&spi3m0_csn0 &spi3m0_csn1 &spi3m0_pins>;
3840		num-cs = <2>;
3841		status = "disabled";
3842	};
3843
3844	spi4: spi@2ad30000 {
3845		compatible = "rockchip,rk3066-spi";
3846		reg = <0x0 0x2ad30000 0x0 0x1000>;
3847		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
3848		#address-cells = <1>;
3849		#size-cells = <0>;
3850		clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>;
3851		clock-names = "spiclk", "apb_pclk";
3852		dmas = <&dmac2 12>, <&dmac2 13>;
3853		dma-names = "tx", "rx";
3854		pinctrl-names = "default";
3855		pinctrl-0 = <&spi4m0_csn0 &spi4m0_csn1 &spi4m0_pins>;
3856		num-cs = <2>;
3857		status = "disabled";
3858	};
3859
3860	uart0: serial@2ad40000 {
3861		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3862		reg = <0x0 0x2ad40000 0x0 0x100>;
3863		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
3864		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
3865		clock-names = "baudclk", "apb_pclk";
3866		reg-shift = <2>;
3867		reg-io-width = <4>;
3868		dmas = <&dmac0 6>, <&dmac0 7>;
3869		pinctrl-names = "default";
3870		pinctrl-0 = <&uart0m0_xfer>;
3871		status = "disabled";
3872	};
3873
3874	uart2: serial@2ad50000 {
3875		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3876		reg = <0x0 0x2ad50000 0x0 0x100>;
3877		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
3878		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
3879		clock-names = "baudclk", "apb_pclk";
3880		reg-shift = <2>;
3881		reg-io-width = <4>;
3882		dmas = <&dmac0 10>, <&dmac0 11>;
3883		pinctrl-names = "default";
3884		pinctrl-0 = <&uart2m0_xfer>;
3885		status = "disabled";
3886	};
3887
3888	uart3: serial@2ad60000 {
3889		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3890		reg = <0x0 0x2ad60000 0x0 0x100>;
3891		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
3892		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
3893		clock-names = "baudclk", "apb_pclk";
3894		reg-shift = <2>;
3895		reg-io-width = <4>;
3896		dmas = <&dmac0 12>, <&dmac0 13>;
3897		pinctrl-names = "default";
3898		pinctrl-0 = <&uart3m0_xfer>;
3899		status = "disabled";
3900	};
3901
3902	uart4: serial@2ad70000 {
3903		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3904		reg = <0x0 0x2ad70000 0x0 0x100>;
3905		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
3906		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
3907		clock-names = "baudclk", "apb_pclk";
3908		reg-shift = <2>;
3909		reg-io-width = <4>;
3910		dmas = <&dmac1 9>, <&dmac1 10>;
3911		pinctrl-names = "default";
3912		pinctrl-0 = <&uart4m0_xfer>;
3913		status = "disabled";
3914	};
3915
3916	uart5: serial@2ad80000 {
3917		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3918		reg = <0x0 0x2ad80000 0x0 0x100>;
3919		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
3920		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
3921		clock-names = "baudclk", "apb_pclk";
3922		reg-shift = <2>;
3923		reg-io-width = <4>;
3924		dmas = <&dmac1 11>, <&dmac1 12>;
3925		pinctrl-names = "default";
3926		pinctrl-0 = <&uart5m0_xfer>;
3927		status = "disabled";
3928	};
3929
3930	uart6: serial@2ad90000 {
3931		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3932		reg = <0x0 0x2ad90000 0x0 0x100>;
3933		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
3934		clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
3935		clock-names = "baudclk", "apb_pclk";
3936		reg-shift = <2>;
3937		reg-io-width = <4>;
3938		dmas = <&dmac1 13>, <&dmac1 14>;
3939		pinctrl-names = "default";
3940		pinctrl-0 = <&uart6m0_xfer>;
3941		status = "disabled";
3942	};
3943
3944	uart7: serial@2ada0000 {
3945		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3946		reg = <0x0 0x2ada0000 0x0 0x100>;
3947		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
3948		clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
3949		clock-names = "baudclk", "apb_pclk";
3950		reg-shift = <2>;
3951		reg-io-width = <4>;
3952		dmas = <&dmac2 6>, <&dmac2 7>;
3953		pinctrl-names = "default";
3954		pinctrl-0 = <&uart7m0_xfer>;
3955		status = "disabled";
3956	};
3957
3958	uart8: serial@2adb0000 {
3959		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3960		reg = <0x0 0x2adb0000 0x0 0x100>;
3961		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
3962		clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
3963		clock-names = "baudclk", "apb_pclk";
3964		reg-shift = <2>;
3965		reg-io-width = <4>;
3966		dmas = <&dmac2 8>, <&dmac2 9>;
3967		pinctrl-names = "default";
3968		pinctrl-0 = <&uart8m0_xfer>;
3969		status = "disabled";
3970	};
3971
3972	uart9: serial@2adc0000 {
3973		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
3974		reg = <0x0 0x2adc0000 0x0 0x100>;
3975		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
3976		clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
3977		clock-names = "baudclk", "apb_pclk";
3978		reg-shift = <2>;
3979		reg-io-width = <4>;
3980		dmas = <&dmac2 10>, <&dmac2 11>;
3981		pinctrl-names = "default";
3982		pinctrl-0 = <&uart9m0_xfer>;
3983		status = "disabled";
3984	};
3985
3986	pwm1_6ch_0: pwm@2add0000 {
3987		compatible = "rockchip,rk3576-pwm";
3988		reg = <0x0 0x2add0000 0x0 0x1000>;
3989		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
3990		#pwm-cells = <3>;
3991		pinctrl-names = "active";
3992		pinctrl-0 = <&pwm1m0_ch0>;
3993		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
3994		clock-names = "pwm", "pclk";
3995		status = "disabled";
3996	};
3997
3998	pwm1_6ch_1: pwm@2add1000 {
3999		compatible = "rockchip,rk3576-pwm";
4000		reg = <0x0 0x2add1000 0x0 0x1000>;
4001		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
4002		#pwm-cells = <3>;
4003		pinctrl-names = "active";
4004		pinctrl-0 = <&pwm1m0_ch1>;
4005		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4006		clock-names = "pwm", "pclk";
4007		status = "disabled";
4008	};
4009
4010	pwm1_6ch_2: pwm@2add2000 {
4011		compatible = "rockchip,rk3576-pwm";
4012		reg = <0x0 0x2add2000 0x0 0x1000>;
4013		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
4014		#pwm-cells = <3>;
4015		pinctrl-names = "active";
4016		pinctrl-0 = <&pwm1m0_ch2>;
4017		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4018		clock-names = "pwm", "pclk";
4019		status = "disabled";
4020	};
4021
4022	pwm1_6ch_3: pwm@2add3000 {
4023		compatible = "rockchip,rk3576-pwm";
4024		reg = <0x0 0x2add3000 0x0 0x1000>;
4025		interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
4026		#pwm-cells = <3>;
4027		pinctrl-names = "active";
4028		pinctrl-0 = <&pwm1m0_ch3>;
4029		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4030		clock-names = "pwm", "pclk";
4031		status = "disabled";
4032	};
4033
4034	pwm1_6ch_4: pwm@2add4000 {
4035		compatible = "rockchip,rk3576-pwm";
4036		reg = <0x0 0x2add4000 0x0 0x1000>;
4037		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
4038		#pwm-cells = <3>;
4039		pinctrl-names = "active";
4040		pinctrl-0 = <&pwm1m0_ch4>;
4041		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4042		clock-names = "pwm", "pclk";
4043		status = "disabled";
4044	};
4045
4046	pwm1_6ch_5: pwm@2add5000 {
4047		compatible = "rockchip,rk3576-pwm";
4048		reg = <0x0 0x2add5000 0x0 0x1000>;
4049		interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
4050		#pwm-cells = <3>;
4051		pinctrl-names = "active";
4052		pinctrl-0 = <&pwm1m0_ch5>;
4053		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4054		clock-names = "pwm", "pclk";
4055		status = "disabled";
4056	};
4057
4058	pwm2_8ch_0: pwm@2ade0000 {
4059		compatible = "rockchip,rk3576-pwm";
4060		reg = <0x0 0x2ade0000 0x0 0x1000>;
4061		interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
4062		#pwm-cells = <3>;
4063		pinctrl-names = "active";
4064		pinctrl-0 = <&pwm2m0_ch0>;
4065		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4066		clock-names = "pwm", "pclk";
4067		status = "disabled";
4068	};
4069
4070	pwm2_8ch_1: pwm@2ade1000 {
4071		compatible = "rockchip,rk3576-pwm";
4072		reg = <0x0 0x2ade1000 0x0 0x1000>;
4073		interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
4074		#pwm-cells = <3>;
4075		pinctrl-names = "active";
4076		pinctrl-0 = <&pwm2m0_ch1>;
4077		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4078		clock-names = "pwm", "pclk";
4079		status = "disabled";
4080	};
4081
4082	pwm2_8ch_2: pwm@2ade2000 {
4083		compatible = "rockchip,rk3576-pwm";
4084		reg = <0x0 0x2ade2000 0x0 0x1000>;
4085		interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
4086		#pwm-cells = <3>;
4087		pinctrl-names = "active";
4088		pinctrl-0 = <&pwm2m0_ch2>;
4089		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4090		clock-names = "pwm", "pclk";
4091		status = "disabled";
4092	};
4093
4094	pwm2_8ch_3: pwm@2ade3000 {
4095		compatible = "rockchip,rk3576-pwm";
4096		reg = <0x0 0x2ade3000 0x0 0x1000>;
4097		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
4098		#pwm-cells = <3>;
4099		pinctrl-names = "active";
4100		pinctrl-0 = <&pwm2m0_ch3>;
4101		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4102		clock-names = "pwm", "pclk";
4103		status = "disabled";
4104	};
4105
4106	pwm2_8ch_4: pwm@2ade4000 {
4107		compatible = "rockchip,rk3576-pwm";
4108		reg = <0x0 0x2ade4000 0x0 0x1000>;
4109		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
4110		#pwm-cells = <3>;
4111		pinctrl-names = "active";
4112		pinctrl-0 = <&pwm2m0_ch4>;
4113		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4114		clock-names = "pwm", "pclk";
4115		status = "disabled";
4116	};
4117
4118	pwm2_8ch_5: pwm@2ade5000 {
4119		compatible = "rockchip,rk3576-pwm";
4120		reg = <0x0 0x2ade5000 0x0 0x1000>;
4121		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
4122		#pwm-cells = <3>;
4123		pinctrl-names = "active";
4124		pinctrl-0 = <&pwm2m0_ch5>;
4125		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4126		clock-names = "pwm", "pclk";
4127		status = "disabled";
4128	};
4129
4130	pwm2_8ch_6: pwm@2ade6000 {
4131		compatible = "rockchip,rk3576-pwm";
4132		reg = <0x0 0x2ade6000 0x0 0x1000>;
4133		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
4134		#pwm-cells = <3>;
4135		pinctrl-names = "active";
4136		pinctrl-0 = <&pwm2m0_ch6>;
4137		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4138		clock-names = "pwm", "pclk";
4139		status = "disabled";
4140	};
4141
4142	pwm2_8ch_7: pwm@2ade7000 {
4143		compatible = "rockchip,rk3576-pwm";
4144		reg = <0x0 0x2ade7000 0x0 0x1000>;
4145		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
4146		#pwm-cells = <3>;
4147		pinctrl-names = "active";
4148		pinctrl-0 = <&pwm2m0_ch7>;
4149		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4150		clock-names = "pwm", "pclk";
4151		status = "disabled";
4152	};
4153
4154	saradc: adc@2ae00000 {
4155		compatible = "rockchip,rk3576-saradc", "rockchip,rk3588-saradc";
4156		reg = <0x0 0x2ae00000 0x0 0x10000>;
4157		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
4158		#io-channel-cells = <1>;
4159		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
4160		clock-names = "saradc", "apb_pclk";
4161		resets = <&cru SRST_P_SARADC>;
4162		reset-names = "saradc-apb";
4163		status = "disabled";
4164	};
4165
4166	mailbox0: mailbox@2ae50000 {
4167		compatible = "rockchip,rk3576-mailbox";
4168		reg = <0x0 0x2ae50000 0x0 0x20>;
4169		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
4170		clocks = <&cru PCLK_MAILBOX0>;
4171		clock-names = "pclk_mailbox";
4172		#mbox-cells = <1>;
4173		status = "disabled";
4174	};
4175
4176	mailbox1: mailbox@2ae51000 {
4177		compatible = "rockchip,rk3576-mailbox";
4178		reg = <0x0 0x2ae51000 0x0 0x20>;
4179		interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
4180		clocks = <&cru PCLK_MAILBOX0>;
4181		clock-names = "pclk_mailbox";
4182		#mbox-cells = <1>;
4183		status = "disabled";
4184	};
4185
4186	mailbox2: mailbox@2ae52000 {
4187		compatible = "rockchip,rk3576-mailbox";
4188		reg = <0x0 0x2ae52000 0x0 0x20>;
4189		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
4190		clocks = <&cru PCLK_MAILBOX0>;
4191		clock-names = "pclk_mailbox";
4192		#mbox-cells = <1>;
4193		status = "disabled";
4194	};
4195
4196	mailbox3: mailbox@2ae53000 {
4197		compatible = "rockchip,rk3576-mailbox";
4198		reg = <0x0 0x2ae53000 0x0 0x20>;
4199		interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
4200		clocks = <&cru PCLK_MAILBOX0>;
4201		clock-names = "pclk_mailbox";
4202		#mbox-cells = <1>;
4203		status = "disabled";
4204	};
4205
4206	mailbox4: mailbox@2ae54000 {
4207		compatible = "rockchip,rk3576-mailbox";
4208		reg = <0x0 0x2ae54000 0x0 0x20>;
4209		interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
4210		clocks = <&cru PCLK_MAILBOX0>;
4211		clock-names = "pclk_mailbox";
4212		#mbox-cells = <1>;
4213		status = "disabled";
4214	};
4215
4216	mailbox5: mailbox@2ae55000 {
4217		compatible = "rockchip,rk3576-mailbox";
4218		reg = <0x0 0x2ae55000 0x0 0x20>;
4219		interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
4220		clocks = <&cru PCLK_MAILBOX0>;
4221		clock-names = "pclk_mailbox";
4222		#mbox-cells = <1>;
4223		status = "disabled";
4224	};
4225
4226	mailbox6: mailbox@2ae56000 {
4227		compatible = "rockchip,rk3576-mailbox";
4228		reg = <0x0 0x2ae56000 0x0 0x20>;
4229		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
4230		clocks = <&cru PCLK_MAILBOX0>;
4231		clock-names = "pclk_mailbox";
4232		#mbox-cells = <1>;
4233		status = "disabled";
4234	};
4235
4236	mailbox7: mailbox@2ae57000 {
4237		compatible = "rockchip,rk3576-mailbox";
4238		reg = <0x0 0x2ae57000 0x0 0x20>;
4239		interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
4240		clocks = <&cru PCLK_MAILBOX0>;
4241		clock-names = "pclk_mailbox";
4242		#mbox-cells = <1>;
4243		status = "disabled";
4244	};
4245
4246	mailbox8: mailbox@2ae58000 {
4247		compatible = "rockchip,rk3576-mailbox";
4248		reg = <0x0 0x2ae58000 0x0 0x20>;
4249		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
4250		clocks = <&cru PCLK_MAILBOX0>;
4251		clock-names = "pclk_mailbox";
4252		#mbox-cells = <1>;
4253		status = "disabled";
4254	};
4255
4256	mailbox9: mailbox@2ae59000 {
4257		compatible = "rockchip,rk3576-mailbox";
4258		reg = <0x0 0x2ae59000 0x0 0x20>;
4259		interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
4260		clocks = <&cru PCLK_MAILBOX0>;
4261		clock-names = "pclk_mailbox";
4262		#mbox-cells = <1>;
4263		status = "disabled";
4264	};
4265
4266	mailbox10: mailbox@2ae5a000 {
4267		compatible = "rockchip,rk3576-mailbox";
4268		reg = <0x0 0x2ae5a000 0x0 0x20>;
4269		interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
4270		clocks = <&cru PCLK_MAILBOX0>;
4271		clock-names = "pclk_mailbox";
4272		#mbox-cells = <1>;
4273		status = "disabled";
4274	};
4275
4276	mailbox11: mailbox@2ae5b000 {
4277		compatible = "rockchip,rk3576-mailbox";
4278		reg = <0x0 0x2ae5b000 0x0 0x20>;
4279		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
4280		clocks = <&cru PCLK_MAILBOX0>;
4281		clock-names = "pclk_mailbox";
4282		#mbox-cells = <1>;
4283		status = "disabled";
4284	};
4285
4286	mailbox12: mailbox@2ae5c000 {
4287		compatible = "rockchip,rk3576-mailbox";
4288		reg = <0x0 0x2ae5c000 0x0 0x20>;
4289		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
4290		clocks = <&cru PCLK_MAILBOX0>;
4291		clock-names = "pclk_mailbox";
4292		#mbox-cells = <1>;
4293		status = "disabled";
4294	};
4295
4296	mailbox13: mailbox@2ae5d000 {
4297		compatible = "rockchip,rk3576-mailbox";
4298		reg = <0x0 0x2ae5d000 0x0 0x20>;
4299		interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
4300		clocks = <&cru PCLK_MAILBOX0>;
4301		clock-names = "pclk_mailbox";
4302		#mbox-cells = <1>;
4303		status = "disabled";
4304	};
4305
4306	tsadc: tsadc@2ae70000 {
4307		compatible = "rockchip,rk3576-tsadc";
4308		reg = <0x0 0x2ae70000 0x0 0x400>;
4309		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
4310		clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
4311		clock-names = "tsadc", "apb_pclk";
4312		assigned-clocks = <&cru CLK_TSADC>;
4313		assigned-clock-rates = <2000000>;
4314		resets = <&cru SRST_TSADC>, <&cru SRST_P_TSADC>;
4315		reset-names = "tsadc", "tsadc-apb";
4316		#thermal-sensor-cells = <1>;
4317		rockchip,hw-tshut-temp = <120000>;
4318		rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
4319		rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
4320		status = "disabled";
4321	};
4322
4323	i2c9: i2c@2ae80000 {
4324		compatible = "rockchip,rk3576-i2c", "rockchip,rk3399-i2c";
4325		reg = <0x0 0x2ae80000 0x0 0x1000>;
4326		clocks = <&cru CLK_I2C9>, <&cru PCLK_I2C9>;
4327		clock-names = "i2c", "pclk";
4328		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
4329		pinctrl-names = "default";
4330		pinctrl-0 = <&i2c9m0_xfer>;
4331		resets = <&cru SRST_I2C9>, <&cru SRST_P_I2C9>;
4332		reset-names = "i2c", "apb";
4333		#address-cells = <1>;
4334		#size-cells = <0>;
4335		status = "disabled";
4336	};
4337
4338	uart10: serial@2afc0000 {
4339		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
4340		reg = <0x0 0x2afc0000 0x0 0x100>;
4341		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
4342		clocks = <&cru SCLK_UART10>, <&cru PCLK_UART10>;
4343		clock-names = "baudclk", "apb_pclk";
4344		reg-shift = <2>;
4345		reg-io-width = <4>;
4346		dmas = <&dmac2 21>, <&dmac2 22>;
4347		pinctrl-names = "default";
4348		pinctrl-0 = <&uart10m0_xfer>;
4349		status = "disabled";
4350	};
4351
4352	uart11: serial@2afd0000 {
4353		compatible = "rockchip,rk3576-uart", "snps,dw-apb-uart";
4354		reg = <0x0 0x2afd0000 0x0 0x100>;
4355		interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
4356		clocks = <&cru SCLK_UART11>, <&cru PCLK_UART11>;
4357		clock-names = "baudclk", "apb_pclk";
4358		reg-shift = <2>;
4359		reg-io-width = <4>;
4360		dmas = <&dmac2 23>, <&dmac2 24>;
4361		pinctrl-names = "default";
4362		pinctrl-0 = <&uart11m0_xfer>;
4363		status = "disabled";
4364	};
4365
4366	hdptxphy: phy@2b000000 {
4367		compatible = "rockchip,rk3576-hdptx-phy", "rockchip,rk3588-hdptx-phy";
4368		reg = <0x0 0x2b000000 0x0 0x2000>;
4369		clocks = <&cru CLK_PHY_REF_SRC>, <&cru PCLK_PMUPHY_ROOT>;
4370		clock-names = "ref", "apb";
4371		resets = <&cru SRST_P_HDPTX_APB>, <&cru SRST_HDPTX_INIT>,
4372			 <&cru SRST_HDPTX_CMN>, <&cru SRST_HDPTX_LANE>;
4373		reset-names = "apb", "init", "cmn", "lane";
4374		rockchip,grf = <&hdptxphy_grf>;
4375		#phy-cells = <0>;
4376		status = "disabled";
4377	};
4378
4379	hdptxphy_hdmi: hdmiphy@2b000000 {
4380		compatible = "rockchip,rk3576-hdptx-phy-hdmi", "rockchip,rk3588-hdptx-phy-hdmi";
4381		reg = <0x0 0x2b000000 0x0 0x2000>;
4382		clocks = <&cru CLK_PHY_REF_SRC>, <&cru PCLK_PMUPHY_ROOT>;
4383		clock-names = "ref", "apb";
4384		clock-output-names = "clk_hdmiphy_pixel0";
4385		#clock-cells = <0>;
4386		resets = <&cru SRST_P_HDPTX_APB>, <&cru SRST_HDPTX_INIT>,
4387			 <&cru SRST_HDPTX_CMN>, <&cru SRST_HDPTX_LANE>;
4388		reset-names = "apb", "init", "cmn", "lane";
4389		rockchip,grf = <&hdptxphy_grf>;
4390		#phy-cells = <0>;
4391		status = "disabled";
4392	};
4393
4394	usbdp_phy: phy@2b010000 {
4395		compatible = "rockchip,rk3576-usbdp-phy";
4396		reg = <0x0 0x2b010000 0x0 0x10000>;
4397		rockchip,u2phy-grf = <&usb2phy_grf>;
4398		rockchip,usb-grf = <&usb_grf>;
4399		rockchip,usbdpphy-grf = <&usbdpphy_grf>;
4400		rockchip,vo-grf = <&vo1_grf>;
4401		clocks = <&cru CLK_PHY_REF_SRC >,
4402			 <&cru CLK_USBDP_COMBO_PHY_IMMORTAL>,
4403			 <&cru PCLK_USBDPPHY>;
4404		clock-names = "refclk", "immortal", "pclk";
4405		resets = <&cru SRST_USBDP_COMBO_PHY_INIT>,
4406			 <&cru SRST_USBDP_COMBO_PHY_CMN>,
4407			 <&cru SRST_USBDP_COMBO_PHY_LANE>,
4408			 <&cru SRST_USBDP_COMBO_PHY_PCS>,
4409			 <&cru SRST_P_USBDPPHY>;
4410		reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
4411		status = "disabled";
4412
4413		usbdp_phy_dp: dp-port {
4414			#phy-cells = <0>;
4415			status = "disabled";
4416		};
4417
4418		usbdp_phy_u3: u3-port {
4419			#phy-cells = <0>;
4420			status = "disabled";
4421		};
4422	};
4423
4424	mipidcphy0: phy@2b020000 {
4425		compatible = "rockchip,rk3588-mipi-dcphy";
4426		reg = <0x0 0x2b020000 0x0 0x10000>;
4427		rockchip,grf = <&mipidcphy0_grf>;
4428		clocks = <&cru PCLK_MIPI_DCPHY>;
4429		clock-names = "pclk";
4430		resets = <&cru SRST_M_MIPI_DCPHY>,
4431			 <&cru SRST_P_MIPI_DCPHY>,
4432			 <&cru SRST_P_DCPHY_GRF>,
4433			 <&cru SRST_S_MIPI_DCPHY>;
4434		reset-names = "m_phy", "apb", "grf", "s_phy";
4435		#phy-cells = <0>;
4436		status = "okay";
4437	};
4438
4439	csi2_dphy0_hw: csi2-dphy0-hw@2b030000 {
4440		compatible = "rockchip,rk3588-csi2-dphy-hw";
4441		reg = <0x0 0x2b030000 0x0 0x8000>;
4442		clocks = <&cru PCLK_CSIDPHY>;
4443		clock-names = "pclk";
4444		resets = <&cru SRST_P_CSIPHY>;
4445		reset-names = "srst_p_csiphy";
4446		rockchip,grf = <&mipidphy0_grf>;
4447		rockchip,sys_grf = <&sys_grf>;
4448		status = "okay";
4449	};
4450
4451	combphy0_ps: phy@2b050000 {
4452		compatible = "rockchip,rk3576-naneng-combphy";
4453		reg = <0x0 0x2b050000 0x0 0x100>;
4454		#phy-cells = <1>;
4455		clocks = <&cru CLK_REF_PCIE0_PHY>,
4456			 <&cru PCLK_PCIE2_COMBOPHY0>,
4457			 <&cru PCLK_PCIE0>;
4458		clock-names = "refclk", "apbclk", "pipe_clk";
4459		assigned-clocks = <&cru CLK_REF_PCIE0_PHY>;
4460		assigned-clock-rates = <100000000>;
4461		resets = <&cru SRST_P_PCIE2_COMBOPHY0>,
4462			 <&cru SRST_PCIE0_PIPE_PHY>;
4463		reset-names = "combphy-apb", "combphy";
4464		rockchip,pipe-grf = <&php_grf>;
4465		rockchip,pipe-phy-grf = <&pipe_phy0_grf>;
4466		status = "disabled";
4467	};
4468
4469	combphy1_psu: phy@2b060000 {
4470		compatible = "rockchip,rk3576-naneng-combphy";
4471		reg = <0x0 0x2b060000 0x0 0x100>;
4472		#phy-cells = <1>;
4473		clocks = <&cru CLK_REF_PCIE1_PHY>,
4474			 <&cru PCLK_PCIE2_COMBOPHY1>,
4475			 <&cru PCLK_PCIE1>;
4476		clock-names = "refclk", "apbclk", "pipe_clk";
4477		assigned-clocks = <&cru CLK_REF_PCIE1_PHY>;
4478		assigned-clock-rates = <100000000>;
4479		resets = <&cru SRST_P_PCIE2_COMBOPHY1>,
4480			 <&cru SRST_PCIE1_PIPE_PHY>;
4481		reset-names = "combphy-apb", "combphy";
4482		rockchip,pipe-grf = <&php_grf>;
4483		rockchip,pipe-phy-grf = <&pipe_phy1_grf>;
4484		status = "disabled";
4485	};
4486
4487	csi2_dphy1_hw: csi2-dphy1-hw@2b070000 {
4488		compatible = "rockchip,rk3588-csi2-dphy-hw";
4489		reg = <0x0 0x2b070000 0x0 0x8000>;
4490		clocks = <&cru PCLK_CSIDPHY1>;
4491		clock-names = "pclk";
4492		resets = <&cru SRST_P_CSIDPHY1>;
4493		reset-names = "srst_p_csiphy1";
4494		rockchip,grf = <&mipidphy1_grf>;
4495		rockchip,sys_grf = <&sys_grf>;
4496		status = "okay";
4497	};
4498
4499	scmi_shmem: scmi-shmem@4010f000 {
4500		compatible = "arm,scmi-shmem";
4501		reg = <0x0 0x4010f000 0x0 0x100>;
4502	};
4503
4504	pinctrl: pinctrl {
4505		compatible = "rockchip,rk3576-pinctrl";
4506		rockchip,grf = <&ioc_grf>;
4507		#address-cells = <2>;
4508		#size-cells = <2>;
4509		ranges;
4510
4511		gpio0: gpio@27320000 {
4512			compatible = "rockchip,gpio-bank";
4513			reg = <0x0 0x27320000 0x0 0x200>;
4514			interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
4515			clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
4516
4517			gpio-controller;
4518			#gpio-cells = <2>;
4519			gpio-ranges = <&pinctrl 0 0 32>;
4520			interrupt-controller;
4521			#interrupt-cells = <2>;
4522		};
4523
4524		gpio1: gpio@2ae10000 {
4525			compatible = "rockchip,gpio-bank";
4526			reg = <0x0 0x2ae10000 0x0 0x200>;
4527			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
4528			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
4529
4530			gpio-controller;
4531			#gpio-cells = <2>;
4532			gpio-ranges = <&pinctrl 0 32 32>;
4533			interrupt-controller;
4534			#interrupt-cells = <2>;
4535		};
4536
4537		gpio2: gpio@2ae20000 {
4538			compatible = "rockchip,gpio-bank";
4539			reg = <0x0 0x2ae20000 0x0 0x200>;
4540			interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
4541			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
4542
4543			gpio-controller;
4544			#gpio-cells = <2>;
4545			gpio-ranges = <&pinctrl 0 64 32>;
4546			interrupt-controller;
4547			#interrupt-cells = <2>;
4548		};
4549
4550		gpio3: gpio@2ae30000 {
4551			compatible = "rockchip,gpio-bank";
4552			reg = <0x0 0x2ae30000 0x0 0x200>;
4553			interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
4554			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
4555
4556			gpio-controller;
4557			#gpio-cells = <2>;
4558			gpio-ranges = <&pinctrl 0 96 32>;
4559			interrupt-controller;
4560			#interrupt-cells = <2>;
4561		};
4562
4563		gpio4: gpio@2ae40000 {
4564			compatible = "rockchip,gpio-bank";
4565			reg = <0x0 0x2ae40000 0x0 0x200>;
4566			interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
4567			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
4568
4569			gpio-controller;
4570			#gpio-cells = <2>;
4571			gpio-ranges = <&pinctrl 0 128 32>;
4572			interrupt-controller;
4573			#interrupt-cells = <2>;
4574		};
4575	};
4576};
4577
4578#include "rk3576-pinctrl.dtsi"
4579