• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4 */
5
6#include "../../../../../include/dt-bindings/clock/rk3588-cru.h"
7#include "../../../../..//include/dt-bindings/interrupt-controller/arm-gic.h"
8#include "../../../../../include/dt-bindings/interrupt-controller/irq.h"
9#include "../../../../../include/dt-bindings/phy/phy.h"
10#include "../../../../../include/dt-bindings/power/rk3588-power.h"
11#include "../../../../../include/dt-bindings/soc/rockchip,boot-mode.h"
12#include "../../../../../include/dt-bindings/soc/rockchip-system-status.h"
13#include "../../../../../include/dt-bindings/suspend/rockchip-rk3588.h"
14
15/ {
16	compatible = "rockchip,rk3588";
17
18	interrupt-parent = <&gic>;
19	#address-cells = <2>;
20	#size-cells = <2>;
21
22	aliases {
23		csi2dcphy0 = &csi2_dcphy0;
24		csi2dcphy1 = &csi2_dcphy1;
25		csi2dphy0 = &csi2_dphy0;
26		csi2dphy1 = &csi2_dphy1;
27		csi2dphy2 = &csi2_dphy2;
28		dsi0 = &dsi0;
29		dsi1 = &dsi1;
30		ethernet1 = &gmac1;
31		gpio0 = &gpio0;
32		gpio1 = &gpio1;
33		gpio2 = &gpio2;
34		gpio3 = &gpio3;
35		gpio4 = &gpio4;
36		i2c0 = &i2c0;
37		i2c1 = &i2c1;
38		i2c2 = &i2c2;
39		i2c3 = &i2c3;
40		i2c4 = &i2c4;
41		i2c5 = &i2c5;
42		i2c6 = &i2c6;
43		i2c7 = &i2c7;
44		i2c8 = &i2c8;
45		rkcif_mipi_lvds0= &rkcif_mipi_lvds;
46		rkcif_mipi_lvds1= &rkcif_mipi_lvds1;
47		rkcif_mipi_lvds2= &rkcif_mipi_lvds2;
48		rkcif_mipi_lvds3= &rkcif_mipi_lvds3;
49		rkvenc0 = &rkvenc0;
50		rkvenc1 = &rkvenc1;
51		jpege0 = &jpege0;
52		jpege1 = &jpege1;
53		jpege2 = &jpege2;
54		jpege3 = &jpege3;
55		serial0 = &uart0;
56		serial1 = &uart1;
57		serial2 = &uart2;
58		serial3 = &uart3;
59		serial4 = &uart4;
60		serial5 = &uart5;
61		serial6 = &uart6;
62		serial7 = &uart7;
63		serial8 = &uart8;
64		serial9 = &uart9;
65		spi0 = &spi0;
66		spi1 = &spi1;
67		spi2 = &spi2;
68		spi3 = &spi3;
69		spi4 = &spi4;
70		spi5 = &sfc;
71	};
72
73	clocks {
74		compatible = "simple-bus";
75		#address-cells = <2>;
76		#size-cells = <2>;
77		ranges;
78
79		spll: spll {
80			compatible = "fixed-clock";
81			#clock-cells = <0>;
82			clock-frequency = <702000000>;
83			clock-output-names = "spll";
84		};
85
86		xin32k: xin32k {
87			compatible = "fixed-clock";
88			#clock-cells = <0>;
89			clock-frequency = <32768>;
90			clock-output-names = "xin32k";
91		};
92
93		xin24m: xin24m {
94			compatible = "fixed-clock";
95			#clock-cells = <0>;
96			clock-frequency = <24000000>;
97			clock-output-names = "xin24m";
98		};
99
100		hclk_vo1: hclk_vo1@fd7c08ec {
101			compatible = "rockchip,rk3588-clock-gate-link";
102			reg = <0 0xfd7c08ec 0 0x10>;
103			clock-names = "link";
104			clocks = <&cru HCLK_VO1USB_TOP_ROOT>;
105			#power-domain-cells = <1>;
106			#clock-cells = <0>;
107		};
108
109		aclk_vdpu_low_pre: aclk_vdpu_low_pre@fd7c08b0 {
110			compatible = "rockchip,rk3588-clock-gate-link";
111			reg = <0 0xfd7c08b0 0 0x10>;
112			clock-names = "link";
113			clocks = <&cru ACLK_VDPU_ROOT>;
114			#power-domain-cells = <1>;
115			#clock-cells = <0>;
116		};
117
118		hclk_vo0: hclk_vo0@fd7c08dc {
119			compatible = "rockchip,rk3588-clock-gate-link";
120			reg = <0 0xfd7c08dc 0 0x10>;
121			clock-names = "link";
122			clocks = <&cru HCLK_VOP_ROOT>;
123			#power-domain-cells = <1>;
124			#clock-cells = <0>;
125		};
126
127		hclk_usb: hclk_usb@fd7c08a8 {
128			compatible = "rockchip,rk3588-clock-gate-link";
129			reg = <0 0xfd7c08a8 0 0x10>;
130			clock-names = "link";
131			clocks = <&cru HCLK_VO1USB_TOP_ROOT>;
132			#power-domain-cells = <1>;
133			#clock-cells = <0>;
134		};
135
136		hclk_nvm: hclk_nvm@fd7c087c {
137			compatible = "rockchip,rk3588-clock-gate-link";
138			reg = <0 0xfd7c087c 0 0x10>;
139			clock-names = "link";
140			clocks = <&cru ACLK_NVM_ROOT>;
141			#power-domain-cells = <1>;
142			#clock-cells = <0>;
143		};
144
145		aclk_usb: aclk_usb@fd7c08a8 {
146			compatible = "rockchip,rk3588-clock-gate-link";
147			reg = <0 0xfd7c08a8 0 0x10>;
148			clock-names = "link";
149			clocks = <&cru ACLK_VO1USB_TOP_ROOT>;
150			#power-domain-cells = <1>;
151			#clock-cells = <0>;
152		};
153
154		hclk_isp1_pre: hclk_isp1_pre@fd7c0868 {
155			compatible = "rockchip,rk3588-clock-gate-link";
156			reg = <0 0xfd7c0868 0 0x10>;
157			clock-names = "link";
158			clocks = <&cru HCLK_VI_ROOT>;
159			#power-domain-cells = <1>;
160			#clock-cells = <0>;
161		};
162
163		aclk_isp1_pre: aclk_isp1_pre@fd7c0868 {
164			compatible = "rockchip,rk3588-clock-gate-link";
165			reg = <0 0xfd7c0868 0 0x10>;
166			clock-names = "link";
167			clocks = <&cru ACLK_VI_ROOT>;
168			#power-domain-cells = <1>;
169			#clock-cells = <0>;
170		};
171
172		aclk_rkvdec0_pre: aclk_rkvdec0_pre@fd7c08a0 {
173			compatible = "rockchip,rk3588-clock-gate-link";
174			reg = <0 0xfd7c08a0 0 0x10>;
175			clock-names = "link";
176			clocks = <&cru ACLK_VDPU_ROOT>;
177			#power-domain-cells = <1>;
178			#clock-cells = <0>;
179		};
180
181		hclk_rkvdec0_pre: hclk_rkvdec0_pre@fd7c08a0 {
182			compatible = "rockchip,rk3588-clock-gate-link";
183			reg = <0 0xfd7c08a0 0 0x10>;
184			clock-names = "link";
185			clocks = <&cru HCLK_VDPU_ROOT>;
186			#power-domain-cells = <1>;
187			#clock-cells = <0>;
188		};
189
190		aclk_rkvdec1_pre: aclk_rkvdec1_pre@fd7c08a4 {
191			compatible = "rockchip,rk3588-clock-gate-link";
192			reg = <0 0xfd7c08a4 0 0x10>;
193			clock-names = "link";
194			clocks = <&cru ACLK_VDPU_ROOT>;
195			#power-domain-cells = <1>;
196			#clock-cells = <0>;
197		};
198
199		hclk_rkvdec1_pre: hclk_rkvdec1_pre@fd7c08a4 {
200			compatible = "rockchip,rk3588-clock-gate-link";
201			reg = <0 0xfd7c08a4 0 0x10>;
202			clock-names = "link";
203			clocks = <&cru HCLK_VDPU_ROOT>;
204			#power-domain-cells = <1>;
205			#clock-cells = <0>;
206		};
207
208		aclk_jpeg_decoder_pre: aclk_jpeg_decoder_pre@fd7c08b0 {
209			compatible = "rockchip,rk3588-clock-gate-link";
210			reg = <0 0xfd7c08b0 0 0x10>;
211			clock-names = "link";
212			clocks = <&cru ACLK_VDPU_ROOT>;
213			#power-domain-cells = <1>;
214			#clock-cells = <0>;
215		};
216
217		aclk_rkvenc1_pre: aclk_rkvenc1_pre@fd7c08c0 {
218			compatible = "rockchip,rk3588-clock-gate-link";
219			reg = <0 0xfd7c08c0 0 0x10>;
220			clock-names = "link";
221			clocks = <&cru ACLK_RKVENC0>;
222			#power-domain-cells = <1>;
223			#clock-cells = <0>;
224		};
225
226		hclk_rkvenc1_pre: hclk_rkvenc1_pre@fd7c08c0 {
227			compatible = "rockchip,rk3588-clock-gate-link";
228			reg = <0 0xfd7c08c0 0 0x10>;
229			clock-names = "link";
230			clocks = <&cru HCLK_RKVENC0>;
231			#power-domain-cells = <1>;
232			#clock-cells = <0>;
233		};
234
235		aclk_hdcp0_pre: aclk_hdcp0_pre@fd7c08dc {
236			compatible = "rockchip,rk3588-clock-gate-link";
237			reg = <0 0xfd7c08dc 0 0x10>;
238			clock-names = "link";
239			clocks = <&cru ACLK_VOP_LOW_ROOT>;
240			#power-domain-cells = <1>;
241			#clock-cells = <0>;
242		};
243
244		aclk_hdcp1_pre: aclk_hdcp1_pre@fd7c08ec {
245			compatible = "rockchip,rk3588-clock-gate-link";
246			reg = <0 0xfd7c08ec 0 0x10>;
247			clock-names = "link";
248			clocks = <&cru ACLK_VO1USB_TOP_ROOT>;
249			#power-domain-cells = <1>;
250			#clock-cells = <0>;
251		};
252
253		pclk_av1_pre: pclk_av1_pre@fd7c0910 {
254			compatible = "rockchip,rk3588-clock-gate-link";
255			reg = <0 0xfd7c0910 0 0x10>;
256			clock-names = "link";
257			clocks = <&cru HCLK_VDPU_ROOT>;
258			#power-domain-cells = <1>;
259			#clock-cells = <0>;
260		};
261
262		aclk_av1_pre: aclk_av1_pre@fd7c0910 {
263			compatible = "rockchip,rk3588-clock-gate-link";
264			reg = <0 0xfd7c0910 0 0x10>;
265			clock-names = "link";
266			clocks = <&cru ACLK_VDPU_ROOT>;
267			#power-domain-cells = <1>;
268			#clock-cells = <0>;
269		};
270
271		hclk_sdio_pre: hclk_sdio_pre@fd7c092c {
272			compatible = "rockchip,rk3588-clock-gate-link";
273			reg = <0 0xfd7c092c 0 0x10>;
274			clock-names = "link";
275			clocks = <&hclk_nvm>;
276			#power-domain-cells = <1>;
277			#clock-cells = <0>;
278		};
279	};
280
281	cpus {
282		#address-cells = <1>;
283		#size-cells = <0>;
284
285		cpu-map {
286			cluster0 {
287				core0 {
288					cpu = <&cpu_l0>;
289				};
290				core1 {
291					cpu = <&cpu_l1>;
292				};
293				core2 {
294					cpu = <&cpu_l2>;
295				};
296				core3 {
297					cpu = <&cpu_l3>;
298				};
299			};
300			cluster1 {
301				core0 {
302					cpu = <&cpu_b0>;
303				};
304				core1 {
305					cpu = <&cpu_b1>;
306				};
307			};
308			cluster2 {
309				core0 {
310					cpu = <&cpu_b2>;
311				};
312				core1 {
313					cpu = <&cpu_b3>;
314				};
315			};
316		};
317
318		cpu_l0: cpu@0 {
319			device_type = "cpu";
320			compatible = "arm,cortex-a55";
321			reg = <0x0>;
322			enable-method = "psci";
323			capacity-dmips-mhz = <530>;
324			clocks = <&scmi_clk SCMI_CLK_CPUL>;
325			operating-points-v2 = <&cluster0_opp_table>;
326			cpu-idle-states = <&CPU_SLEEP>;
327			i-cache-size = <32768>;
328			i-cache-line-size = <64>;
329			i-cache-sets = <128>;
330			d-cache-size = <32768>;
331			d-cache-line-size = <64>;
332			d-cache-sets = <128>;
333			next-level-cache = <&l2_cache_l0>;
334		};
335
336		cpu_l1: cpu@100 {
337			device_type = "cpu";
338			compatible = "arm,cortex-a55";
339			reg = <0x100>;
340			enable-method = "psci";
341			capacity-dmips-mhz = <530>;
342			clocks = <&scmi_clk SCMI_CLK_CPUL>;
343			operating-points-v2 = <&cluster0_opp_table>;
344			cpu-idle-states = <&CPU_SLEEP>;
345			i-cache-size = <32768>;
346			i-cache-line-size = <64>;
347			i-cache-sets = <128>;
348			d-cache-size = <32768>;
349			d-cache-line-size = <64>;
350			d-cache-sets = <128>;
351			next-level-cache = <&l2_cache_l1>;
352		};
353
354		cpu_l2: cpu@200 {
355			device_type = "cpu";
356			compatible = "arm,cortex-a55";
357			reg = <0x200>;
358			enable-method = "psci";
359			capacity-dmips-mhz = <530>;
360			clocks = <&scmi_clk SCMI_CLK_CPUL>;
361			operating-points-v2 = <&cluster0_opp_table>;
362			cpu-idle-states = <&CPU_SLEEP>;
363			i-cache-size = <32768>;
364			i-cache-line-size = <64>;
365			i-cache-sets = <128>;
366			d-cache-size = <32768>;
367			d-cache-line-size = <64>;
368			d-cache-sets = <128>;
369			next-level-cache = <&l2_cache_l2>;
370		};
371
372		cpu_l3: cpu@300 {
373			device_type = "cpu";
374			compatible = "arm,cortex-a55";
375			reg = <0x300>;
376			enable-method = "psci";
377			capacity-dmips-mhz = <530>;
378			clocks = <&scmi_clk SCMI_CLK_CPUL>;
379			operating-points-v2 = <&cluster0_opp_table>;
380			cpu-idle-states = <&CPU_SLEEP>;
381			i-cache-size = <32768>;
382			i-cache-line-size = <64>;
383			i-cache-sets = <128>;
384			d-cache-size = <32768>;
385			d-cache-line-size = <64>;
386			d-cache-sets = <128>;
387			next-level-cache = <&l2_cache_l3>;
388		};
389
390		cpu_b0: cpu@400 {
391			device_type = "cpu";
392			compatible = "arm,cortex-a76";
393			reg = <0x400>;
394			enable-method = "psci";
395			capacity-dmips-mhz = <1024>;
396			clocks = <&scmi_clk SCMI_CLK_CPUB01>;
397			operating-points-v2 = <&cluster1_opp_table>;
398			cpu-idle-states = <&CPU_SLEEP>;
399			i-cache-size = <65536>;
400			i-cache-line-size = <64>;
401			i-cache-sets = <256>;
402			d-cache-size = <65536>;
403			d-cache-line-size = <64>;
404			d-cache-sets = <256>;
405			next-level-cache = <&l2_cache_b0>;
406		};
407
408		cpu_b1: cpu@500 {
409			device_type = "cpu";
410			compatible = "arm,cortex-a76";
411			reg = <0x500>;
412			enable-method = "psci";
413			capacity-dmips-mhz = <1024>;
414			clocks = <&scmi_clk SCMI_CLK_CPUB01>;
415			operating-points-v2 = <&cluster1_opp_table>;
416			cpu-idle-states = <&CPU_SLEEP>;
417			i-cache-size = <65536>;
418			i-cache-line-size = <64>;
419			i-cache-sets = <256>;
420			d-cache-size = <65536>;
421			d-cache-line-size = <64>;
422			d-cache-sets = <256>;
423			next-level-cache = <&l2_cache_b1>;
424		};
425
426		cpu_b2: cpu@600 {
427			device_type = "cpu";
428			compatible = "arm,cortex-a76";
429			reg = <0x600>;
430			enable-method = "psci";
431			capacity-dmips-mhz = <1024>;
432			clocks = <&scmi_clk SCMI_CLK_CPUB23>;
433			operating-points-v2 = <&cluster2_opp_table>;
434			cpu-idle-states = <&CPU_SLEEP>;
435			i-cache-size = <65536>;
436			i-cache-line-size = <64>;
437			i-cache-sets = <256>;
438			d-cache-size = <65536>;
439			d-cache-line-size = <64>;
440			d-cache-sets = <256>;
441			next-level-cache = <&l2_cache_b2>;
442		};
443
444		cpu_b3: cpu@700 {
445			device_type = "cpu";
446			compatible = "arm,cortex-a76";
447			reg = <0x700>;
448			enable-method = "psci";
449			capacity-dmips-mhz = <1024>;
450			clocks = <&scmi_clk SCMI_CLK_CPUB23>;
451			operating-points-v2 = <&cluster2_opp_table>;
452			cpu-idle-states = <&CPU_SLEEP>;
453			i-cache-size = <65536>;
454			i-cache-line-size = <64>;
455			i-cache-sets = <256>;
456			d-cache-size = <65536>;
457			d-cache-line-size = <64>;
458			d-cache-sets = <256>;
459			next-level-cache = <&l2_cache_b3>;
460		};
461
462		idle-states {
463			entry-method = "psci";
464			CPU_SLEEP: cpu-sleep {
465				compatible = "arm,idle-state";
466				local-timer-stop;
467				arm,psci-suspend-param = <0x0010000>;
468				entry-latency-us = <100>;
469				exit-latency-us = <120>;
470				min-residency-us = <1000>;
471				status = "disabled";
472			};
473		};
474
475		l2_cache_l0: l2-cache-l0 {
476			compatible = "cache";
477			cache-size = <131072>;
478			cache-line-size = <64>;
479			cache-sets = <512>;
480			next-level-cache = <&l3_cache>;
481		};
482
483		l2_cache_l1: l2-cache-l1 {
484			compatible = "cache";
485			cache-size = <131072>;
486			cache-line-size = <64>;
487			cache-sets = <512>;
488			next-level-cache = <&l3_cache>;
489		};
490
491		l2_cache_l2: l2-cache-l2 {
492			compatible = "cache";
493			cache-size = <131072>;
494			cache-line-size = <64>;
495			cache-sets = <512>;
496			next-level-cache = <&l3_cache>;
497		};
498
499		l2_cache_l3: l2-cache-l3 {
500			compatible = "cache";
501			cache-size = <131072>;
502			cache-line-size = <64>;
503			cache-sets = <512>;
504			next-level-cache = <&l3_cache>;
505		};
506
507		l2_cache_b0: l2-cache-b0 {
508			compatible = "cache";
509			cache-size = <524288>;
510			cache-line-size = <64>;
511			cache-sets = <1024>;
512			next-level-cache = <&l3_cache>;
513		};
514
515		l2_cache_b1: l2-cache-b1 {
516			compatible = "cache";
517			cache-size = <524288>;
518			cache-line-size = <64>;
519			cache-sets = <1024>;
520			next-level-cache = <&l3_cache>;
521		};
522
523		l2_cache_b2: l2-cache-b2 {
524			compatible = "cache";
525			cache-size = <524288>;
526			cache-line-size = <64>;
527			cache-sets = <1024>;
528			next-level-cache = <&l3_cache>;
529		};
530
531		l2_cache_b3: l2-cache-b3 {
532			compatible = "cache";
533			cache-size = <524288>;
534			cache-line-size = <64>;
535			cache-sets = <1024>;
536			next-level-cache = <&l3_cache>;
537		};
538
539		l3_cache: l3-cache {
540			compatible = "cache";
541			cache-size = <3145728>;
542			cache-line-size = <64>;
543			cache-sets = <4096>;
544		};
545	};
546
547	cluster0_opp_table: cluster0-opp-table {
548		compatible = "operating-points-v2";
549		opp-shared;
550
551		opp-408000000 {
552			opp-hz = /bits/ 64 <408000000>;
553			opp-microvolt = <750000 750000 950000>,
554					<750000 750000 950000>;
555			clock-latency-ns = <40000>;
556			opp-suspend;
557		};
558		opp-600000000 {
559			opp-hz = /bits/ 64 <600000000>;
560			opp-microvolt = <750000 750000 950000>,
561					<750000 750000 950000>;
562			clock-latency-ns = <40000>;
563		};
564		opp-816000000 {
565			opp-hz = /bits/ 64 <816000000>;
566			opp-microvolt = <750000 750000 950000>,
567					<750000 750000 950000>;
568			clock-latency-ns = <40000>;
569		};
570		opp-1008000000 {
571			opp-hz = /bits/ 64 <1008000000>;
572			opp-microvolt = <750000 750000 950000>,
573					<750000 750000 950000>;
574			clock-latency-ns = <40000>;
575		};
576		opp-1200000000 {
577			opp-hz = /bits/ 64 <1200000000>;
578			opp-microvolt = <775000 775000 950000>,
579					<775000 775000 950000>;
580			clock-latency-ns = <40000>;
581		};
582		opp-1416000000 {
583			opp-hz = /bits/ 64 <1416000000>;
584			opp-microvolt = <825000 825000 950000>,
585					<825000 825000 950000>;
586			clock-latency-ns = <40000>;
587		};
588		opp-1608000000 {
589			opp-hz = /bits/ 64 <1608000000>;
590			opp-microvolt = <875000 875000 950000>,
591					<875000 875000 950000>;
592			clock-latency-ns = <40000>;
593		};
594		opp-1800000000 {
595			opp-hz = /bits/ 64 <1800000000>;
596			opp-microvolt = <950000 950000 950000>,
597					<950000 950000 950000>;
598			clock-latency-ns = <40000>;
599		};
600	};
601
602	cluster1_opp_table: cluster1-opp-table {
603		compatible = "operating-points-v2";
604		opp-shared;
605
606		rockchip,grf = <&bigcore0_grf>;
607		volt-mem-read-margin = <
608			855000	1
609			765000	2
610			675000	3
611			495000	4
612		>;
613
614		rockchip,reboot-freq = <1800000>;
615
616		opp-408000000 {
617			opp-hz = /bits/ 64 <408000000>;
618			opp-microvolt = <600000 600000 1000000>,
619					<675000 675000 1000000>;
620			clock-latency-ns = <40000>;
621			opp-suspend;
622		};
623		opp-600000000 {
624			opp-hz = /bits/ 64 <600000000>;
625			opp-microvolt = <600000 600000 1000000>,
626					<675000 675000 1000000>;
627			clock-latency-ns = <40000>;
628		};
629		opp-816000000 {
630			opp-hz = /bits/ 64 <816000000>;
631			opp-microvolt = <600000 600000 1000000>,
632					<675000 675000 1000000>;
633			clock-latency-ns = <40000>;
634		};
635		opp-1008000000 {
636			opp-hz = /bits/ 64 <1008000000>;
637			opp-microvolt = <625000 625000 1000000>,
638					<675000 675000 1000000>;
639			clock-latency-ns = <40000>;
640		};
641		opp-1200000000 {
642			opp-hz = /bits/ 64 <1200000000>;
643			opp-microvolt = <650000 650000 1000000>,
644					<675000 675000 1000000>;
645			clock-latency-ns = <40000>;
646		};
647		opp-1416000000 {
648			opp-hz = /bits/ 64 <1416000000>;
649			opp-microvolt = <675000 675000 1000000>,
650					<675000 675000 1000000>;
651			clock-latency-ns = <40000>;
652		};
653		opp-1608000000 {
654			opp-hz = /bits/ 64 <1608000000>;
655			opp-microvolt = <700000 700000 1000000>,
656					<700000 700000 1000000>;
657			clock-latency-ns = <40000>;
658		};
659		opp-1800000000 {
660			opp-hz = /bits/ 64 <1800000000>;
661			opp-microvolt = <775000 775000 1000000>,
662					<775000 775000 1000000>;
663			clock-latency-ns = <40000>;
664		};
665		opp-2016000000 {
666			opp-hz = /bits/ 64 <2016000000>;
667			opp-microvolt = <850000 850000 1000000>,
668					<850000 850000 1000000>;
669			clock-latency-ns = <40000>;
670		};
671		opp-2208000000 {
672			opp-hz = /bits/ 64 <2208000000>;
673			opp-microvolt = <925000 925000 1000000>,
674					<925000 925000 1000000>;
675			clock-latency-ns = <40000>;
676		};
677		opp-2400000000 {
678			opp-hz = /bits/ 64 <2400000000>;
679			opp-microvolt = <1000000 1000000 1000000>,
680					<1000000 1000000 1000000>;
681			clock-latency-ns = <40000>;
682		};
683	};
684
685	cluster2_opp_table: cluster2-opp-table {
686		compatible = "operating-points-v2";
687		opp-shared;
688
689		rockchip,grf = <&bigcore1_grf>;
690		volt-mem-read-margin = <
691			855000	1
692			765000	2
693			675000	3
694			495000	4
695		>;
696
697		rockchip,reboot-freq = <1800000>;
698
699		opp-408000000 {
700			opp-hz = /bits/ 64 <408000000>;
701			opp-microvolt = <600000 600000 1000000>,
702					<675000 675000 1000000>;
703			clock-latency-ns = <40000>;
704			opp-suspend;
705		};
706		opp-600000000 {
707			opp-hz = /bits/ 64 <600000000>;
708			opp-microvolt = <600000 600000 1000000>,
709					<675000 675000 1000000>;
710			clock-latency-ns = <40000>;
711		};
712		opp-816000000 {
713			opp-hz = /bits/ 64 <816000000>;
714			opp-microvolt = <600000 600000 1000000>,
715					<675000 675000 1000000>;
716			clock-latency-ns = <40000>;
717		};
718		opp-1008000000 {
719			opp-hz = /bits/ 64 <1008000000>;
720			opp-microvolt = <625000 625000 1000000>,
721					<675000 675000 1000000>;
722			clock-latency-ns = <40000>;
723		};
724		opp-1200000000 {
725			opp-hz = /bits/ 64 <1200000000>;
726			opp-microvolt = <650000 650000 1000000>,
727					<675000 675000 1000000>;
728			clock-latency-ns = <40000>;
729		};
730		opp-1416000000 {
731			opp-hz = /bits/ 64 <1416000000>;
732			opp-microvolt = <675000 675000 1000000>,
733					<675000 675000 1000000>;
734			clock-latency-ns = <40000>;
735		};
736		opp-1608000000 {
737			opp-hz = /bits/ 64 <1608000000>;
738			opp-microvolt = <700000 700000 1000000>,
739					<700000 700000 1000000>;
740			clock-latency-ns = <40000>;
741		};
742		opp-1800000000 {
743			opp-hz = /bits/ 64 <1800000000>;
744			opp-microvolt = <775000 775000 1000000>,
745					<775000 775000 1000000>;
746			clock-latency-ns = <40000>;
747		};
748		opp-2016000000 {
749			opp-hz = /bits/ 64 <2016000000>;
750			opp-microvolt = <850000 850000 1000000>,
751					<850000 850000 1000000>;
752			clock-latency-ns = <40000>;
753		};
754		opp-2208000000 {
755			opp-hz = /bits/ 64 <2208000000>;
756			opp-microvolt = <925000 925000 1000000>,
757					<925000 925000 1000000>;
758			clock-latency-ns = <40000>;
759		};
760		opp-2400000000 {
761			opp-hz = /bits/ 64 <2400000000>;
762			opp-microvolt = <1000000 1000000 1000000>,
763					<1000000 1000000 1000000>;
764			clock-latency-ns = <40000>;
765		};
766	};
767
768	arm_pmu: arm-pmu {
769		compatible = "arm,armv8-pmuv3";
770		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
771		interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>, <&cpu_l3>,
772				     <&cpu_b0>, <&cpu_b1>, <&cpu_b2>, <&cpu_b3>;
773	};
774
775	cpuinfo {
776		compatible = "rockchip,cpuinfo";
777		nvmem-cells = <&otp_id>, <&otp_cpu_version>, <&cpu_code>;
778		nvmem-cell-names = "id", "cpu-version", "cpu-code";
779	};
780
781	csi2_dcphy0: csi2-dcphy0 {
782		compatible = "rockchip,rk3588-csi2-dcphy";
783		rockchip,hw = <&csi2_dcphy0_hw>;
784		status = "disabled";
785	};
786
787	csi2_dcphy1: csi2-dcphy1 {
788		compatible = "rockchip,rk3588-csi2-dcphy";
789		rockchip,hw = <&csi2_dcphy1_hw>;
790		status = "disabled";
791	};
792
793	/* dphy0 full mode */
794	csi2_dphy0: csi2-dphy0 {
795		compatible = "rockchip,rk3568-csi2-dphy";
796		rockchip,hw = <&csi2_dphy0_hw>;
797		status = "disabled";
798	};
799
800	/* dphy0 split mode 01 */
801	csi2_dphy1: csi2-dphy1 {
802		compatible = "rockchip,rk3568-csi2-dphy";
803		rockchip,hw = <&csi2_dphy0_hw>;
804		status = "disabled";
805	};
806
807	/* dphy0 split mode 23 */
808	csi2_dphy2: csi2-dphy2 {
809		compatible = "rockchip,rk3568-csi2-dphy";
810		rockchip,hw = <&csi2_dphy0_hw>;
811		status = "disabled";
812	};
813
814	display_subsystem: display-subsystem {
815		compatible = "rockchip,display-subsystem";
816		ports = <&vop_out>;
817
818		route {
819			route_dp0: route-dp0 {
820				status = "disabled";
821				logo,uboot = "logo.bmp";
822				logo,kernel = "logo_kernel.bmp";
823				logo,mode = "center";
824				charge_logo,mode = "center";
825				connect = <&vp1_out_dp0>;
826			};
827
828			route_dsi0: route-dsi0 {
829				status = "disabled";
830				logo,uboot = "logo.bmp";
831				logo,kernel = "logo_kernel.bmp";
832				logo,mode = "center";
833				charge_logo,mode = "center";
834				connect = <&vp3_out_dsi0>;
835			};
836
837			route_dsi1: route-dsi1 {
838				status = "disabled";
839				logo,uboot = "logo.bmp";
840				logo,kernel = "logo_kernel.bmp";
841				logo,mode = "center";
842				charge_logo,mode = "center";
843				connect = <&vp3_out_dsi1>;
844			};
845
846			route_edp0: route-edp0 {
847				status = "disabled";
848				logo,uboot = "logo.bmp";
849				logo,kernel = "logo_kernel.bmp";
850				logo,mode = "center";
851				charge_logo,mode = "center";
852				connect = <&vp2_out_edp0>;
853			};
854
855			route_edp1: route-edp1 {
856				status = "disabled";
857				logo,uboot = "logo.bmp";
858				logo,kernel = "logo_kernel.bmp";
859				logo,mode = "center";
860				charge_logo,mode = "center";
861			};
862
863			route_hdmi0: route-hdmi0 {
864				status = "disabled";
865				logo,uboot = "logo.bmp";
866				logo,kernel = "logo_kernel.bmp";
867				logo,mode = "center";
868				charge_logo,mode = "center";
869				connect = <&vp0_out_hdmi0>;
870			};
871
872			route_rgb: route-rgb {
873				status = "disabled";
874				logo,uboot = "logo.bmp";
875				logo,kernel = "logo_kernel.bmp";
876				logo,mode = "center";
877				charge_logo,mode = "center";
878				connect = <&vp3_out_rgb>;
879			};
880		};
881	};
882
883	dmc: dmc {
884		compatible = "rockchip,rk3588-dmc";
885		interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
886		interrupt-names = "complete";
887		devfreq-events = <&dfi>;
888		clocks = <&scmi_clk 4>;
889		clock-names = "dmc_clk";
890		operating-points-v2 = <&dmc_opp_table>;
891		upthreshold = <40>;
892		downdifferential = <20>;
893		system-status-level = <
894			/*system status         freq level*/
895			SYS_STATUS_NORMAL       DMC_FREQ_LEVEL_MID_HIGH
896			SYS_STATUS_REBOOT       DMC_FREQ_LEVEL_HIGH
897			SYS_STATUS_SUSPEND      DMC_FREQ_LEVEL_LOW
898			SYS_STATUS_VIDEO_4K     DMC_FREQ_LEVEL_MID_HIGH
899			SYS_STATUS_VIDEO_4K_10B DMC_FREQ_LEVEL_MID_HIGH
900			SYS_STATUS_BOOST        DMC_FREQ_LEVEL_HIGH
901			SYS_STATUS_ISP          DMC_FREQ_LEVEL_HIGH
902			SYS_STATUS_PERFORMANCE  DMC_FREQ_LEVEL_HIGH
903			SYS_STATUS_DUALVIEW     DMC_FREQ_LEVEL_HIGH
904		>;
905		auto-freq-en = <1>;
906		status = "disabled";
907	};
908
909	dmc_opp_table: dmc-opp-table {
910		compatible = "operating-points-v2";
911
912		opp-2750000000 {
913			opp-hz = /bits/ 64 <2750000000>;
914			opp-microvolt = <850000>;
915		};
916	};
917
918	firmware {
919		scmi: scmi {
920			compatible = "arm,scmi-smc";
921			shmem = <&scmi_shmem>;
922			arm,smc-id = <0x82000010>;
923			#address-cells = <1>;
924			#size-cells = <0>;
925
926			scmi_clk: protocol@14 {
927				reg = <0x14>;
928				#clock-cells = <1>;
929
930				assigned-clocks = <&scmi_clk SCMI_CLK_CPUB01>,
931						  <&scmi_clk SCMI_CLK_CPUB23>;
932				assigned-clock-rates = <1200000000>,
933						       <1200000000>;
934			};
935
936			scmi_reset: protocol@16 {
937				reg = <0x16>;
938				#reset-cells = <1>;
939			};
940		};
941
942		sdei: sdei {
943			compatible = "arm,sdei-1.0";
944			method = "smc";
945		};
946	};
947
948	jpege_ccu: jpege-ccu {
949		compatible = "rockchip,vpu-encoder-v2-ccu";
950		status = "disabled";
951	};
952
953	mpp_srv: mpp-srv {
954		compatible = "rockchip,mpp-service";
955		rockchip,taskqueue-count = <12>;
956		status = "disabled";
957	};
958
959	psci {
960		compatible = "arm,psci-1.0";
961		method = "smc";
962	};
963
964	rkcif_dvp: rkcif-dvp {
965		compatible = "rockchip,rkcif-dvp";
966		rockchip,hw = <&rkcif>;
967		iommus = <&rkcif_mmu>;
968		status = "disabled";
969	};
970
971	rkcif_dvp_sditf: rkcif-dvp-sditf {
972		compatible = "rockchip,rkcif-sditf";
973		rockchip,cif = <&rkcif_dvp>;
974		status = "disabled";
975	};
976
977	rkcif_mipi_lvds: rkcif-mipi-lvds {
978		compatible = "rockchip,rkcif-mipi-lvds";
979		rockchip,hw = <&rkcif>;
980		iommus = <&rkcif_mmu>;
981		status = "disabled";
982	};
983
984	rkcif_mipi_lvds_sditf: rkcif-mipi-lvds_sditf {
985		compatible = "rockchip,rkcif-sditf";
986		rockchip,cif = <&rkcif_mipi_lvds>;
987		status = "disabled";
988	};
989
990	rkcif_mipi_lvds1: rkcif-mipi-lvds1 {
991		compatible = "rockchip,rkcif-mipi-lvds";
992		rockchip,hw = <&rkcif>;
993		iommus = <&rkcif_mmu>;
994		status = "disabled";
995	};
996
997	rkcif_mipi_lvds1_sditf: rkcif-mipi-lvds1-sditf {
998		compatible = "rockchip,rkcif-sditf";
999		rockchip,cif = <&rkcif_mipi_lvds1>;
1000		status = "disabled";
1001	};
1002
1003	rkcif_mipi_lvds2: rkcif-mipi-lvds2 {
1004		compatible = "rockchip,rkcif-mipi-lvds";
1005		rockchip,hw = <&rkcif>;
1006		iommus = <&rkcif_mmu>;
1007		status = "disabled";
1008	};
1009
1010	rkcif_mipi_lvds2_sditf: rkcif-mipi-lvds2-sditf {
1011		compatible = "rockchip,rkcif-sditf";
1012		rockchip,cif = <&rkcif_mipi_lvds2>;
1013		status = "disabled";
1014	};
1015
1016	rkcif_mipi_lvds3: rkcif-mipi-lvds3 {
1017		compatible = "rockchip,rkcif-mipi-lvds";
1018		rockchip,hw = <&rkcif>;
1019		iommus = <&rkcif_mmu>;
1020		status = "disabled";
1021	};
1022
1023	rkcif_mipi_lvds3_sditf: rkcif-mipi-lvds3-sditf {
1024		compatible = "rockchip,rkcif-sditf";
1025		rockchip,cif = <&rkcif_mipi_lvds3>;
1026		status = "disabled";
1027	};
1028
1029	rkisp0_vir0: rkisp0-vir0 {
1030		compatible = "rockchip,rkisp-vir";
1031		rockchip,hw = <&rkisp0>;
1032		/*
1033		 * dual isp process image case
1034		 * other rkisp hw and virtual nodes should disabled
1035		 * rockchip,hw = <&rkisp_unite>;
1036		 */
1037		status = "disabled";
1038	};
1039
1040	rkisp0_vir1: rkisp0-vir1 {
1041		compatible = "rockchip,rkisp-vir";
1042		rockchip,hw = <&rkisp0>;
1043		status = "disabled";
1044	};
1045
1046	rkisp0_vir2: rkisp0-vir2 {
1047		compatible = "rockchip,rkisp-vir";
1048		rockchip,hw = <&rkisp0>;
1049		status = "disabled";
1050	};
1051
1052	rkisp0_vir3: rkisp0-vir3 {
1053		compatible = "rockchip,rkisp-vir";
1054		rockchip,hw = <&rkisp0>;
1055		status = "disabled";
1056	};
1057
1058	rkisp1_vir0: rkisp1-vir0 {
1059		compatible = "rockchip,rkisp-vir";
1060		rockchip,hw = <&rkisp1>;
1061		status = "disabled";
1062	};
1063
1064	rkisp1_vir1: rkisp1-vir1 {
1065		compatible = "rockchip,rkisp-vir";
1066		rockchip,hw = <&rkisp1>;
1067		status = "disabled";
1068	};
1069
1070	rkisp1_vir2: rkisp1-vir2 {
1071		compatible = "rockchip,rkisp-vir";
1072		rockchip,hw = <&rkisp1>;
1073		status = "disabled";
1074	};
1075
1076	rkisp1_vir3: rkisp1-vir3 {
1077		compatible = "rockchip,rkisp-vir";
1078		rockchip,hw = <&rkisp1>;
1079		status = "disabled";
1080	};
1081
1082	rkispp0_vir0: rkispp0-vir0 {
1083		compatible = "rockchip,rk3588-rkispp-vir";
1084		rockchip,hw = <&rkispp0>;
1085		status = "disabled";
1086	};
1087
1088	rkispp1_vir0: rkispp1-vir0 {
1089		compatible = "rockchip,rk3588-rkispp-vir";
1090		rockchip,hw = <&rkispp1>;
1091		status = "disabled";
1092	};
1093
1094	rkvenc_ccu: rkvenc-ccu {
1095		compatible = "rockchip,rkv-encoder-v2-ccu";
1096		status = "disabled";
1097	};
1098
1099	rockchip_suspend: rockchip-suspend {
1100		compatible = "rockchip,pm-rk3588";
1101		status = "disabled";
1102		rockchip,sleep-debug-en = <0>;
1103		rockchip,sleep-mode-config = <
1104			(0
1105			| RKPM_SLP_ARMOFF_DDRPD
1106			| RKPM_SLP_PMU_PMUALIVE_32K
1107			| RKPM_SLP_PMU_DIS_OSC
1108			| RKPM_SLP_32K_EXT
1109			| RKPM_SLP_PMU_DBG
1110			)
1111		>;
1112		rockchip,wakeup-config = <
1113			(0
1114			| RKPM_GPIO_WKUP_EN
1115			)
1116		>;
1117	};
1118
1119	rockchip_system_monitor: rockchip-system-monitor {
1120		compatible = "rockchip,system-monitor";
1121
1122		rockchip,thermal-zone = "soc-thermal";
1123	};
1124
1125	thermal_zones: thermal-zones {
1126		soc_thermal: soc-thermal {
1127			polling-delay-passive = <20>; /* milliseconds */
1128			polling-delay = <1000>; /* milliseconds */
1129
1130			thermal-sensors = <&tsadc 0>;
1131			trips {
1132				soc_crit: soc-crit {
1133					/* millicelsius */
1134					temperature = <115000>;
1135					/* millicelsius */
1136					hysteresis = <2000>;
1137					type = "critical";
1138				};
1139			};
1140		};
1141
1142		bigcore0_thermal: bigcore0-thermal {
1143			polling-delay-passive = <20>; /* milliseconds */
1144			polling-delay = <1000>; /* milliseconds */
1145			thermal-sensors = <&tsadc 1>;
1146		};
1147
1148		bigcore1_thermal: bigcore1-thermal {
1149			polling-delay-passive = <20>; /* milliseconds */
1150			polling-delay = <1000>; /* milliseconds */
1151			thermal-sensors = <&tsadc 2>;
1152		};
1153
1154		little_core_thermal: littlecore-thermal {
1155			polling-delay-passive = <20>; /* milliseconds */
1156			polling-delay = <1000>; /* milliseconds */
1157			thermal-sensors = <&tsadc 3>;
1158		};
1159
1160		center_thermal: center-thermal {
1161			polling-delay-passive = <20>; /* milliseconds */
1162			polling-delay = <1000>; /* milliseconds */
1163			thermal-sensors = <&tsadc 4>;
1164		};
1165
1166		gpu_thermal: gpu-thermal {
1167			polling-delay-passive = <20>; /* milliseconds */
1168			polling-delay = <1000>; /* milliseconds */
1169			thermal-sensors = <&tsadc 5>;
1170		};
1171
1172		npu_thermal: npu-thermal {
1173			polling-delay-passive = <20>; /* milliseconds */
1174			polling-delay = <1000>; /* milliseconds */
1175			thermal-sensors = <&tsadc 6>;
1176		};
1177	};
1178
1179	timer {
1180		compatible = "arm,armv8-timer";
1181		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1182			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1183			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1184			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1185	};
1186
1187	sram@10f000 {
1188		compatible = "mmio-sram";
1189		reg = <0x0 0x0010f000 0x0 0x100>;
1190		#address-cells = <1>;
1191		#size-cells = <1>;
1192		ranges = <0 0x0 0x0010f000 0x100>;
1193
1194		scmi_shmem: sram@0 {
1195			compatible = "arm,scmi-shmem";
1196			reg = <0x0 0x100>;
1197		};
1198	};
1199
1200	gpu: gpu@fb000000 {
1201		compatible = "arm,mali-bifrost";
1202		reg = <0x0 0xfb000000 0x0 0x200000>;
1203		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
1204			     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
1205			     <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1206		interrupt-names = "GPU", "MMU", "JOB";
1207
1208		clocks = <&scmi_clk SCMI_CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
1209			 <&cru CLK_GPU_STACKS>, <&cru CLK_GPU>;
1210		clock-names = "clk_mali", "clk_gpu_coregroup",
1211			      "clk_gpu_stacks", "clk_gpu";
1212		power-domains = <&power RK3588_PD_GPU>;
1213		operating-points-v2 = <&gpu_opp_table>;
1214
1215		upthreshold = <30>;
1216		downdifferential = <10>;
1217
1218		status = "disabled";
1219	};
1220
1221	gpu_opp_table: gpu-opp-table {
1222		compatible = "operating-points-v2";
1223
1224		clocks = <&cru CLK_GPU>;
1225		clock-names = "clk";
1226		rockchip,grf = <&gpu_grf>;
1227		volt-mem-read-margin = <
1228			855000	1
1229			765000	2
1230			675000	3
1231			585000	4
1232		>;
1233
1234		opp-198000000 {
1235			opp-hz = /bits/ 64 <198000000>;
1236			opp-microvolt = <675000 675000 850000>,
1237					<675000 675000 850000>;
1238		};
1239		opp-297000000 {
1240			opp-hz = /bits/ 64 <297000000>;
1241			opp-microvolt = <675000 675000 850000>,
1242					<675000 675000 850000>;
1243		};
1244		opp-396000000 {
1245			opp-hz = /bits/ 64 <396000000>;
1246			opp-microvolt = <675000 675000 850000>,
1247					<675000 675000 850000>;
1248		};
1249		opp-500000000 {
1250			opp-hz = /bits/ 64 <500000000>;
1251			opp-microvolt = <675000 675000 850000>,
1252					<675000 675000 850000>;
1253		};
1254		opp-600000000 {
1255			opp-hz = /bits/ 64 <600000000>;
1256			opp-microvolt = <675000 675000 850000>,
1257					<675000 675000 850000>;
1258		};
1259		opp-700000000 {
1260			opp-hz = /bits/ 64 <700000000>;
1261			opp-microvolt = <700000 700000 850000>,
1262					<700000 700000 850000>;
1263		};
1264		opp-800000000 {
1265			opp-hz = /bits/ 64 <800000000>;
1266			opp-microvolt = <750000 750000 850000>,
1267					<750000 750000 850000>;
1268		};
1269		opp-900000000 {
1270			opp-hz = /bits/ 64 <900000000>;
1271			opp-microvolt = <800000 800000 850000>,
1272					<800000 800000 850000>;
1273		};
1274		opp-1000000000 {
1275			opp-hz = /bits/ 64 <1000000000>;
1276			opp-microvolt = <850000 850000 850000>,
1277					<850000 850000 850000>;
1278		};
1279	};
1280
1281	usbdrd3_0: usbdrd3_0 {
1282		compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3";
1283		clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>,
1284			 <&cru ACLK_USB3OTG0>;
1285		clock-names = "ref", "suspend", "bus";
1286		#address-cells = <2>;
1287		#size-cells = <2>;
1288		ranges;
1289		status = "disabled";
1290
1291		usbdrd_dwc3_0: usb@fc000000 {
1292			compatible = "snps,dwc3";
1293			reg = <0x0 0xfc000000 0x0 0x400000>;
1294			interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
1295			power-domains = <&power RK3588_PD_USB>;
1296			resets = <&cru SRST_A_USB3OTG0>;
1297			reset-names = "usb3-otg";
1298			dr_mode = "otg";
1299			phys = <&u2phy0_otg>, <&usbdp_phy0_u3>;
1300			phy-names = "usb2-phy", "usb3-phy";
1301			phy_type = "utmi_wide";
1302			snps,dis_enblslpm_quirk;
1303			snps,dis-u1-entry-quirk;
1304			snps,dis-u2-entry-quirk;
1305			snps,dis-u2-freeclk-exists-quirk;
1306			snps,dis-del-phy-power-chg-quirk;
1307			snps,dis-tx-ipgap-linecheck-quirk;
1308			quirk-skip-phy-init;
1309			status = "disabled";
1310		};
1311	};
1312
1313	usb_host0_ehci: usb@fc800000 {
1314		compatible = "generic-ehci";
1315		reg = <0x0 0xfc800000 0x0 0x40000>;
1316		interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
1317		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&u2phy2>;
1318		clock-names = "usbhost", "arbiter", "utmi";
1319		phys = <&u2phy2_host>;
1320		phy-names = "usb2-phy";
1321		power-domains = <&power RK3588_PD_USB>;
1322		status = "disabled";
1323	};
1324
1325	usb_host0_ohci: usb@fc840000 {
1326		compatible = "generic-ohci";
1327		reg = <0x0 0xfc840000 0x0 0x40000>;
1328		interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
1329		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&u2phy2>;
1330		clock-names = "usbhost", "arbiter", "utmi";
1331		phys = <&u2phy2_host>;
1332		phy-names = "usb2-phy";
1333		power-domains = <&power RK3588_PD_USB>;
1334		status = "disabled";
1335	};
1336
1337	usb_host1_ehci: usb@fc880000 {
1338		compatible = "generic-ehci";
1339		reg = <0x0 0xfc880000 0x0 0x40000>;
1340		interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
1341		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&u2phy3>;
1342		clock-names = "usbhost", "arbiter", "utmi";
1343		phys = <&u2phy3_host>;
1344		phy-names = "usb2-phy";
1345		power-domains = <&power RK3588_PD_USB>;
1346		status = "disabled";
1347	};
1348
1349	usb_host1_ohci: usb@fc8c0000 {
1350		compatible = "generic-ohci";
1351		reg = <0x0 0xfc8c0000 0x0 0x40000>;
1352		interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>;
1353		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&u2phy3>;
1354		clock-names = "usbhost", "arbiter", "utmi";
1355		phys = <&u2phy3_host>;
1356		phy-names = "usb2-phy";
1357		power-domains = <&power RK3588_PD_USB>;
1358		status = "disabled";
1359	};
1360
1361	mmu600_pcie: iommu@fc900000 {
1362		compatible = "arm,smmu-v3";
1363		reg = <0x0 0xfc900000 0x0 0x200000>;
1364		interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>,
1365			     <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>,
1366			     <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
1367			     <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>;
1368		interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
1369		#iommu-cells = <1>;
1370		status = "disabled";
1371	};
1372
1373	mmu600_php: iommu@fcb00000 {
1374		compatible = "arm,smmu-v3";
1375		reg = <0x0 0xfcb00000 0x0 0x200000>;
1376		interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>,
1377			     <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
1378			     <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>,
1379			     <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
1380		interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
1381		#iommu-cells = <1>;
1382		status = "disabled";
1383	};
1384
1385	usbhost3_0: usbhost3_0 {
1386		compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3";
1387		clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>,
1388			 <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>,
1389			 <&cru PCLK_PHP_ROOT>, <&cru CLK_PIPEPHY2_PIPE_U3_G>;
1390		clock-names = "ref", "suspend", "bus", "utmi", "php", "pipe";
1391		#address-cells = <2>;
1392		#size-cells = <2>;
1393		ranges;
1394		status = "disabled";
1395
1396		usbhost_dwc3_0: usb@fcd00000 {
1397			compatible = "snps,dwc3";
1398			reg = <0x0 0xfcd00000 0x0 0x400000>;
1399			interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
1400			resets = <&cru SRST_A_USB3OTG2>;
1401			reset-names = "usb3-host";
1402			dr_mode = "host";
1403			phys = <&combphy2_psu PHY_TYPE_USB3>;
1404			phy-names = "usb3-phy";
1405			phy_type = "utmi_wide";
1406			snps,dis_enblslpm_quirk;
1407			snps,dis-u2-freeclk-exists-quirk;
1408			snps,dis-del-phy-power-chg-quirk;
1409			snps,dis-tx-ipgap-linecheck-quirk;
1410			snps,dis_rxdet_inp3_quirk;
1411			status = "disabled";
1412		};
1413	};
1414
1415	pmu0_grf: syscon@fd588000 {
1416		compatible = "rockchip,rk3588-pmu0-grf", "syscon", "simple-mfd";
1417		reg = <0x0 0xfd588000 0x0 0x2000>;
1418
1419		reboot_mode: reboot-mode {
1420			compatible = "syscon-reboot-mode";
1421			offset = <0x80>;
1422			mode-bootloader = <BOOT_BL_DOWNLOAD>;
1423			mode-charge = <BOOT_CHARGING>;
1424			mode-fastboot = <BOOT_FASTBOOT>;
1425			mode-loader = <BOOT_BL_DOWNLOAD>;
1426			mode-normal = <BOOT_NORMAL>;
1427			mode-recovery = <BOOT_RECOVERY>;
1428			mode-ums = <BOOT_UMS>;
1429			mode-panic = <BOOT_PANIC>;
1430			mode-watchdog = <BOOT_WATCHDOG>;
1431		};
1432	};
1433
1434	pmu1_grf: syscon@fd58a000 {
1435		compatible = "rockchip,rk3588-pmu1-grf", "syscon";
1436		reg = <0x0 0xfd58a000 0x0 0x2000>;
1437	};
1438
1439	sys_grf: syscon@fd58c000 {
1440		compatible = "rockchip,rk3588-sys-grf", "syscon", "simple-mfd";
1441		reg = <0x0 0xfd58c000 0x0 0x1000>;
1442
1443		rgb: rgb {
1444			compatible = "rockchip,rk3588-rgb";
1445			pinctrl-names = "default";
1446			pinctrl-0 = <&bt1120_pins>;
1447			status = "disabled";
1448
1449			ports {
1450				#address-cells = <1>;
1451				#size-cells = <0>;
1452
1453				port@0 {
1454					reg = <0>;
1455					#address-cells = <1>;
1456					#size-cells = <0>;
1457
1458					rgb_in_vp3: endpoint@2 {
1459						reg = <2>;
1460						remote-endpoint = <&vp3_out_rgb>;
1461						status = "disabled";
1462					};
1463				};
1464			};
1465		};
1466	};
1467
1468	bigcore0_grf: syscon@fd590000 {
1469		compatible = "rockchip,rk3588-bigcore0-grf", "syscon";
1470		reg = <0x0 0xfd590000 0x0 0x100>;
1471	};
1472
1473	bigcore1_grf: syscon@fd592000 {
1474		compatible = "rockchip,rk3588-bigcore1-grf", "syscon";
1475		reg = <0x0 0xfd592000 0x0 0x100>;
1476	};
1477
1478	gpu_grf: syscon@fd5a0000 {
1479		compatible = "rockchip,rk3588-gpu-grf", "syscon";
1480		reg = <0x0 0xfd5a0000 0x0 0x100>;
1481	};
1482
1483	npu_grf: syscon@fd5a2000 {
1484		compatible = "rockchip,rk3588-npu-grf", "syscon";
1485		reg = <0x0 0xfd5a2000 0x0 0x100>;
1486	};
1487
1488	vop_grf: syscon@fd5a4000 {
1489		compatible = "rockchip,rk3588-vop-grf", "syscon";
1490		reg = <0x0 0xfd5a4000 0x0 0x2000>;
1491	};
1492
1493	vo0_grf: syscon@fd5a6000 {
1494		compatible = "rockchip,rk3588-vo-grf", "syscon";
1495		reg = <0x0 0xfd5a6000 0x0 0x2000>;
1496	};
1497
1498	vo1_grf: syscon@fd5a8000 {
1499		compatible = "rockchip,rk3588-vo-grf", "syscon";
1500		reg = <0x0 0xfd5a8000 0x0 0x100>;
1501	};
1502
1503	usb_grf: syscon@fd5ac000 {
1504		compatible = "rockchip,rk3588-usb-grf", "syscon";
1505		reg = <0x0 0xfd5ac000 0x0 0x4000>;
1506	};
1507
1508	php_grf: syscon@fd5b0000 {
1509		compatible = "rockchip,rk3588-php-grf", "syscon";
1510		reg = <0x0 0xfd5b0000 0x0 0x1000>;
1511	};
1512
1513	mipidphy0_grf: syscon@fd5b4000 {
1514		compatible = "rockchip,mipi-dphy-grf", "syscon";
1515		reg = <0x0 0xfd5b4000 0x0 0x1000>;
1516	};
1517
1518	mipidphy1_grf: syscon@fd5b5000 {
1519		compatible = "rockchip,mipi-dphy-grf", "syscon";
1520		reg = <0x0 0xfd5b5000 0x0 0x1000>;
1521	};
1522
1523	pipe_phy0_grf: syscon@fd5bc000 {
1524		compatible = "rockchip,pipe-phy-grf", "syscon";
1525		reg = <0x0 0xfd5bc000 0x0 0x100>;
1526	};
1527
1528	pipe_phy2_grf: syscon@fd5c4000 {
1529		compatible = "rockchip,pipe-phy-grf", "syscon";
1530		reg = <0x0 0xfd5c4000 0x0 0x100>;
1531	};
1532
1533	usbdpphy0_grf: syscon@fd5c8000 {
1534		compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
1535		reg = <0x0 0xfd5c8000 0x0 0x4000>;
1536	};
1537
1538	usb2phy0_grf: syscon@fd5d0000 {
1539		compatible = "rockchip,rk3588-usb2phy-grf", "syscon",
1540			     "simple-mfd";
1541		reg = <0x0 0xfd5d0000 0x0 0x4000>;
1542		#address-cells = <1>;
1543		#size-cells = <1>;
1544
1545		u2phy0: usb2-phy@0 {
1546			compatible = "rockchip,rk3588-usb2phy";
1547			reg = <0x0 0x10>;
1548			interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
1549			resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>;
1550			reset-names = "phy", "apb";
1551			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
1552			clock-names = "phyclk";
1553			clock-output-names = "usb480m_phy0";
1554			#clock-cells = <0>;
1555			rockchip,usbctrl-grf = <&usb_grf>;
1556			status = "disabled";
1557
1558			u2phy0_otg: otg-port {
1559				#phy-cells = <0>;
1560				status = "disabled";
1561			};
1562		};
1563	};
1564
1565	usb2phy2_grf: syscon@fd5d8000 {
1566		compatible = "rockchip,rk3588-usb2phy-grf", "syscon",
1567			     "simple-mfd";
1568		reg = <0x0 0xfd5d8000 0x0 0x4000>;
1569		#address-cells = <1>;
1570		#size-cells = <1>;
1571
1572		u2phy2: usb2-phy@8000 {
1573			compatible = "rockchip,rk3588-usb2phy";
1574			reg = <0x8000 0x10>;
1575			interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>;
1576			resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
1577			reset-names = "phy", "apb";
1578			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
1579			clock-names = "phyclk";
1580			clock-output-names = "usb480m_phy2";
1581			#clock-cells = <0>;
1582			status = "disabled";
1583
1584			u2phy2_host: host-port {
1585				#phy-cells = <0>;
1586				status = "disabled";
1587			};
1588		};
1589	};
1590
1591	usb2phy3_grf: syscon@fd5dc000 {
1592		compatible = "rockchip,rk3588-usb2phy-grf", "syscon",
1593			     "simple-mfd";
1594		reg = <0x0 0xfd5dc000 0x0 0x4000>;
1595		#address-cells = <1>;
1596		#size-cells = <1>;
1597
1598		u2phy3: usb2-phy@c000 {
1599			compatible = "rockchip,rk3588-usb2phy";
1600			reg = <0xc000 0x10>;
1601			interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
1602			resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
1603			reset-names = "phy", "apb";
1604			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
1605			clock-names = "phyclk";
1606			clock-output-names = "usb480m_phy3";
1607			#clock-cells = <0>;
1608			status = "disabled";
1609
1610			u2phy3_host: host-port {
1611				#phy-cells = <0>;
1612				status = "disabled";
1613			};
1614		};
1615	};
1616
1617	hdptxphy0_grf: syscon@fd5e0000 {
1618		compatible = "rockchip,rk3588-hdptxphy-grf", "syscon";
1619		reg = <0x0 0xfd5e0000 0x0 0x100>;
1620	};
1621
1622	mipidcphy0_grf: syscon@fd5e8000 {
1623		compatible = "rockchip,mipi-dcphy-grf", "syscon";
1624		reg = <0x0 0xfd5e8000 0x0 0x4000>;
1625	};
1626
1627	mipidcphy1_grf: syscon@fd5ec000 {
1628		compatible = "rockchip,mipi-dcphy-grf", "syscon";
1629		reg = <0x0 0xfd5ec000 0x0 0x4000>;
1630	};
1631
1632	ioc: syscon@fd5f0000 {
1633		compatible = "rockchip,rk3588-ioc", "syscon";
1634		reg = <0x0 0xfd5f0000 0x0 0x10000>;
1635	};
1636
1637	syssram: sram@fd600000 {
1638		compatible = "mmio-sram";
1639		reg = <0x0 0xfd600000 0x0 0x100000>;
1640
1641		#address-cells = <1>;
1642		#size-cells = <1>;
1643		ranges = <0x0 0x0 0xfd600000 0x100000>;
1644		/* start address and size should be 4k algin */
1645		rkvdec0_sram: rkvdec-sram@0 {
1646			reg = <0 0x80000>;
1647		};
1648		rkvdec1_sram: rkvdec-sram@80000 {
1649			reg = <0x80000 0x80000>;
1650		};
1651	};
1652
1653	cru: clock-controller@fd7c0000 {
1654		compatible = "rockchip,rk3588-cru";
1655		rockchip,grf = <&php_grf>;
1656		reg = <0x0 0xfd7c0000 0x0 0x5c000>;
1657		#clock-cells = <1>;
1658		#reset-cells = <1>;
1659
1660		assigned-clocks =
1661			<&cru PLL_PPLL>, <&cru PLL_AUPLL>,
1662			<&cru PLL_NPLL>, <&cru PLL_GPLL>,
1663			<&cru ARMCLK_L>,
1664			<&cru ACLK_CENTER_ROOT>, <&cru PCLK_CENTER_ROOT>,
1665			<&cru HCLK_CENTER_ROOT>, <&cru ACLK_CENTER_LOW_ROOT>,
1666			<&cru ACLK_TOP_ROOT>, <&cru PCLK_TOP_ROOT>,
1667			<&cru ACLK_LOW_TOP_ROOT>, <&cru PCLK_PMU0_ROOT>,
1668			<&cru HCLK_PMU_CM0_ROOT>, <&cru ACLK_VOP>,
1669			<&cru ACLK_BUS_ROOT>, <&cru CLK_150M_SRC>,
1670			<&cru CLK_GPU>;
1671		assigned-clock-rates =
1672			<100000000>, <786432000>,
1673			<850000000>, <1188000000>,
1674			<816000000>,
1675			<702000000>, <200000000>,
1676			<400000000>, <500000000>,
1677			<800000000>, <100000000>,
1678			<400000000>, <100000000>,
1679			<200000000>, <500000000>,
1680			<375000000>, <150000000>,
1681			<200000000>;
1682	};
1683
1684	i2c0: i2c@fd880000 {
1685		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
1686		reg = <0x0 0xfd880000 0x0 0x1000>;
1687		clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
1688		clock-names = "i2c", "pclk";
1689		interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
1690		pinctrl-names = "default";
1691		pinctrl-0 = <&i2c0m0_xfer>;
1692		#address-cells = <1>;
1693		#size-cells = <0>;
1694		status = "disabled";
1695	};
1696
1697	uart0: serial@fd890000 {
1698		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
1699		reg = <0x0 0xfd890000 0x0 0x100>;
1700		interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1701		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
1702		clock-names = "baudclk", "apb_pclk";
1703		reg-shift = <2>;
1704		reg-io-width = <4>;
1705		dmas = <&dmac0 6>, <&dmac0 7>;
1706		pinctrl-names = "default";
1707		pinctrl-0 = <&uart0m1_xfer>;
1708		status = "disabled";
1709	};
1710
1711	pwm0: pwm@fd8b0000 {
1712		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1713		reg = <0x0 0xfd8b0000 0x0 0x10>;
1714		#pwm-cells = <3>;
1715		pinctrl-names = "active";
1716		pinctrl-0 = <&pwm0m0_pins>;
1717		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
1718		clock-names = "pwm", "pclk";
1719		status = "disabled";
1720	};
1721
1722	pwm1: pwm@fd8b0010 {
1723		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1724		reg = <0x0 0xfd8b0010 0x0 0x10>;
1725		#pwm-cells = <3>;
1726		pinctrl-names = "active";
1727		pinctrl-0 = <&pwm1m0_pins>;
1728		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
1729		clock-names = "pwm", "pclk";
1730		status = "disabled";
1731	};
1732
1733	pwm2: pwm@fd8b0020 {
1734		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1735		reg = <0x0 0xfd8b0020 0x0 0x10>;
1736		#pwm-cells = <3>;
1737		pinctrl-names = "active";
1738		pinctrl-0 = <&pwm2m0_pins>;
1739		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
1740		clock-names = "pwm", "pclk";
1741		status = "disabled";
1742	};
1743
1744	pwm3: pwm@fd8b0030 {
1745		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
1746		reg = <0x0 0xfd8b0030 0x0 0x10>;
1747		interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
1748			     <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
1749		#pwm-cells = <3>;
1750		pinctrl-names = "active";
1751		pinctrl-0 = <&pwm3m0_pins>;
1752		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
1753		clock-names = "pwm", "pclk";
1754		status = "disabled";
1755	};
1756
1757	pmu: power-management@fd8d8000 {
1758		compatible = "rockchip,rk3588-pmu", "syscon", "simple-mfd";
1759		reg = <0x0 0xfd8d8000 0x0 0x400>;
1760
1761		power: power-controller {
1762			compatible = "rockchip,rk3588-power-controller";
1763			#power-domain-cells = <1>;
1764			#address-cells = <1>;
1765			#size-cells = <0>;
1766			status = "okay";
1767
1768			/* These power domains are grouped by VD_NPU */
1769			power-domain@RK3588_PD_NPU {
1770				reg = <RK3588_PD_NPU>;
1771				#address-cells = <1>;
1772				#size-cells = <0>;
1773
1774				power-domain@RK3588_PD_NPUTOP {
1775					reg = <RK3588_PD_NPUTOP>;
1776					#address-cells = <1>;
1777					#size-cells = <0>;
1778					clocks = <&cru HCLK_NPU_ROOT>,
1779						 <&cru PCLK_NPU_ROOT>,
1780						 <&cru CLK_NPU_DSU0>,
1781						 <&cru HCLK_NPU_CM0_ROOT>;
1782					pm_qos = <&qos_npu0_mwr>,
1783						 <&qos_npu0_mro>,
1784						 <&qos_mcu_npu>;
1785
1786					power-domain@RK3588_PD_NPU1 {
1787						reg = <RK3588_PD_NPU1>;
1788						clocks = <&cru HCLK_NPU_ROOT>,
1789							 <&cru PCLK_NPU_ROOT>,
1790							 <&cru CLK_NPU_DSU0>;
1791						pm_qos = <&qos_npu1>;
1792					};
1793					power-domain@RK3588_PD_NPU2 {
1794						reg = <RK3588_PD_NPU2>;
1795						clocks = <&cru HCLK_NPU_ROOT>,
1796							 <&cru PCLK_NPU_ROOT>,
1797							 <&cru CLK_NPU_DSU0>;
1798						pm_qos = <&qos_npu2>;
1799					};
1800				};
1801			};
1802			/* These power domains are grouped by VD_GPU */
1803			power-domain@RK3588_PD_GPU {
1804				reg = <RK3588_PD_GPU>;
1805				clocks = <&cru CLK_GPU>,
1806					 <&cru CLK_GPU_COREGROUP>,
1807					 <&cru CLK_GPU_STACKS>;
1808				pm_qos = <&qos_gpu_m0>,
1809					 <&qos_gpu_m1>,
1810					 <&qos_gpu_m2>,
1811					 <&qos_gpu_m3>;
1812			};
1813			/* These power domains are grouped by VD_VCODEC */
1814			power-domain@RK3588_PD_VCODEC {
1815				reg = <RK3588_PD_VCODEC>;
1816				#address-cells = <1>;
1817				#size-cells = <0>;
1818
1819				power-domain@RK3588_PD_RKVDEC0 {
1820					reg = <RK3588_PD_RKVDEC0>;
1821					clocks = <&cru HCLK_RKVDEC0>,
1822						 <&cru HCLK_VDPU_ROOT>,
1823						 <&cru ACLK_VDPU_ROOT>,
1824						 <&cru ACLK_RKVDEC0>,
1825						 <&cru ACLK_RKVDEC_CCU>;
1826					pm_qos = <&qos_rkvdec0>;
1827				};
1828				power-domain@RK3588_PD_RKVDEC1 {
1829					reg = <RK3588_PD_RKVDEC1>;
1830					clocks = <&cru HCLK_RKVDEC1>,
1831						 <&cru HCLK_VDPU_ROOT>,
1832						 <&cru ACLK_VDPU_ROOT>,
1833						 <&cru ACLK_RKVDEC1>;
1834					pm_qos = <&qos_rkvdec1>;
1835				};
1836				power-domain@RK3588_PD_VENC0 {
1837					reg = <RK3588_PD_VENC0>;
1838					#address-cells = <1>;
1839					#size-cells = <0>;
1840					clocks = <&cru HCLK_RKVENC0>,
1841						 <&cru ACLK_RKVENC0>;
1842					pm_qos = <&qos_rkvenc0_m0ro>,
1843						 <&qos_rkvenc0_m1ro>,
1844						 <&qos_rkvenc0_m2wo>;
1845
1846					power-domain@RK3588_PD_VENC1 {
1847						reg = <RK3588_PD_VENC1>;
1848						clocks = <&cru HCLK_RKVENC1>,
1849							 <&cru HCLK_RKVENC0>,
1850							 <&cru ACLK_RKVENC0>,
1851							 <&cru ACLK_RKVENC1>;
1852						pm_qos = <&qos_rkvenc1_m0ro>,
1853							 <&qos_rkvenc1_m1ro>,
1854							 <&qos_rkvenc1_m2wo>;
1855					};
1856				};
1857			};
1858			/* These power domains are grouped by VD_LOGIC */
1859			power-domain@RK3588_PD_VDPU {
1860				reg = <RK3588_PD_VDPU>;
1861				#address-cells = <1>;
1862				#size-cells = <0>;
1863				clocks = <&cru HCLK_VDPU_ROOT>,
1864					 <&cru ACLK_VDPU_LOW_ROOT>,
1865					 <&cru ACLK_VDPU_ROOT>,
1866					 <&cru ACLK_JPEG_DECODER_ROOT>,
1867					 <&cru ACLK_IEP2P0>,
1868					 <&cru HCLK_IEP2P0>,
1869					 <&cru ACLK_JPEG_ENCODER0>,
1870					 <&cru HCLK_JPEG_ENCODER0>,
1871					 <&cru ACLK_JPEG_ENCODER1>,
1872					 <&cru HCLK_JPEG_ENCODER1>,
1873					 <&cru ACLK_JPEG_ENCODER2>,
1874					 <&cru HCLK_JPEG_ENCODER2>,
1875					 <&cru ACLK_JPEG_ENCODER3>,
1876					 <&cru HCLK_JPEG_ENCODER3>,
1877					 <&cru ACLK_JPEG_DECODER>,
1878					 <&cru HCLK_JPEG_DECODER>,
1879					 <&cru ACLK_RGA2>,
1880					 <&cru HCLK_RGA2>;
1881				pm_qos = <&qos_iep>,
1882					 <&qos_jpeg_dec>,
1883					 <&qos_jpeg_enc0>,
1884					 <&qos_jpeg_enc1>,
1885					 <&qos_jpeg_enc2>,
1886					 <&qos_jpeg_enc3>,
1887					 <&qos_rga2_mro>,
1888					 <&qos_rga2_mwo>;
1889
1890				power-domain@RK3588_PD_AV1 {
1891					reg = <RK3588_PD_AV1>;
1892					clocks = <&cru PCLK_AV1>,
1893						 <&cru ACLK_AV1>,
1894						 <&cru HCLK_VDPU_ROOT>;
1895					pm_qos = <&qos_av1>;
1896				};
1897				power-domain@RK3588_PD_RKVDEC0 {
1898					reg = <RK3588_PD_RKVDEC0>;
1899					clocks = <&cru HCLK_RKVDEC0>,
1900						 <&cru HCLK_VDPU_ROOT>,
1901						 <&cru ACLK_VDPU_ROOT>,
1902						 <&cru ACLK_RKVDEC0>;
1903					pm_qos = <&qos_rkvdec0>;
1904				};
1905				power-domain@RK3588_PD_RKVDEC1 {
1906					reg = <RK3588_PD_RKVDEC1>;
1907					clocks = <&cru HCLK_RKVDEC1>,
1908						 <&cru HCLK_VDPU_ROOT>,
1909						 <&cru ACLK_VDPU_ROOT>;
1910					pm_qos = <&qos_rkvdec1>;
1911				};
1912				power-domain@RK3588_PD_RGA30 {
1913					reg = <RK3588_PD_RGA30>;
1914					clocks = <&cru ACLK_RGA3_0>,
1915						 <&cru HCLK_RGA3_0>;
1916					pm_qos = <&qos_rga3_0>;
1917				};
1918			};
1919			power-domain@RK3588_PD_VOP {
1920				reg = <RK3588_PD_VOP>;
1921				#address-cells = <1>;
1922				#size-cells = <0>;
1923				clocks = <&cru PCLK_VOP_ROOT>,
1924					 <&cru HCLK_VOP_ROOT>,
1925					 <&cru ACLK_VOP>;
1926				pm_qos = <&qos_vop_m0>,
1927					 <&qos_vop_m1>;
1928
1929				power-domain@RK3588_PD_VO0 {
1930					reg = <RK3588_PD_VO0>;
1931					clocks = <&cru PCLK_VO0_ROOT>,
1932						 <&cru PCLK_VO0_S_ROOT>,
1933						 <&cru HCLK_VO0_S_ROOT>,
1934						 <&cru ACLK_VO0_ROOT>,
1935						 <&cru HCLK_HDCP0>,
1936						 <&cru ACLK_HDCP0>,
1937						 <&cru HCLK_VOP_ROOT>;
1938					pm_qos = <&qos_hdcp0>;
1939				};
1940			};
1941			power-domain@RK3588_PD_VO1 {
1942				reg = <RK3588_PD_VO1>;
1943				clocks = <&cru PCLK_VO1_ROOT>,
1944					 <&cru PCLK_VO1_S_ROOT>,
1945					 <&cru HCLK_VO1_S_ROOT>,
1946					 <&cru HCLK_HDCP1>,
1947					 <&cru ACLK_HDCP1>,
1948					 <&cru ACLK_HDMIRX_ROOT>,
1949					 <&cru HCLK_VO1USB_TOP_ROOT>;
1950				pm_qos = <&qos_hdcp1>,
1951					 <&qos_hdmirx>;
1952			};
1953			power-domain@RK3588_PD_VI {
1954				reg = <RK3588_PD_VI>;
1955				#address-cells = <1>;
1956				#size-cells = <0>;
1957				clocks = <&cru HCLK_VI_ROOT>,
1958					 <&cru PCLK_VI_ROOT>,
1959					 <&cru HCLK_ISP0>,
1960					 <&cru ACLK_ISP0>,
1961					 <&cru HCLK_VICAP>,
1962					 <&cru ACLK_VICAP>;
1963				pm_qos = <&qos_isp0_mro>,
1964					 <&qos_isp0_mwo>,
1965					 <&qos_vicap_m0>,
1966					 <&qos_vicap_m1>;
1967
1968				power-domain@RK3588_PD_ISP1 {
1969					reg = <RK3588_PD_ISP1>;
1970					clocks = <&cru HCLK_ISP1>,
1971						 <&cru ACLK_ISP1>,
1972						 <&cru HCLK_VI_ROOT>,
1973						 <&cru PCLK_VI_ROOT>;
1974					pm_qos = <&qos_isp1_mwo>,
1975						 <&qos_isp1_mro>;
1976				};
1977				power-domain@RK3588_PD_FEC {
1978					reg = <RK3588_PD_FEC>;
1979					clocks = <&cru HCLK_FISHEYE0>,
1980						 <&cru ACLK_FISHEYE0>,
1981						 <&cru HCLK_FISHEYE1>,
1982						 <&cru ACLK_FISHEYE1>,
1983						 <&cru PCLK_VI_ROOT>;
1984					pm_qos = <&qos_fisheye0>,
1985						 <&qos_fisheye1>;
1986				};
1987			};
1988			power-domain@RK3588_PD_RGA31 {
1989				reg = <RK3588_PD_RGA31>;
1990				clocks = <&cru HCLK_RGA3_1>,
1991					 <&cru ACLK_RGA3_1>;
1992				pm_qos = <&qos_rga3_1>;
1993			};
1994			power-domain@RK3588_PD_USB {
1995				reg = <RK3588_PD_USB>;
1996				clocks = <&cru PCLK_PHP_ROOT>,
1997					 <&cru ACLK_USB_ROOT>,
1998					 <&cru HCLK_USB_ROOT>,
1999					 <&cru HCLK_HOST0>,
2000					 <&cru HCLK_HOST_ARB0>,
2001					 <&cru HCLK_HOST1>,
2002					 <&cru HCLK_HOST_ARB1>;
2003				pm_qos = <&qos_usb3_0>,
2004					 <&qos_usb3_1>,
2005					 <&qos_usb2host_0>,
2006					 <&qos_usb2host_1>;
2007			};
2008			power-domain@RK3588_PD_GMAC {
2009				reg = <RK3588_PD_GMAC>;
2010				clocks = <&cru PCLK_PHP_ROOT>,
2011					 <&cru ACLK_PCIE_ROOT>,
2012					 <&cru ACLK_PHP_ROOT>;
2013			};
2014			power-domain@RK3588_PD_PCIE {
2015				reg = <RK3588_PD_PCIE>;
2016				clocks = <&cru PCLK_PHP_ROOT>,
2017					 <&cru ACLK_PCIE_ROOT>,
2018					 <&cru ACLK_PHP_ROOT>;
2019			};
2020			power-domain@RK3588_PD_SDIO {
2021				reg = <RK3588_PD_SDIO>;
2022				clocks = <&cru HCLK_SDIO>,
2023					 <&cru HCLK_NVM_ROOT>;
2024				pm_qos = <&qos_sdio>;
2025			};
2026			power-domain@RK3588_PD_AUDIO {
2027				reg = <RK3588_PD_AUDIO>;
2028				clocks = <&cru HCLK_AUDIO_ROOT>,
2029					 <&cru PCLK_AUDIO_ROOT>;
2030			};
2031			power-domain@RK3588_PD_SDMMC {
2032				reg = <RK3588_PD_SDMMC>;
2033				pm_qos = <&qos_sdmmc>;
2034			};
2035		};
2036	};
2037
2038	pvtm@fda40000 {
2039		compatible = "rockchip,rk3588-bigcore0-pvtm";
2040		reg = <0x0 0xfda40000 0x0 0x100>;
2041		#address-cells = <1>;
2042		#size-cells = <0>;
2043		pvtm@0 {
2044			reg = <0>;
2045			clocks = <&cru CLK_BIGCORE0_PVTM>, <&cru PCLK_BIGCORE0_PVTM>;
2046			clock-names = "clk", "pclk";
2047		};
2048	};
2049
2050	pvtm@fda50000 {
2051		compatible = "rockchip,rk3588-bigcore1-pvtm";
2052		reg = <0x0 0xfda50000 0x0 0x100>;
2053		#address-cells = <1>;
2054		#size-cells = <0>;
2055		pvtm@1 {
2056			reg = <1>;
2057			clocks = <&cru CLK_BIGCORE1_PVTM>, <&cru PCLK_BIGCORE1_PVTM>;
2058			clock-names = "clk", "pclk";
2059		};
2060	};
2061
2062	pvtm@fda60000 {
2063		compatible = "rockchip,rk3588-litcore-pvtm";
2064		reg = <0x0 0xfda60000 0x0 0x100>;
2065		#address-cells = <1>;
2066		#size-cells = <0>;
2067		pvtm@2 {
2068			reg = <2>;
2069			clocks = <&cru CLK_LITCORE_PVTM>, <&cru PCLK_LITCORE_PVTM>;
2070			clock-names = "clk", "pclk";
2071		};
2072	};
2073
2074	pvtm@fdaf0000 {
2075		compatible = "rockchip,rk3588-npu-pvtm";
2076		reg = <0x0 0xfdaf0000 0x0 0x100>;
2077		#address-cells = <1>;
2078		#size-cells = <0>;
2079		pvtm@3 {
2080			reg = <3>;
2081			clocks = <&cru CLK_NPU_PVTM>, <&cru PCLK_NPU_PVTM>;
2082			clock-names = "clk", "pclk";
2083			resets = <&cru SRST_NPU_PVTM>, <&cru SRST_P_NPU_PVTM>;
2084			reset-names = "rts", "rst-p";
2085		};
2086	};
2087
2088	pvtm@fdb30000 {
2089		compatible = "rockchip,rk3588-gpu-pvtm";
2090		reg = <0x0 0xfdb30000 0x0 0x100>;
2091		#address-cells = <1>;
2092		#size-cells = <0>;
2093		pvtm@4 {
2094			reg = <4>;
2095			clocks = <&cru CLK_GPU_PVTM>;
2096			clock-names = "clk";
2097			resets = <&cru SRST_GPU_PVTM>, <&cru SRST_P_GPU_PVTM>;
2098			reset-names = "rts", "rst-p";
2099		};
2100	};
2101
2102	rknpu: npu@fdab0000 {
2103		compatible = "rockchip,rk3588-rknpu";
2104		reg = <0x0 0xfdab0000 0x0 0x10000>,
2105		      <0x0 0xfdac0000 0x0 0x10000>,
2106		      <0x0 0xfdad0000 0x0 0x10000>;
2107		interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
2108			     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
2109			     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
2110		interrupt-names = "npu0_irq", "npu1_irq", "npu2_irq";
2111		clocks = <&scmi_clk SCMI_CLK_NPU>, <&cru ACLK_NPU0>,
2112			 <&cru ACLK_NPU1>, <&cru ACLK_NPU2>,
2113			 <&cru HCLK_NPU0>, <&cru HCLK_NPU1>,
2114			 <&cru HCLK_NPU2>, <&cru PCLK_NPU_ROOT>;
2115		clock-names = "clk_npu", "aclk0",
2116			      "aclk1", "aclk2",
2117			      "hclk0", "hclk1",
2118			      "hclk2", "pclk";
2119		assigned-clocks = <&cru CLK_NPU_DSU0>;
2120		assigned-clock-rates = <200000000>;
2121		resets = <&cru SRST_A_RKNN0>, <&cru SRST_A_RKNN1>, <&cru SRST_A_RKNN2>,
2122			 <&cru SRST_H_RKNN0>, <&cru SRST_H_RKNN1>, <&cru SRST_H_RKNN2>;
2123		reset-names = "srst_a0", "srst_a1", "srst_a2",
2124			      "srst_h0", "srst_h1", "srst_h2";
2125		power-domains = <&power RK3588_PD_NPUTOP>,
2126				<&power RK3588_PD_NPU1>,
2127				<&power RK3588_PD_NPU2>;
2128		power-domain-names = "npu0", "npu1", "npu2";
2129		operating-points-v2 = <&npu_opp_table>;
2130		iommus = <&rknpu_mmu>;
2131		status = "disabled";
2132	};
2133
2134	npu_opp_table: npu-opp-table {
2135		compatible = "operating-points-v2";
2136
2137		clocks = <&cru PCLK_NPU_GRF>;
2138		clock-names = "pclk";
2139		rockchip,grf = <&npu_grf>;
2140		volt-mem-read-margin = <
2141			855000	1
2142			765000	2
2143			675000	3
2144			585000	4
2145		>;
2146
2147		rockchip,init-freq = <1000000>; /* KHz */
2148
2149		opp-198000000 {
2150			opp-hz = /bits/ 64 <198000000>;
2151			opp-microvolt = <675000 675000 850000>,
2152					<750000 750000 850000>;
2153		};
2154		opp-297000000 {
2155			opp-hz = /bits/ 64 <297000000>;
2156			opp-microvolt = <675000 675000 850000>,
2157					<750000 750000 850000>;
2158		};
2159		opp-396000000 {
2160			opp-hz = /bits/ 64 <396000000>;
2161			opp-microvolt = <675000 675000 850000>,
2162					<675000 675000 850000>;
2163		};
2164		opp-500000000 {
2165			opp-hz = /bits/ 64 <500000000>;
2166			opp-microvolt = <675000 675000 850000>,
2167					<675000 675000 850000>;
2168		};
2169		opp-600000000 {
2170			opp-hz = /bits/ 64 <600000000>;
2171			opp-microvolt = <675000 675000 850000>,
2172					<675000 675000 850000>;
2173		};
2174		opp-700000000 {
2175			opp-hz = /bits/ 64 <700000000>;
2176			opp-microvolt = <700000 700000 850000>,
2177					<700000 700000 850000>;
2178		};
2179		opp-800000000 {
2180			opp-hz = /bits/ 64 <800000000>;
2181			opp-microvolt = <750000 750000 850000>,
2182					<750000 750000 850000>;
2183		};
2184		opp-900000000 {
2185			opp-hz = /bits/ 64 <900000000>;
2186			opp-microvolt = <800000 800000 850000>,
2187					<800000 800000 850000>;
2188		};
2189		opp-1000000000 {
2190			opp-hz = /bits/ 64 <1000000000>;
2191			opp-microvolt = <850000 850000 850000>,
2192					<850000 850000 850000>;
2193		};
2194	};
2195
2196	rknpu_mmu: iommu@fdab9000 {
2197		compatible = "rockchip,iommu-v2";
2198		reg = <0x0 0xfdab9000 0x0 0x100>,
2199		      <0x0 0xfdaba000 0x0 0x100>,
2200		      <0x0 0xfdaca000 0x0 0x100>,
2201		      <0x0 0xfdada000 0x0 0x100>;
2202		interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
2203			     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
2204			     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
2205		interrupt-names = "npu0_mmu", "npu1_mmu", "npu2_mmu";
2206		clocks = <&cru ACLK_NPU0>, <&cru ACLK_NPU1>, <&cru ACLK_NPU2>,
2207			 <&cru HCLK_NPU0>, <&cru HCLK_NPU1>, <&cru HCLK_NPU2>;
2208		clock-names = "aclk0", "aclk1", "aclk2",
2209			      "iface0", "iface1", "iface2";
2210		#iommu-cells = <0>;
2211		status = "disabled";
2212	};
2213
2214	vdpu: vdpu@fdb50400 {
2215		compatible = "rockchip,vpu-decoder-v2";
2216		reg = <0x0 0xfdb50400 0x0 0x400>;
2217		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
2218		interrupt-names = "irq_vdpu";
2219		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
2220		clock-names = "aclk_vcodec", "hclk_vcodec";
2221		rockchip,normal-rates = <594000000>, <0>;
2222		assigned-clocks = <&cru ACLK_VPU>;
2223		assigned-clock-rates = <594000000>;
2224		resets = <&cru SRST_A_VPU>, <&cru SRST_H_VPU>;
2225		reset-names = "video_a", "video_h";
2226		rockchip,skip-pmu-idle-request;
2227		iommus = <&vdpu_mmu>;
2228		rockchip,srv = <&mpp_srv>;
2229		rockchip,taskqueue-node = <0>;
2230		power-domains = <&power RK3588_PD_VDPU>;
2231		status = "disabled";
2232	};
2233
2234	vdpu_mmu: iommu@fdb50800 {
2235		compatible = "rockchip,iommu-v2";
2236		reg = <0x0 0xfdb50800 0x0 0x40>;
2237		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
2238		interrupt-names = "irq_vdpu_mmu";
2239		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
2240		clock-names = "aclk", "iface";
2241		power-domains = <&power RK3588_PD_VDPU>;
2242		#iommu-cells = <0>;
2243		status = "disabled";
2244	};
2245
2246	rga3_core0: rga@fdb60000 {
2247		compatible = "rockchip,rga3_core0";
2248		reg = <0x0 0xfdb60000 0x0 0x1000>;
2249		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
2250		interrupt-names = "rga3_core0_irq";
2251		clocks = <&cru ACLK_RGA3_0>, <&cru HCLK_RGA3_0>, <&cru CLK_RGA3_0_CORE>;
2252		clock-names = "aclk_rga3_0", "hclk_rga3_0", "clk_rga3_0";
2253		power-domains = <&power RK3588_PD_RGA30>;
2254		iommus = <&rga3_0_mmu>;
2255		status = "disabled";
2256	};
2257
2258	rga3_0_mmu: iommu@fdb60f00 {
2259		compatible = "rockchip,iommu-v2";
2260		reg = <0x0 0xfdb60f00 0x0 0x100>;
2261		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
2262		interrupt-names = "rga3_0_mmu";
2263		clocks = <&cru ACLK_RGA3_0>, <&cru HCLK_RGA3_0>;
2264		clock-names = "aclk", "iface";
2265		power-domains = <&power RK3588_PD_RGA30>;
2266		#iommu-cells = <0>;
2267		status = "disabled";
2268	};
2269
2270	rga3_core1: rga@fdb70000 {
2271		compatible = "rockchip,rga3_core1";
2272		reg = <0x0 0xfdb70000 0x0 0x1000>;
2273		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
2274		interrupt-names = "rga3_core1_irq";
2275		clocks = <&cru ACLK_RGA3_1>, <&cru HCLK_RGA3_1>, <&cru CLK_RGA3_1_CORE>;
2276		clock-names = "aclk_rga3_1", "hclk_rga3_1", "clk_rga3_1";
2277		power-domains = <&power RK3588_PD_RGA31>;
2278		iommus = <&rga3_1_mmu>;
2279		status = "disabled";
2280	};
2281
2282	rga3_1_mmu: iommu@fdb70f00 {
2283		compatible = "rockchip,iommu-v2";
2284		reg = <0x0 0xfdb70f00 0x0 0x100>;
2285		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
2286		interrupt-names = "rga3_1_mmu";
2287		clocks = <&cru ACLK_RGA3_1>, <&cru HCLK_RGA3_1>;
2288		clock-names = "aclk", "iface";
2289		power-domains = <&power RK3588_PD_RGA31>;
2290		#iommu-cells = <0>;
2291		status = "disabled";
2292	};
2293
2294	rga2: rga@fdb80000 {
2295		compatible = "rockchip,rga2_core0";
2296		reg = <0x0 0xfdb80000 0x0 0x1000>;
2297		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
2298		interrupt-names = "rga2_irq";
2299		clocks = <&cru ACLK_RGA2>, <&cru HCLK_RGA2>, <&cru CLK_RGA2_CORE>;
2300		clock-names = "aclk_rga2", "hclk_rga2", "clk_rga2";
2301		power-domains = <&power RK3588_PD_VDPU>;
2302		status = "disabled";
2303	};
2304
2305	jpegd: jpegd@fdb90000 {
2306		compatible = "rockchip,rkv-jpeg-decoder-v1";
2307		reg = <0x0 0xfdb90000 0x0 0x400>;
2308		interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
2309		interrupt-names = "irq_jpegd";
2310		clocks = <&cru ACLK_JPEG_DECODER>, <&cru HCLK_JPEG_DECODER>;
2311		clock-names = "aclk_vcodec", "hclk_vcodec";
2312		rockchip,normal-rates = <600000000>, <0>;
2313		assigned-clocks = <&cru ACLK_JPEG_DECODER>;
2314		assigned-clock-rates = <600000000>;
2315		resets = <&cru SRST_A_JPEG_DECODER>, <&cru SRST_H_JPEG_DECODER>;
2316		reset-names = "video_a", "video_h";
2317		rockchip,skip-pmu-idle-request;
2318		iommus = <&jpegd_mmu>;
2319		rockchip,srv = <&mpp_srv>;
2320		rockchip,taskqueue-node = <1>;
2321		power-domains = <&power RK3588_PD_VDPU>;
2322		status = "disabled";
2323	};
2324
2325	jpegd_mmu: iommu@fdb90480 {
2326		compatible = "rockchip,iommu-v2";
2327		reg = <0x0 0xfdb90480 0x0 0x40>;
2328		interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
2329		interrupt-names = "irq_jpegd_mmu";
2330		clocks = <&cru ACLK_JPEG_DECODER>, <&cru HCLK_JPEG_DECODER>;
2331		clock-names = "aclk", "iface";
2332		power-domains = <&power RK3588_PD_VDPU>;
2333		#iommu-cells = <0>;
2334		status = "disabled";
2335	};
2336
2337	jpege0: jpege-core@fdba0000 {
2338		compatible = "rockchip,vpu-encoder-v2-core";
2339		reg = <0x0 0xfdba0000 0x0 0x400>;
2340		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
2341		interrupt-names = "irq_jpege0";
2342		clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>;
2343		clock-names = "aclk_vcodec", "hclk_vcodec";
2344		rockchip,normal-rates = <594000000>, <0>;
2345		assigned-clocks = <&cru ACLK_JPEG_ENCODER0>;
2346		assigned-clock-rates = <594000000>;
2347		resets = <&cru SRST_A_JPEG_ENCODER0>, <&cru SRST_H_JPEG_ENCODER0>;
2348		reset-names = "video_a", "video_h";
2349		rockchip,skip-pmu-idle-request;
2350		iommus = <&jpege0_mmu>;
2351		rockchip,srv = <&mpp_srv>;
2352		rockchip,taskqueue-node = <2>;
2353		rockchip,ccu = <&jpege_ccu>;
2354		power-domains = <&power RK3588_PD_VDPU>;
2355		status = "disabled";
2356	};
2357
2358	jpege0_mmu: iommu@fdba0800 {
2359		compatible = "rockchip,iommu-v2";
2360		reg = <0x0 0xfdba0800 0x0 0x40>;
2361		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
2362		interrupt-names = "irq_jpege0_mmu";
2363		clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>;
2364		clock-names = "aclk", "iface";
2365		power-domains = <&power RK3588_PD_VDPU>;
2366		#iommu-cells = <0>;
2367		status = "disabled";
2368	};
2369
2370	jpege1: jpege-core@fdba4000 {
2371		compatible = "rockchip,vpu-encoder-v2-core";
2372		reg = <0x0 0xfdba4000 0x0 0x400>;
2373		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
2374		interrupt-names = "irq_jpege1";
2375		clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>;
2376		clock-names = "aclk_vcodec", "hclk_vcodec";
2377		rockchip,normal-rates = <594000000>, <0>;
2378		assigned-clocks = <&cru ACLK_JPEG_ENCODER1>;
2379		assigned-clock-rates = <594000000>;
2380		resets = <&cru SRST_A_JPEG_ENCODER1>, <&cru SRST_H_JPEG_ENCODER1>;
2381		reset-names = "video_a", "video_h";
2382		rockchip,skip-pmu-idle-request;
2383		iommus = <&jpege1_mmu>;
2384		rockchip,srv = <&mpp_srv>;
2385		rockchip,taskqueue-node = <3>;
2386		rockchip,ccu = <&jpege_ccu>;
2387		power-domains = <&power RK3588_PD_VDPU>;
2388		status = "disabled";
2389	};
2390
2391	jpege1_mmu: iommu@fdba4800 {
2392		compatible = "rockchip,iommu-v2";
2393		reg = <0x0 0xfdba4800 0x0 0x40>;
2394		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
2395		interrupt-names = "irq_jpege1_mmu";
2396		clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>;
2397		clock-names = "aclk", "iface";
2398		power-domains = <&power RK3588_PD_VDPU>;
2399		#iommu-cells = <0>;
2400		status = "disabled";
2401	};
2402
2403	jpege2: jpege-core@fdba8000 {
2404		compatible = "rockchip,vpu-encoder-v2-core";
2405		reg = <0x0 0xfdba8000 0x0 0x400>;
2406		interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
2407		interrupt-names = "irq_jpege2";
2408		clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>;
2409		clock-names = "aclk_vcodec", "hclk_vcodec";
2410		rockchip,normal-rates = <594000000>, <0>;
2411		assigned-clocks = <&cru ACLK_JPEG_ENCODER2>;
2412		assigned-clock-rates = <594000000>;
2413		resets = <&cru SRST_A_JPEG_ENCODER2>, <&cru SRST_H_JPEG_ENCODER2>;
2414		reset-names = "video_a", "video_h";
2415		rockchip,skip-pmu-idle-request;
2416		iommus = <&jpege2_mmu>;
2417		rockchip,srv = <&mpp_srv>;
2418		rockchip,taskqueue-node = <4>;
2419		rockchip,ccu = <&jpege_ccu>;
2420		power-domains = <&power RK3588_PD_VDPU>;
2421		status = "disabled";
2422	};
2423
2424	jpege2_mmu: iommu@fdba8800 {
2425		compatible = "rockchip,iommu-v2";
2426		reg = <0x0 0xfdba8800 0x0 0x40>;
2427		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
2428		interrupt-names = "irq_jpege2_mmu";
2429		clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>;
2430		clock-names = "aclk", "iface";
2431		power-domains = <&power RK3588_PD_VDPU>;
2432		#iommu-cells = <0>;
2433		status = "disabled";
2434	};
2435
2436	jpege3: jpege-core@fdbac000 {
2437		compatible = "rockchip,vpu-encoder-v2-core";
2438		reg = <0x0 0xfdbac000 0x0 0x400>;
2439		interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
2440		interrupt-names = "irq_jpege3";
2441		clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>;
2442		clock-names = "aclk_vcodec", "hclk_vcodec";
2443		rockchip,normal-rates = <594000000>, <0>;
2444		assigned-clocks = <&cru ACLK_JPEG_ENCODER3>;
2445		assigned-clock-rates = <594000000>;
2446		resets = <&cru SRST_A_JPEG_ENCODER3>, <&cru SRST_H_JPEG_ENCODER3>;
2447		reset-names = "video_a", "video_h";
2448		rockchip,skip-pmu-idle-request;
2449		iommus = <&jpege3_mmu>;
2450		rockchip,srv = <&mpp_srv>;
2451		rockchip,taskqueue-node = <5>;
2452		rockchip,ccu = <&jpege_ccu>;
2453		power-domains = <&power RK3588_PD_VDPU>;
2454		status = "disabled";
2455	};
2456
2457	jpege3_mmu: iommu@fdbac800 {
2458		compatible = "rockchip,iommu-v2";
2459		reg = <0x0 0xfdbac800 0x0 0x40>;
2460		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
2461		interrupt-names = "irq_jpege3_mmu";
2462		clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>;
2463		clock-names = "aclk", "iface";
2464		power-domains = <&power RK3588_PD_VDPU>;
2465		#iommu-cells = <0>;
2466		status = "disabled";
2467	};
2468
2469	iep: iep@fdbb0000 {
2470		compatible = "rockchip,iep-v2";
2471		reg = <0x0 0xfdbb0000 0x0 0x500>;
2472		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
2473		interrupt-names = "irq_iep";
2474		clocks = <&cru ACLK_IEP2P0>, <&cru HCLK_IEP2P0>, <&cru CLK_IEP2P0_CORE>;
2475		clock-names = "aclk", "hclk", "sclk";
2476		resets = <&cru SRST_A_IEP2P0>, <&cru SRST_H_IEP2P0>, <&cru SRST_IEP2P0_CORE>;
2477		reset-names = "rst_a", "rst_h", "rst_s";
2478		rockchip,skip-pmu-idle-request;
2479		power-domains = <&power RK3588_PD_VDPU>;
2480		rockchip,srv = <&mpp_srv>;
2481		rockchip,taskqueue-node = <6>;
2482		iommus = <&iep_mmu>;
2483		status = "disabled";
2484	};
2485
2486	iep_mmu: iommu@fdbb0800 {
2487		compatible = "rockchip,iommu-v2";
2488		reg = <0x0 0xfdbb0800 0x0 0x100>;
2489		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
2490		interrupt-names = "irq_iep_mmu";
2491		clocks = <&cru ACLK_IEP2P0>, <&cru HCLK_IEP2P0>;
2492		clock-names = "aclk", "iface";
2493		#iommu-cells = <0>;
2494		power-domains = <&power RK3588_PD_VDPU>;
2495		status = "disabled";
2496	};
2497
2498	rkvenc0: rkvenc-core@fdbd0000 {
2499		compatible = "rockchip,rkv-encoder-v2-core";
2500		reg = <0x0 0xfdbd0000 0x0 0x6000>;
2501		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
2502		interrupt-names = "irq_rkvenc0";
2503		clocks = <&cru ACLK_RKVENC0>, <&cru HCLK_RKVENC0>, <&cru CLK_RKVENC0_CORE>;
2504		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
2505		rockchip,normal-rates = <600000000>, <0>, <800000000>;
2506		assigned-clocks = <&cru ACLK_RKVENC0>, <&cru CLK_RKVENC0_CORE>;
2507		assigned-clock-rates = <600000000>, <800000000>;
2508		resets = <&cru SRST_A_RKVENC0>, <&cru SRST_H_RKVENC0>, <&cru SRST_RKVENC0_CORE>;
2509		reset-names = "video_a", "video_h", "video_core";
2510		rockchip,skip-pmu-idle-request;
2511		iommus = <&rkvenc0_mmu>;
2512		rockchip,srv = <&mpp_srv>;
2513		rockchip,ccu = <&rkvenc_ccu>;
2514		rockchip,taskqueue-node = <7>;
2515		rockchip,task-capacity = <8>;
2516		power-domains = <&power RK3588_PD_VENC0>;
2517		status = "disabled";
2518	};
2519
2520	rkvenc0_mmu: iommu@fdbdf000 {
2521		compatible = "rockchip,iommu-v2";
2522		reg = <0x0 0xfdbdf000 0x0 0x40>, <0x0 0xfdbdf040 0x0 0x40>;
2523		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
2524			     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2525		interrupt-names = "irq_rkvenc0_mmu0", "irq_rkvenc0_mmu1";
2526		clocks = <&cru ACLK_RKVENC0>, <&cru HCLK_RKVENC0>;
2527		clock-names = "aclk", "iface";
2528		rockchip,disable-mmu-reset;
2529		rockchip,enable-cmd-retry;
2530		rockchip,shootdown-entire;
2531		#iommu-cells = <0>;
2532		power-domains = <&power RK3588_PD_VENC0>;
2533		status = "disabled";
2534	};
2535
2536	rkvenc1: rkvenc-core@fdbe0000 {
2537		compatible = "rockchip,rkv-encoder-v2-core";
2538		reg = <0x0 0xfdbe0000 0x0 0x6000>;
2539		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
2540		interrupt-names = "irq_rkvenc1";
2541		clocks = <&cru ACLK_RKVENC1>, <&cru HCLK_RKVENC1>, <&cru CLK_RKVENC1_CORE>;
2542		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
2543		rockchip,normal-rates = <600000000>, <0>, <800000000>;
2544		assigned-clocks = <&cru ACLK_RKVENC1>, <&cru CLK_RKVENC1_CORE>;
2545		assigned-clock-rates = <600000000>, <800000000>;
2546		resets = <&cru SRST_A_RKVENC1>, <&cru SRST_H_RKVENC1>, <&cru SRST_RKVENC1_CORE>;
2547		reset-names = "video_a", "video_h", "video_core";
2548		rockchip,skip-pmu-idle-request;
2549		iommus = <&rkvenc1_mmu>;
2550		rockchip,srv = <&mpp_srv>;
2551		rockchip,ccu = <&rkvenc_ccu>;
2552		rockchip,taskqueue-node = <7>;
2553		rockchip,task-capacity = <8>;
2554		power-domains = <&power RK3588_PD_VENC1>;
2555		status = "disabled";
2556	};
2557
2558	rkvenc1_mmu: iommu@fdbef000 {
2559		compatible = "rockchip,iommu-v2";
2560		reg = <0x0 0xfdbef000 0x0 0x40>, <0x0 0xfdbef040 0x0 0x40>;
2561		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
2562			     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
2563		interrupt-names = "irq_rkvenc1_mmu0", "irq_rkvenc1_mmu1";
2564		clocks = <&cru ACLK_RKVENC1>, <&cru HCLK_RKVENC1>;
2565		lock-names = "aclk", "iface";
2566		rockchip,disable-mmu-reset;
2567		rockchip,enable-cmd-retry;
2568		rockchip,shootdown-entire;
2569		#iommu-cells = <0>;
2570		power-domains = <&power RK3588_PD_VENC1>;
2571		status = "disabled";
2572	};
2573
2574	rkvdec_ccu: rkvdec-ccu@fdc30000 {
2575		compatible = "rockchip,rkv-decoder-v2-ccu";
2576		reg = <0x0 0xfdc30000 0x0 0x100>;
2577		reg-names = "ccu";
2578		clocks = <&cru ACLK_RKVDEC_CCU>;
2579		clock-names = "aclk_ccu";
2580		assigned-clocks = <&cru ACLK_RKVDEC_CCU>;
2581		assigned-clock-rates = <600000000>;
2582		resets = <&cru SRST_A_RKVDEC_CCU>;
2583		reset-names = "video_ccu";
2584		rockchip,skip-pmu-idle-request;
2585		power-domains = <&power RK3588_PD_RKVDEC0>;
2586		status = "disabled";
2587	};
2588
2589	rkvdec0: rkvdec-core@fdc38000 {
2590		compatible = "rockchip,rkv-decoder-v2";
2591		reg = <0x0 0xfdc38100 0x0 0x400>, <0x0 0xfdc38000 0x0 0x100>;
2592		reg-names = "regs", "link";
2593		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
2594		interrupt-names = "irq_rkvdec0";
2595		clocks = <&cru ACLK_RKVDEC0>, <&cru HCLK_RKVDEC0>, <&cru CLK_RKVDEC0_CORE>,
2596			 <&cru CLK_RKVDEC0_CA>, <&cru CLK_RKVDEC0_HEVC_CA>;
2597		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core",
2598			      "clk_cabac", "clk_hevc_cabac";
2599		rockchip,normal-rates = <800000000>, <0>, <600000000>,
2600					<600000000>, <1000000000>;
2601		assigned-clocks = <&cru ACLK_RKVDEC0>, <&cru CLK_RKVDEC0_CORE>,
2602				  <&cru CLK_RKVDEC0_CA>, <&cru CLK_RKVDEC0_HEVC_CA>;
2603		assigned-clock-rates = <800000000>, <600000000>,
2604				       <600000000>, <1000000000>;
2605		resets = <&cru SRST_A_RKVDEC0>, <&cru SRST_H_RKVDEC0>, <&cru SRST_RKVDEC0_CORE>,
2606			 <&cru SRST_RKVDEC0_CA>, <&cru SRST_RKVDEC0_HEVC_CA>;
2607		reset-names = "video_a", "video_h", "video_core",
2608			      "video_cabac", "video_hevc_cabac";
2609		rockchip,skip-pmu-idle-request;
2610		iommus = <&rkvdec0_mmu>;
2611		rockchip,srv = <&mpp_srv>;
2612		rockchip,ccu = <&rkvdec_ccu>;
2613		rockchip,core-mask = <0x00010001>;
2614		rockchip,taskqueue-node = <9>;
2615		rockchip,sram = <&rkvdec0_sram>;
2616		/* rcb_iova: start and size */
2617		rockchip,rcb-iova = <0x10000000 0x100000>;
2618		rockchip,rcb-min-width = <512>;
2619		power-domains = <&power RK3588_PD_RKVDEC0>;
2620		status = "disabled";
2621	};
2622
2623	rkvdec0_mmu: iommu@fdc38700 {
2624		compatible = "rockchip,iommu-v2";
2625		reg = <0x0 0xfdc38700 0x0 0x40>, <0x0 0xfdc38740 0x0 0x40>;
2626		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
2627		interrupt-names = "irq_rkvdec0_mmu";
2628		clocks = <&cru ACLK_RKVDEC0>, <&cru HCLK_RKVDEC0>;
2629		clock-names = "aclk", "iface";
2630		rockchip,disable-mmu-reset;
2631		rockchip,enable-cmd-retry;
2632		rockchip,shootdown-entire;
2633		#iommu-cells = <0>;
2634		power-domains = <&power RK3588_PD_RKVDEC0>;
2635		status = "disabled";
2636	};
2637
2638	rkvdec1: rkvdec-core@fdc48000 {
2639		compatible = "rockchip,rkv-decoder-v2";
2640		reg = <0x0 0xfdc48100 0x0 0x400>, <0x0 0xfdc48000 0x0 0x100>;
2641		reg-names = "regs", "link";
2642		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2643		interrupt-names = "irq_rkvdec1";
2644		clocks = <&cru ACLK_RKVDEC1>, <&cru HCLK_RKVDEC1>, <&cru CLK_RKVDEC1_CORE>,
2645			 <&cru CLK_RKVDEC1_CA>, <&cru CLK_RKVDEC1_HEVC_CA>;
2646		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core",
2647			      "clk_cabac", "clk_hevc_cabac";
2648		rockchip,normal-rates = <800000000>, <0>, <600000000>,
2649					<600000000>, <1000000000>;
2650		assigned-clocks = <&cru ACLK_RKVDEC1>, <&cru CLK_RKVDEC1_CORE>,
2651				  <&cru CLK_RKVDEC1_CA>, <&cru CLK_RKVDEC1_HEVC_CA>;
2652		assigned-clock-rates = <800000000>, <600000000>,
2653				       <600000000>, <1000000000>;
2654		resets = <&cru SRST_A_RKVDEC1>, <&cru SRST_H_RKVDEC1>, <&cru SRST_RKVDEC1_CORE>,
2655			 <&cru SRST_RKVDEC1_CA>, <&cru SRST_RKVDEC1_HEVC_CA>;
2656		reset-names = "video_a", "video_h", "video_core",
2657			      "video_cabac", "video_hevc_cabac";
2658		rockchip,skip-pmu-idle-request;
2659		iommus = <&rkvdec1_mmu>;
2660		rockchip,srv = <&mpp_srv>;
2661		rockchip,ccu = <&rkvdec_ccu>;
2662		rockchip,core-mask = <0x00020002>;
2663		rockchip,taskqueue-node = <9>;
2664		rockchip,sram = <&rkvdec1_sram>;
2665		/* rcb_iova: start and size */
2666		rockchip,rcb-iova = <0x10100000 0x100000>;
2667		rockchip,rcb-min-width = <512>;
2668		power-domains = <&power RK3588_PD_RKVDEC1>;
2669		status = "disabled";
2670	};
2671
2672	rkvdec1_mmu: iommu@fdc48700 {
2673		compatible = "rockchip,iommu-v2";
2674		reg = <0x0 0xfdc48700 0x0 0x40>, <0x0 0xfdc48740 0x0 0x40>;
2675		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2676		interrupt-names = "irq_rkvdec1_mmu";
2677		clocks = <&cru ACLK_RKVDEC1>, <&cru HCLK_RKVDEC1>;
2678		clock-names = "aclk", "iface";
2679		rockchip,disable-mmu-reset;
2680		rockchip,enable-cmd-retry;
2681		rockchip,shootdown-entire;
2682		#iommu-cells = <0>;
2683		power-domains = <&power RK3588_PD_RKVDEC1>;
2684		status = "disabled";
2685	};
2686
2687	rkisp_unite: rkisp-unite@fdcb0000 {
2688		compatible = "rockchip,rk3588-rkisp-unite";
2689		reg = <0x0 0xfdcb0000 0x0 0x10000>,
2690		      <0x0 0xfdcc0000 0x0 0x10000>;
2691		interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
2692			     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
2693			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
2694		interrupt-names = "isp_irq", "mi_irq", "mipi_irq";
2695		clocks = <&cru ACLK_ISP0>, <&cru HCLK_ISP0>,
2696			 <&cru CLK_ISP0_CORE>, <&cru CLK_ISP0_CORE_MARVIN>,
2697			 <&cru CLK_ISP0_CORE_VICAP>, <&cru ACLK_ISP1>,
2698			 <&cru HCLK_ISP1>, <&cru CLK_ISP1_CORE>,
2699			 <&cru CLK_ISP1_CORE_MARVIN>, <&cru CLK_ISP1_CORE_VICAP>;
2700		clock-names = "aclk_isp0", "hclk_isp0", "clk_isp_core0",
2701			      "clk_isp_core_marvin0", "clk_isp_core_vicap0",
2702			      "aclk_isp1", "hclk_isp1", "clk_isp_core1",
2703			      "clk_isp_core_marvin1", "clk_isp_core_vicap1";
2704		power-domains = <&power RK3588_PD_ISP1>;
2705		iommus = <&rkisp_unite_mmu>;
2706		status = "disabled";
2707	};
2708
2709	rkisp0: rkisp@fdcb0000 {
2710		compatible = "rockchip,rk3588-rkisp";
2711		reg = <0x0 0xfdcb0000 0x0 0x7f00>;
2712		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
2713			     <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
2714			     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
2715		interrupt-names = "isp_irq", "mi_irq", "mipi_irq";
2716		clocks = <&cru ACLK_ISP0>, <&cru HCLK_ISP0>,
2717			 <&cru CLK_ISP0_CORE>, <&cru CLK_ISP0_CORE_MARVIN>,
2718			 <&cru CLK_ISP0_CORE_VICAP>;
2719		clock-names = "aclk_isp", "hclk_isp", "clk_isp_core",
2720			      "clk_isp_core_marvin", "clk_isp_core_vicap";
2721		power-domains = <&power RK3588_PD_VI>;
2722		iommus = <&isp0_mmu>;
2723		status = "disabled";
2724	};
2725
2726	rkisp_unite_mmu: rkisp-unite-mmu@fdcb7f00 {
2727		compatible = "rockchip,iommu-v2";
2728		reg = <0x0 0xfdcb7f00 0x0 0x100>, <0x0 0xfdcc7f00 0x0 0x100>;
2729		interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
2730			     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
2731		interrupt-names = "isp0_mmu", "isp1_mmu";
2732		clocks = <&cru ACLK_ISP0>, <&cru HCLK_ISP0>,
2733			 <&cru ACLK_ISP1>, <&cru HCLK_ISP1>;
2734		clock-names = "aclk0", "iface0", "aclk1", "iface1";
2735		power-domains = <&power RK3588_PD_ISP1>;
2736		#iommu-cells = <0>;
2737		rockchip,disable-mmu-reset;
2738		status = "disabled";
2739	};
2740
2741	isp0_mmu: iommu@fdcb7f00 {
2742		compatible = "rockchip,iommu-v2";
2743		reg = <0x0 0xfdcb7f00 0x0 0x100>;
2744		interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
2745		interrupt-names = "isp0_mmu";
2746		clocks = <&cru ACLK_ISP0>, <&cru HCLK_ISP0>;
2747		clock-names = "aclk", "iface";
2748		power-domains = <&power RK3588_PD_VI>;
2749		#iommu-cells = <0>;
2750		rockchip,disable-mmu-reset;
2751		status = "disabled";
2752	};
2753
2754	rkisp1: rkisp@fdcc0000 {
2755		compatible = "rockchip,rk3588-rkisp";
2756		reg = <0x0 0xfdcc0000 0x0 0x7f00>;
2757		interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
2758			     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
2759			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
2760		interrupt-names = "isp_irq", "mi_irq", "mipi_irq";
2761		clocks = <&cru ACLK_ISP1>, <&cru HCLK_ISP1>,
2762			 <&cru CLK_ISP1_CORE>, <&cru CLK_ISP1_CORE_MARVIN>,
2763			 <&cru CLK_ISP1_CORE_VICAP>;
2764		clock-names = "aclk_isp", "hclk_isp", "clk_isp_core",
2765			      "clk_isp_core_marvin", "clk_isp_core_vicap";
2766		power-domains = <&power RK3588_PD_ISP1>;
2767		iommus = <&isp1_mmu>;
2768		status = "disabled";
2769	};
2770
2771	isp1_mmu: iommu@fdcc7f00 {
2772		compatible = "rockchip,iommu-v2";
2773		reg = <0x0 0xfdcc7f00 0x0 0x100>;
2774		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
2775		interrupt-names = "isp1_mmu";
2776		clocks = <&cru ACLK_ISP1>, <&cru HCLK_ISP1>;
2777		clock-names = "aclk", "iface";
2778		power-domains = <&power RK3588_PD_ISP1>;
2779		#iommu-cells = <0>;
2780		rockchip,disable-mmu-reset;
2781		status = "disabled";
2782	};
2783
2784	rkispp0: rkispp@fdcd0000 {
2785		compatible = "rockchip,rk3588-rkispp";
2786		reg = <0x0 0xfdcd0000 0x0 0x0f00>;
2787		interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
2788		interrupt-names = "fec_irq";
2789		clocks = <&cru ACLK_FISHEYE0>, <&cru HCLK_FISHEYE0>,
2790			 <&cru CLK_FISHEYE0_CORE>;
2791		clock-names = "aclk_ispp", "hclk_ispp", "clk_ispp";
2792		power-domains = <&power RK3588_PD_FEC>;
2793		iommus = <&fec0_mmu>;
2794		status = "disabled";
2795	};
2796
2797	fec0_mmu: iommu@fdcd0f00 {
2798		compatible = "rockchip,iommu-v2";
2799		reg = <0x0 0xfdcd0f00 0x0 0x100>;
2800		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
2801		interrupt-names = "fec0_mmu";
2802		clocks = <&cru ACLK_FISHEYE0>, <&cru HCLK_FISHEYE0>, <&cru CLK_FISHEYE0_CORE>;
2803		clock-names = "aclk", "iface", "pclk";
2804		power-domains = <&power RK3588_PD_FEC>;
2805		#iommu-cells = <0>;
2806		rockchip,disable-mmu-reset;
2807		status = "disabled";
2808	};
2809
2810	rkispp1: rkispp@fdcd8000 {
2811		compatible = "rockchip,rk3588-rkispp";
2812		reg = <0x0 0xfdcd8000 0x0 0x0f00>;
2813		interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
2814		interrupt-names = "fec_irq";
2815		clocks = <&cru ACLK_FISHEYE1>, <&cru HCLK_FISHEYE1>,
2816			 <&cru CLK_FISHEYE1_CORE>;
2817		clock-names = "aclk_ispp", "hclk_ispp", "clk_ispp";
2818		power-domains = <&power RK3588_PD_FEC>;
2819		iommus = <&fec1_mmu>;
2820		status = "disabled";
2821	};
2822
2823	fec1_mmu: iommu@fdcd8f00 {
2824		compatible = "rockchip,iommu-v2";
2825		reg = <0x0 0xfdcd8f00 0x0 0x100>;
2826		interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
2827		interrupt-names = "fec1_mmu";
2828		clocks = <&cru ACLK_FISHEYE1>, <&cru HCLK_FISHEYE1>,  <&cru CLK_FISHEYE1_CORE>;
2829		clock-names = "aclk", "iface", "pclk";
2830		power-domains = <&power RK3588_PD_FEC>;
2831		#iommu-cells = <0>;
2832		rockchip,disable-mmu-reset;
2833		status = "disabled";
2834	};
2835
2836	rkcif: rkcif@fdce0000 {
2837		compatible = "rockchip,rk3588-cif";
2838		reg = <0x0 0xfdce0000 0x0 0x800>;
2839		reg-names = "cif_regs";
2840		interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
2841		interrupt-names = "cif-intr";
2842		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>, <&cru DCLK_VICAP>;
2843		clock-names = "aclk_cif", "hclk_cif", "dclk_cif";
2844		resets = <&cru SRST_A_VICAP>, <&cru SRST_H_VICAP>, <&cru SRST_D_VICAP>;
2845		reset-names = "rst_cif_a", "rst_cif_h", "rst_cif_d";
2846		assigned-clocks = <&cru DCLK_VICAP>;
2847		assigned-clock-rates = <600000000>;
2848		power-domains = <&power RK3588_PD_VI>;
2849		rockchip,grf = <&sys_grf>;
2850		iommus = <&rkcif_mmu>;
2851		status = "disabled";
2852	};
2853
2854	rkcif_mmu: iommu@fdce0800 {
2855		compatible = "rockchip,iommu-v2";
2856		reg = <0x0 0xfdce0800 0x0 0x100>,
2857		      <0x0 0xfdce0900 0x0 0x100>;
2858		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
2859		interrupt-names = "cif_mmu";
2860		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>;
2861		clock-names = "aclk", "iface";
2862		power-domains = <&power RK3588_PD_VI>;
2863		rockchip,disable-mmu-reset;
2864		#iommu-cells = <0>;
2865		status = "disabled";
2866	};
2867
2868	mipi0_csi2: mipi0-csi2@fdd10000 {
2869		compatible = "rockchip,rk3588-mipi-csi2";
2870		reg = <0x0 0xfdd10000 0x0 0x10000>;
2871		reg-names = "csihost_regs";
2872		interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
2873			     <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
2874		interrupt-names = "csi-intr1", "csi-intr2";
2875		clocks = <&cru PCLK_CSI_HOST_0>, <&cru ICLK_CSIHOST0>;
2876		clock-names = "pclk_csi2host", "iclk_csi2host";
2877		resets = <&cru SRST_P_CSI_HOST_0>, <&cru SRST_CSIHOST0_VICAP>;
2878		reset-names = "srst_csihost_p", "srst_csihost_vicap";
2879		status = "disabled";
2880	};
2881
2882	mipi1_csi2: mipi1-csi2@fdd20000 {
2883		compatible = "rockchip,rk3588-mipi-csi2";
2884		reg = <0x0 0xfdd20000 0x0 0x10000>;
2885		reg-names = "csihost_regs";
2886		interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
2887			     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
2888		interrupt-names = "csi-intr1", "csi-intr2";
2889		clocks = <&cru PCLK_CSI_HOST_1>, <&cru ICLK_CSIHOST1>;
2890		clock-names = "pclk_csi2host", "iclk_csi2host";
2891		resets = <&cru SRST_P_CSI_HOST_1>, <&cru SRST_CSIHOST1_VICAP>;
2892		reset-names = "srst_csihost_p", "srst_csihost_vicap";
2893		status = "disabled";
2894	};
2895
2896	mipi2_csi2: mipi2-csi2@fdd30000 {
2897		compatible = "rockchip,rk3588-mipi-csi2";
2898		reg = <0x0 0xfdd30000 0x0 0x10000>;
2899		reg-names = "csihost_regs";
2900		interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
2901			     <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
2902		interrupt-names = "csi-intr1", "csi-intr2";
2903		clocks = <&cru PCLK_CSI_HOST_2>;
2904		clock-names = "pclk_csi2host";
2905		resets = <&cru SRST_P_CSI_HOST_2>, <&cru SRST_CSIHOST2_VICAP>;
2906		reset-names = "srst_csihost_p", "srst_csihost_vicap";
2907		status = "disabled";
2908	};
2909
2910	mipi3_csi2: mipi3-csi2@fdd40000 {
2911		compatible = "rockchip,rk3588-mipi-csi2";
2912		reg = <0x0 0xfdd40000 0x0 0x10000>;
2913		reg-names = "csihost_regs";
2914		interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
2915			     <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
2916		interrupt-names = "csi-intr1", "csi-intr2";
2917		clocks = <&cru PCLK_CSI_HOST_3>;
2918		clock-names = "pclk_csi2host";
2919		resets = <&cru SRST_P_CSI_HOST_3>, <&cru SRST_CSIHOST3_VICAP>;
2920		reset-names = "srst_csihost_p", "srst_csihost_vicap";
2921		status = "disabled";
2922	};
2923
2924	vop: vop@fdd90000 {
2925		compatible = "rockchip,rk3588-vop";
2926		reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
2927		reg-names = "regs", "gamma_lut";
2928		interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
2929		clocks = <&cru ACLK_VOP>,
2930			 <&cru HCLK_VOP>,
2931			 <&cru DCLK_VOP0>,
2932			 <&cru DCLK_VOP1>,
2933			 <&cru DCLK_VOP2>,
2934			 <&cru DCLK_VOP3>,
2935			 <&cru PCLK_VOP_ROOT>,
2936			 <&cru DCLK_VOP0_SRC>,
2937			 <&cru DCLK_VOP1_SRC>,
2938			 <&cru DCLK_VOP2_SRC>,
2939			 <&hdptxphy_hdmi0>;
2940		clock-names = "aclk_vop",
2941			      "hclk_vop",
2942			      "dclk_vp0",
2943			      "dclk_vp1",
2944			      "dclk_vp2",
2945			      "dclk_vp3",
2946			      "pclk_vop",
2947			      "dclk_src_vp0",
2948			      "dclk_src_vp1",
2949			      "dclk_src_vp2",
2950			      "hdmi0_phy_pll";
2951		resets = <&cru SRST_A_VOP>,
2952			 <&cru SRST_H_VOP>,
2953			 <&cru SRST_D_VOP0>,
2954			 <&cru SRST_D_VOP1>,
2955			 <&cru SRST_D_VOP2>,
2956			 <&cru SRST_D_VOP3>;
2957		reset-names = "axi",
2958			      "ahb",
2959			      "dclk_vp0",
2960			      "dclk_vp1",
2961			      "dclk_vp2",
2962			      "dclk_vp3";
2963		iommus = <&vop_mmu>;
2964		power-domains = <&power RK3588_PD_VOP>;
2965		rockchip,grf = <&sys_grf>;
2966		rockchip,vop-grf = <&vop_grf>;
2967		rockchip,vo1-grf = <&vo1_grf>;
2968		rockchip,pmu = <&pmu>;
2969
2970		status = "disabled";
2971
2972		vop_out: ports {
2973			#address-cells = <1>;
2974			#size-cells = <0>;
2975
2976			vp0: port@0 {
2977				#address-cells = <1>;
2978				#size-cells = <0>;
2979				reg = <0>;
2980
2981				vp0_out_dp0: endpoint@0 {
2982					reg = <0>;
2983					remote-endpoint = <&dp0_in_vp0>;
2984				};
2985
2986				vp0_out_edp0: endpoint@1 {
2987					reg = <1>;
2988					remote-endpoint = <&edp0_in_vp0>;
2989				};
2990
2991				vp0_out_hdmi0: endpoint@2 {
2992					reg = <2>;
2993					remote-endpoint = <&hdmi0_in_vp0>;
2994				};
2995			};
2996
2997			vp1: port@1 {
2998				#address-cells = <1>;
2999				#size-cells = <0>;
3000				reg = <1>;
3001
3002				vp1_out_dp0: endpoint@0 {
3003					reg = <0>;
3004					remote-endpoint = <&dp0_in_vp1>;
3005				};
3006
3007				vp1_out_edp0: endpoint@1 {
3008					reg = <1>;
3009					remote-endpoint = <&edp0_in_vp1>;
3010				};
3011
3012				vp1_out_hdmi0: endpoint@2 {
3013					reg = <2>;
3014					remote-endpoint = <&hdmi0_in_vp1>;
3015				};
3016			};
3017
3018			vp2: port@2 {
3019				#address-cells = <1>;
3020				#size-cells = <0>;
3021				reg = <2>;
3022
3023				assigned-clocks = <&cru DCLK_VOP2_SRC>;
3024				assigned-clock-parents = <&cru PLL_V0PLL>;
3025
3026				vp2_out_dp0: endpoint@0 {
3027					reg = <0>;
3028					remote-endpoint = <&dp0_in_vp2>;
3029				};
3030
3031				vp2_out_edp0: endpoint@1 {
3032					reg = <1>;
3033					remote-endpoint = <&edp0_in_vp2>;
3034				};
3035
3036				vp2_out_hdmi0: endpoint@2 {
3037					reg = <2>;
3038					remote-endpoint = <&hdmi0_in_vp2>;
3039				};
3040
3041				vp2_out_dsi0: endpoint@3 {
3042					reg = <3>;
3043					remote-endpoint = <&dsi0_in_vp2>;
3044				};
3045
3046				vp2_out_dsi1: endpoint@4 {
3047					reg = <4>;
3048					remote-endpoint = <&dsi1_in_vp2>;
3049				};
3050			};
3051
3052			vp3: port@3 {
3053				#address-cells = <1>;
3054				#size-cells = <0>;
3055				reg = <3>;
3056
3057				vp3_out_dsi0: endpoint@0 {
3058					reg = <0>;
3059					remote-endpoint = <&dsi0_in_vp3>;
3060				};
3061
3062				vp3_out_dsi1: endpoint@1 {
3063					reg = <1>;
3064					remote-endpoint = <&dsi1_in_vp3>;
3065				};
3066
3067				vp3_out_rgb: endpoint@2 {
3068					reg = <2>;
3069					remote-endpoint = <&rgb_in_vp3>;
3070				};
3071			};
3072		};
3073	};
3074
3075	vop_mmu: iommu@fdd97e00 {
3076		compatible = "rockchip,iommu-v2";
3077		reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
3078		interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
3079		interrupt-names = "vop_mmu";
3080		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
3081		clock-names = "aclk", "iface";
3082		#iommu-cells = <0>;
3083		rockchip,disable-device-link-resume;
3084		rockchip,shootdown-entire;
3085		status = "disabled";
3086	};
3087
3088	spdif_tx2: spdif-tx@fddb0000 {
3089		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
3090		reg = <0x0 0xfddb0000 0x0 0x1000>;
3091		interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
3092		dmas = <&dmac1 6>;
3093		dma-names = "tx";
3094		clock-names = "mclk", "hclk";
3095		clocks = <&cru MCLK_SPDIF2_DP0>, <&cru HCLK_SPDIF2_DP0>;
3096		assigned-clocks = <&cru CLK_SPDIF2_DP0_SRC>;
3097		assigned-clock-parents = <&cru PLL_AUPLL>;
3098		power-domains = <&power RK3588_PD_VO0>;
3099		#sound-dai-cells = <0>;
3100		status = "disabled";
3101	};
3102
3103	i2s4_8ch: i2s@fddc0000 {
3104		compatible = "rockchip,rk3588-i2s-tdm";
3105		reg = <0x0 0xfddc0000 0x0 0x1000>;
3106		interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
3107		clocks = <&cru MCLK_I2S4_8CH_TX>, <&cru MCLK_I2S4_8CH_TX>, <&cru HCLK_I2S4_8CH>;
3108		clock-names = "mclk_tx", "mclk_rx", "hclk";
3109		assigned-clocks = <&cru CLK_I2S4_8CH_TX_SRC>;
3110		assigned-clock-parents = <&cru PLL_AUPLL>;
3111		dmas = <&dmac2 0>;
3112		dma-names = "tx";
3113		power-domains = <&power RK3588_PD_VO0>;
3114		resets = <&cru SRST_M_I2S4_8CH_TX>;
3115		reset-names = "tx-m";
3116		rockchip,playback-only;
3117		#sound-dai-cells = <0>;
3118		status = "disabled";
3119	};
3120
3121	spdif_tx3: spdif-tx@fdde0000 {
3122		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
3123		reg = <0x0 0xfdde0000 0x0 0x1000>;
3124		interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
3125		dmas = <&dmac1 7>;
3126		dma-names = "tx";
3127		clock-names = "mclk", "hclk";
3128		clocks = <&cru MCLK_SPDIF3>, <&cru HCLK_SPDIF3>;
3129		assigned-clocks = <&cru CLK_SPDIF3_SRC>;
3130		assigned-clock-parents = <&cru PLL_AUPLL>;
3131		power-domains = <&power RK3588_PD_VO1>;
3132		#sound-dai-cells = <0>;
3133		status = "disabled";
3134	};
3135
3136	i2s5_8ch: i2s@fddf0000 {
3137		compatible = "rockchip,rk3588-i2s-tdm";
3138		reg = <0x0 0xfddf0000 0x0 0x1000>;
3139		interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
3140		clocks = <&cru MCLK_I2S5_8CH_TX>, <&cru MCLK_I2S5_8CH_TX>, <&cru HCLK_I2S5_8CH>;
3141		clock-names = "mclk_tx", "mclk_rx", "hclk";
3142		assigned-clocks = <&cru CLK_I2S5_8CH_TX_SRC>;
3143		assigned-clock-parents = <&cru PLL_AUPLL>;
3144		dmas = <&dmac2 2>;
3145		dma-names = "tx";
3146		power-domains = <&power RK3588_PD_VO1>;
3147		resets = <&cru SRST_M_I2S5_8CH_TX>;
3148		reset-names = "tx-m";
3149		rockchip,playback-only;
3150		#sound-dai-cells = <0>;
3151		status = "disabled";
3152	};
3153
3154	i2s9_8ch: i2s@fddfc000 {
3155		compatible = "rockchip,rk3588-i2s-tdm";
3156		reg = <0x0 0xfddfc000 0x0 0x1000>;
3157		interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
3158		clocks = <&cru MCLK_I2S9_8CH_RX>, <&cru MCLK_I2S9_8CH_RX>, <&cru HCLK_I2S9_8CH>;
3159		clock-names = "mclk_tx", "mclk_rx", "hclk";
3160		assigned-clocks = <&cru CLK_I2S9_8CH_RX_SRC>;
3161		assigned-clock-parents = <&cru PLL_AUPLL>;
3162		dmas = <&dmac2 23>;
3163		dma-names = "rx";
3164		power-domains = <&power RK3588_PD_VO1>;
3165		resets = <&cru SRST_M_I2S9_8CH_RX>;
3166		reset-names = "rx-m";
3167		rockchip,capture-only;
3168		#sound-dai-cells = <0>;
3169		status = "disabled";
3170	};
3171
3172	spdif_rx0: spdif-rx@fde08000 {
3173		compatible = "rockchip,rk3588-spdifrx", "rockchip,rk3308-spdifrx";
3174		reg = <0x0 0xfde08000 0x0 0x1000>;
3175		interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
3176		clocks = <&cru MCLK_SPDIFRX0>, <&cru HCLK_SPDIFRX0>;
3177		clock-names = "mclk", "hclk";
3178		assigned-clocks = <&cru MCLK_SPDIFRX0>;
3179		assigned-clock-parents = <&cru PLL_AUPLL>;
3180		dmas = <&dmac0 21>;
3181		dma-names = "rx";
3182		power-domains = <&power RK3588_PD_VO1>;
3183		resets = <&cru SRST_M_SPDIFRX0>;
3184		reset-names = "spdifrx-m";
3185		#sound-dai-cells = <0>;
3186		status = "disabled";
3187	};
3188
3189	dsi0: dsi@fde20000 {
3190		compatible = "rockchip,rk3588-mipi-dsi2";
3191		reg = <0x0 0xfde20000 0x0 0x10000>;
3192		interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
3193		clocks = <&cru PCLK_DSIHOST0>, <&cru CLK_DSIHOST0>;
3194		clock-names = "pclk", "sys_clk";
3195		resets = <&cru SRST_P_DSIHOST0>;
3196		reset-names = "apb";
3197		power-domains = <&power RK3588_PD_VOP>;
3198		phys = <&mipi_dcphy0>;
3199		phy-names = "dcphy";
3200		rockchip,grf = <&vop_grf>;
3201		#address-cells = <1>;
3202		#size-cells = <0>;
3203		status = "disabled";
3204
3205		ports {
3206			#address-cells = <1>;
3207			#size-cells = <0>;
3208
3209			dsi0_in: port@0 {
3210				reg = <0>;
3211				#address-cells = <1>;
3212				#size-cells = <0>;
3213
3214				dsi0_in_vp2: endpoint@0 {
3215					reg = <0>;
3216					remote-endpoint = <&vp2_out_dsi0>;
3217					status = "disabled";
3218				};
3219
3220				dsi0_in_vp3: endpoint@1 {
3221					reg = <1>;
3222					remote-endpoint = <&vp3_out_dsi0>;
3223					status = "disabled";
3224				};
3225			};
3226		};
3227	};
3228
3229	dsi1: dsi@fde30000 {
3230		compatible = "rockchip,rk3588-mipi-dsi2";
3231		reg = <0x0 0xfde30000 0x0 0x10000>;
3232		interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
3233		clocks = <&cru PCLK_DSIHOST1>, <&cru CLK_DSIHOST1>;
3234		clock-names = "pclk", "sys_clk";
3235		resets = <&cru SRST_P_DSIHOST1>;
3236		reset-names = "apb";
3237		power-domains = <&power RK3588_PD_VOP>;
3238		phys = <&mipi_dcphy1>;
3239		phy-names = "dcphy";
3240		rockchip,grf = <&vop_grf>;
3241		#address-cells = <1>;
3242		#size-cells = <0>;
3243		status = "disabled";
3244
3245		ports {
3246			#address-cells = <1>;
3247			#size-cells = <0>;
3248
3249			dsi1_in: port@0 {
3250				reg = <0>;
3251				#address-cells = <1>;
3252				#size-cells = <0>;
3253
3254				dsi1_in_vp2: endpoint@0 {
3255					reg = <0>;
3256					remote-endpoint = <&vp2_out_dsi1>;
3257					status = "disabled";
3258				};
3259
3260				dsi1_in_vp3: endpoint@1 {
3261					reg = <1>;
3262					remote-endpoint = <&vp3_out_dsi1>;
3263					status = "disabled";
3264				};
3265			};
3266		};
3267	};
3268
3269	dp0: dp@fde50000 {
3270		compatible = "rockchip,rk3588-dp";
3271		reg = <0x0 0xfde50000 0x0 0x4000>;
3272		interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
3273		clocks = <&cru PCLK_DP0>, <&cru CLK_AUX16M_0>, <&hclk_vo0>;
3274		clock-names = "apb", "aux", "hclk";
3275		assigned-clocks = <&cru CLK_AUX16M_0>;
3276		assigned-clock-rates = <16000000>;
3277		resets = <&cru SRST_DP0>;
3278		phys = <&usbdp_phy0_dp>;
3279		power-domains = <&power RK3588_PD_VO0>;
3280		status = "disabled";
3281
3282		ports {
3283			#address-cells = <1>;
3284			#size-cells = <0>;
3285
3286			dp0_in: port@0 {
3287				reg = <0>;
3288				#address-cells = <1>;
3289				#size-cells = <0>;
3290
3291				dp0_in_vp0: endpoint@0 {
3292					reg = <0>;
3293					remote-endpoint = <&vp0_out_dp0>;
3294					status = "disabled";
3295				};
3296
3297				dp0_in_vp1: endpoint@1 {
3298					reg = <1>;
3299					remote-endpoint = <&vp1_out_dp0>;
3300					status = "disabled";
3301				};
3302
3303				dp0_in_vp2: endpoint@2 {
3304					reg = <2>;
3305					remote-endpoint = <&vp2_out_dp0>;
3306					status = "disabled";
3307				};
3308			};
3309		};
3310	};
3311
3312	hdmi0: hdmi@fde80000 {
3313		compatible = "rockchip,rk3588-dw-hdmi";
3314		reg = <0x0 0xfde80000 0x0 0x20000>;
3315		interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
3316			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
3317			     <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
3318			     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
3319			     <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
3320		clocks = <&cru PCLK_HDMITX0>,
3321			 <&cru CLK_HDMIHDP0>,
3322			 <&cru CLK_HDMITX0_EARC>,
3323			 <&cru CLK_HDMITX0_REF>,
3324			 <&cru MCLK_I2S5_8CH_TX>,
3325			 <&hclk_vo1>;
3326		clock-names = "pclk", "hpd", "earc", "hdmitx_ref", "aud", "hclk_vo1";
3327		resets = <&cru SRST_HDMITX0_REF>, <&cru SRST_HDMIHDP0>;
3328		reset-names = "ref", "hdp";
3329		power-domains = <&power RK3588_PD_VO1>;
3330		pinctrl-names = "default";
3331		pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd &hdmim0_tx0_scl &hdmim0_tx0_sda>;
3332		reg-io-width = <4>;
3333		rockchip,grf = <&sys_grf>;
3334		rockchip,vo1_grf = <&vo1_grf>;
3335		phys = <&hdptxphy_hdmi0>;
3336		phy-names = "hdmi";
3337		#sound-dai-cells = <0>;
3338		status = "disabled";
3339
3340		ports {
3341			#address-cells = <1>;
3342			#size-cells = <0>;
3343
3344			hdmi0_in: port@0 {
3345				reg = <0>;
3346				#address-cells = <1>;
3347				#size-cells = <0>;
3348
3349				hdmi0_in_vp0: endpoint@0 {
3350					reg = <0>;
3351					remote-endpoint = <&vp0_out_hdmi0>;
3352					status = "disabled";
3353				};
3354
3355				hdmi0_in_vp1: endpoint@1 {
3356					reg = <1>;
3357					remote-endpoint = <&vp1_out_hdmi0>;
3358					status = "disabled";
3359				};
3360
3361				hdmi0_in_vp2: endpoint@2 {
3362					reg = <2>;
3363					remote-endpoint = <&vp2_out_hdmi0>;
3364					status = "disabled";
3365				};
3366			};
3367		};
3368	};
3369
3370	edp0: edp@fdec0000 {
3371		compatible = "rockchip,rk3588-edp";
3372		reg = <0x0 0xfdec0000 0x0 0x1000>;
3373		interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
3374		clocks = <&cru CLK_EDP0_24M>, <&cru PCLK_EDP0>,
3375			 <&cru CLK_EDP0_200M>, <&hclk_vo1>;
3376		clock-names = "dp", "pclk", "spdif", "hclk";
3377		resets = <&cru SRST_EDP0_24M>, <&cru SRST_P_EDP0>;
3378		reset-names = "dp", "apb";
3379		phys = <&hdptxphy0>;
3380		phy-names = "dp";
3381		power-domains = <&power RK3588_PD_VO1>;
3382		rockchip,grf = <&vo1_grf>;
3383		status = "disabled";
3384
3385		ports {
3386			#address-cells = <1>;
3387			#size-cells = <0>;
3388
3389			edp0_in: port@0 {
3390				reg = <0>;
3391				#address-cells = <1>;
3392				#size-cells = <0>;
3393
3394				edp0_in_vp0: endpoint@0 {
3395					reg = <0>;
3396					remote-endpoint = <&vp0_out_edp0>;
3397					status = "disabled";
3398				};
3399
3400				edp0_in_vp1: endpoint@1 {
3401					reg = <1>;
3402					remote-endpoint = <&vp1_out_edp0>;
3403					status = "disabled";
3404				};
3405
3406				edp0_in_vp2: endpoint@2 {
3407					reg = <2>;
3408					remote-endpoint = <&vp2_out_edp0>;
3409					status = "disabled";
3410				};
3411			};
3412		};
3413	};
3414
3415	qos_gpu_m0: qos@fdf35000 {
3416		compatible = "syscon";
3417		reg = <0x0 0xfdf35000 0x0 0x20>;
3418	};
3419
3420	qos_gpu_m1: qos@fdf35200 {
3421		compatible = "syscon";
3422		reg = <0x0 0xfdf35200 0x0 0x20>;
3423	};
3424
3425	qos_gpu_m2: qos@fdf35400 {
3426		compatible = "syscon";
3427		reg = <0x0 0xfdf35400 0x0 0x20>;
3428	};
3429
3430	qos_gpu_m3: qos@fdf35600 {
3431		compatible = "syscon";
3432		reg = <0x0 0xfdf35600 0x0 0x20>;
3433	};
3434
3435	qos_rga3_1: qos@fdf36000 {
3436		compatible = "syscon";
3437		reg = <0x0 0xfdf36000 0x0 0x20>;
3438	};
3439
3440	qos_sdio: qos@fdf39000 {
3441		compatible = "syscon";
3442		reg = <0x0 0xfdf39000 0x0 0x20>;
3443	};
3444
3445	qos_sdmmc: qos@fdf3d800 {
3446		compatible = "syscon";
3447		reg = <0x0 0xfdf3d800 0x0 0x20>;
3448	};
3449
3450	qos_usb3_1: qos@fdf3e000 {
3451		compatible = "syscon";
3452		reg = <0x0 0xfdf3e000 0x0 0x20>;
3453	};
3454
3455	qos_usb3_0: qos@fdf3e200 {
3456		compatible = "syscon";
3457		reg = <0x0 0xfdf3e200 0x0 0x20>;
3458	};
3459
3460	qos_usb2host_0: qos@fdf3e400 {
3461		compatible = "syscon";
3462		reg = <0x0 0xfdf3e400 0x0 0x20>;
3463	};
3464
3465	qos_usb2host_1: qos@fdf3e600 {
3466		compatible = "syscon";
3467		reg = <0x0 0xfdf3e600 0x0 0x20>;
3468	};
3469
3470	qos_fisheye0: qos@fdf40000 {
3471		compatible = "syscon";
3472		reg = <0x0 0xfdf40000 0x0 0x20>;
3473	};
3474
3475	qos_fisheye1: qos@fdf40200 {
3476		compatible = "syscon";
3477		reg = <0x0 0xfdf40200 0x0 0x20>;
3478	};
3479
3480	qos_isp0_mro: qos@fdf40400 {
3481		compatible = "syscon";
3482		reg = <0x0 0xfdf40400 0x0 0x20>;
3483	};
3484
3485	qos_isp0_mwo: qos@fdf40500 {
3486		compatible = "syscon";
3487		reg = <0x0 0xfdf40500 0x0 0x20>;
3488	};
3489
3490	qos_vicap_m0: qos@fdf40600 {
3491		compatible = "syscon";
3492		reg = <0x0 0xfdf40600 0x0 0x20>;
3493	};
3494
3495	qos_vicap_m1: qos@fdf40800 {
3496		compatible = "syscon";
3497		reg = <0x0 0xfdf40800 0x0 0x20>;
3498	};
3499
3500	qos_isp1_mwo: qos@fdf41000 {
3501		compatible = "syscon";
3502		reg = <0x0 0xfdf41000 0x0 0x20>;
3503	};
3504
3505	qos_isp1_mro: qos@fdf41100 {
3506		compatible = "syscon";
3507		reg = <0x0 0xfdf41100 0x0 0x20>;
3508	};
3509
3510	qos_rkvenc0_m0ro: qos@fdf60000 {
3511		compatible = "syscon";
3512		reg = <0x0 0xfdf60000 0x0 0x20>;
3513	};
3514
3515	qos_rkvenc0_m1ro: qos@fdf60200 {
3516		compatible = "syscon";
3517		reg = <0x0 0xfdf60200 0x0 0x20>;
3518	};
3519
3520	qos_rkvenc0_m2wo: qos@fdf60400 {
3521		compatible = "syscon";
3522		reg = <0x0 0xfdf60400 0x0 0x20>;
3523	};
3524
3525	qos_rkvenc1_m0ro: qos@fdf61000 {
3526		compatible = "syscon";
3527		reg = <0x0 0xfdf61000 0x0 0x20>;
3528	};
3529
3530	qos_rkvenc1_m1ro: qos@fdf61200 {
3531		compatible = "syscon";
3532		reg = <0x0 0xfdf61200 0x0 0x20>;
3533	};
3534
3535	qos_rkvenc1_m2wo: qos@fdf61400 {
3536		compatible = "syscon";
3537		reg = <0x0 0xfdf61400 0x0 0x20>;
3538	};
3539
3540	qos_rkvdec0: qos@fdf62000 {
3541		compatible = "syscon";
3542		reg = <0x0 0xfdf62000 0x0 0x20>;
3543	};
3544
3545	qos_rkvdec1: qos@fdf63000 {
3546		compatible = "syscon";
3547		reg = <0x0 0xfdf63000 0x0 0x20>;
3548	};
3549
3550	qos_av1: qos@fdf64000 {
3551		compatible = "syscon";
3552		reg = <0x0 0xfdf64000 0x0 0x20>;
3553	};
3554
3555	qos_iep: qos@fdf66000 {
3556		compatible = "syscon";
3557		reg = <0x0 0xfdf66000 0x0 0x20>;
3558	};
3559
3560	qos_jpeg_dec: qos@fdf66200 {
3561		compatible = "syscon";
3562		reg = <0x0 0xfdf66200 0x0 0x20>;
3563	};
3564
3565	qos_jpeg_enc0: qos@fdf66400 {
3566		compatible = "syscon";
3567		reg = <0x0 0xfdf66400 0x0 0x20>;
3568	};
3569
3570	qos_jpeg_enc1: qos@fdf66600 {
3571		compatible = "syscon";
3572		reg = <0x0 0xfdf66600 0x0 0x20>;
3573	};
3574
3575	qos_jpeg_enc2: qos@fdf66800 {
3576		compatible = "syscon";
3577		reg = <0x0 0xfdf66800 0x0 0x20>;
3578	};
3579
3580	qos_jpeg_enc3: qos@fdf66a00 {
3581		compatible = "syscon";
3582		reg = <0x0 0xfdf66a00 0x0 0x20>;
3583	};
3584
3585	qos_rga2_mro: qos@fdf66c00 {
3586		compatible = "syscon";
3587		reg = <0x0 0xfdf66c00 0x0 0x20>;
3588	};
3589
3590	qos_rga2_mwo: qos@fdf66e00 {
3591		compatible = "syscon";
3592		reg = <0x0 0xfdf66e00 0x0 0x20>;
3593	};
3594
3595	qos_rga3_0: qos@fdf67000 {
3596		compatible = "syscon";
3597		reg = <0x0 0xfdf67000 0x0 0x20>;
3598	};
3599
3600	qos_vdpu: qos@fdf67200 {
3601		compatible = "syscon";
3602		reg = <0x0 0xfdf67200 0x0 0x20>;
3603	};
3604
3605	qos_npu1: qos@fdf70000 {
3606		compatible = "syscon";
3607		reg = <0x0 0xfdf70000 0x0 0x20>;
3608	};
3609
3610	qos_npu2: qos@fdf71000 {
3611		compatible = "syscon";
3612		reg = <0x0 0xfdf71000 0x0 0x20>;
3613	};
3614
3615	qos_npu0_mwr: qos@fdf72000 {
3616		compatible = "syscon";
3617		reg = <0x0 0xfdf72000 0x0 0x20>;
3618	};
3619
3620	qos_npu0_mro: qos@fdf72200 {
3621		compatible = "syscon";
3622		reg = <0x0 0xfdf72200 0x0 0x20>;
3623	};
3624
3625	qos_mcu_npu: qos@fdf72400 {
3626		compatible = "syscon";
3627		reg = <0x0 0xfdf72400 0x0 0x20>;
3628	};
3629
3630	qos_hdcp0: qos@fdf80000 {
3631		compatible = "syscon";
3632		reg = <0x0 0xfdf80000 0x0 0x20>;
3633	};
3634
3635	qos_hdcp1: qos@fdf81000 {
3636		compatible = "syscon";
3637		reg = <0x0 0xfdf81000 0x0 0x20>;
3638	};
3639
3640	qos_hdmirx: qos@fdf81200 {
3641		compatible = "syscon";
3642		reg = <0x0 0xfdf81200 0x0 0x20>;
3643	};
3644
3645	qos_vop_m0: qos@fdf82000 {
3646		compatible = "syscon";
3647		reg = <0x0 0xfdf82000 0x0 0x20>;
3648	};
3649
3650	qos_vop_m1: qos@fdf82200 {
3651		compatible = "syscon";
3652		reg = <0x0 0xfdf82200 0x0 0x20>;
3653	};
3654
3655	dfi: dfi@fe060000 {
3656		reg = <0x00 0xfe060000 0x00 0x10000>;
3657		compatible = "rockchip,rk3588-dfi";
3658		rockchip,pmu_grf = <&pmu1_grf>;
3659		status = "disabled";
3660	};
3661
3662	pcie2x1l1: pcie@fe180000 {
3663		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
3664		#address-cells = <3>;
3665		#size-cells = <2>;
3666		bus-range = <0x30 0x3f>;
3667		clocks = <&cru ACLK_PCIE_1L1_MSTR>, <&cru ACLK_PCIE_1L1_SLV>,
3668			 <&cru ACLK_PCIE_1L1_DBI>, <&cru PCLK_PCIE_1L1>,
3669			 <&cru CLK_PCIE_AUX3>, <&cru CLK_PCIE1L1_PIPE>;
3670		clock-names = "aclk_mst", "aclk_slv",
3671			      "aclk_dbi", "pclk",
3672			      "aux", "pipe";
3673		device_type = "pci";
3674		interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
3675			     <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
3676			     <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
3677			     <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
3678			     <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
3679		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
3680		#interrupt-cells = <1>;
3681		interrupt-map-mask = <0 0 0 7>;
3682		interrupt-map = <0 0 0 1 &pcie2x1l1_intc 0>,
3683				<0 0 0 2 &pcie2x1l1_intc 1>,
3684				<0 0 0 3 &pcie2x1l1_intc 2>,
3685				<0 0 0 4 &pcie2x1l1_intc 3>;
3686		linux,pci-domain = <3>;
3687		num-ib-windows = <8>;
3688		num-ob-windows = <8>;
3689		num-viewport = <4>;
3690		max-link-speed = <2>;
3691		msi-map = <0x3000 &its0 0x3000 0x1000>;
3692		num-lanes = <1>;
3693		phys = <&combphy2_psu PHY_TYPE_PCIE>;
3694		phy-names = "pcie-phy";
3695		ranges = <0x00000800 0x0 0xf3000000 0x0 0xf3000000 0x0 0x100000
3696			  0x81000000 0x0 0xf3100000 0x0 0xf3100000 0x0 0x100000
3697			  0x82000000 0x0 0xf3200000 0x0 0xf3200000 0x0 0xe00000
3698			  0xc3000000 0x9 0xc0000000 0x9 0xc0000000 0x0 0x40000000>;
3699		reg = <0x0 0xfe180000 0x0 0x10000>,
3700		      <0xa 0x40c00000 0x0 0x400000>;
3701		reg-names = "pcie-apb", "pcie-dbi";
3702		resets = <&cru SRST_PCIE3_POWER_UP>;
3703		reset-names = "pipe";
3704		rockchip,pipe-grf = <&php_grf>;
3705		status = "disabled";
3706
3707		pcie2x1l1_intc: legacy-interrupt-controller {
3708			interrupt-controller;
3709			#address-cells = <0>;
3710			#interrupt-cells = <1>;
3711			interrupt-parent = <&gic>;
3712			interrupts = <GIC_SPI 245 IRQ_TYPE_EDGE_RISING>;
3713		};
3714	};
3715
3716	pcie2x1l2: pcie@fe190000 {
3717		compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
3718		#address-cells = <3>;
3719		#size-cells = <2>;
3720		bus-range = <0x40 0x4f>;
3721		clocks = <&cru ACLK_PCIE_1L2_MSTR>, <&cru ACLK_PCIE_1L2_SLV>,
3722			 <&cru ACLK_PCIE_1L2_DBI>, <&cru PCLK_PCIE_1L2>,
3723			 <&cru CLK_PCIE_AUX4>, <&cru CLK_PCIE1L2_PIPE>;
3724		clock-names = "aclk_mst", "aclk_slv",
3725			      "aclk_dbi", "pclk",
3726			      "aux", "pipe";
3727		device_type = "pci";
3728		interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
3729			     <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
3730			     <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
3731			     <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
3732			     <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
3733		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
3734		#interrupt-cells = <1>;
3735		interrupt-map-mask = <0 0 0 7>;
3736		interrupt-map = <0 0 0 1 &pcie2x1l2_intc 0>,
3737				<0 0 0 2 &pcie2x1l2_intc 1>,
3738				<0 0 0 3 &pcie2x1l2_intc 2>,
3739				<0 0 0 4 &pcie2x1l2_intc 3>;
3740		linux,pci-domain = <4>;
3741		num-ib-windows = <8>;
3742		num-ob-windows = <8>;
3743		num-viewport = <4>;
3744		max-link-speed = <2>;
3745		msi-map = <0x4000 &its0 0x4000 0x1000>;
3746		num-lanes = <1>;
3747		phys = <&combphy0_ps PHY_TYPE_PCIE>;
3748		phy-names = "pcie-phy";
3749		ranges = <0x00000800 0x0 0xf4000000 0x0 0xf4000000 0x0 0x100000
3750			  0x81000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x100000
3751			  0x82000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0xe00000
3752			  0xc3000000 0xa 0x00000000 0xa 0x00000000 0x0 0x40000000>;
3753		reg = <0x0 0xfe190000 0x0 0x10000>,
3754		      <0xa 0x41000000 0x0 0x400000>;
3755		reg-names = "pcie-apb", "pcie-dbi";
3756		resets = <&cru SRST_PCIE4_POWER_UP>;
3757		reset-names = "pipe";
3758		rockchip,pipe-grf = <&php_grf>;
3759		status = "disabled";
3760
3761		pcie2x1l2_intc: legacy-interrupt-controller {
3762			interrupt-controller;
3763			#address-cells = <0>;
3764			#interrupt-cells = <1>;
3765			interrupt-parent = <&gic>;
3766			interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING>;
3767		};
3768	};
3769
3770	gmac1: ethernet@fe1c0000 {
3771		compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
3772		reg = <0x0 0xfe1c0000 0x0 0x10000>;
3773		interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>,
3774			     <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
3775		interrupt-names = "macirq", "eth_wake_irq";
3776		rockchip,grf = <&sys_grf>;
3777		rockchip,php_grf = <&php_grf>;
3778		clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
3779			 <&cru PCLK_GMAC1>, <&cru ACLK_GMAC1>,
3780			 <&cru CLK_GMAC1_PTP_REF>;
3781		clock-names = "stmmaceth", "clk_mac_ref",
3782			      "pclk_mac", "aclk_mac",
3783			      "ptp_ref";
3784		resets = <&cru SRST_A_GMAC1>;
3785		reset-names = "stmmaceth";
3786		power-domains = <&power RK3588_PD_GMAC>;
3787
3788		snps,mixed-burst;
3789		snps,tso;
3790
3791		snps,axi-config = <&gmac1_stmmac_axi_setup>;
3792		snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
3793		snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
3794		status = "disabled";
3795
3796		mdio1: mdio {
3797			compatible = "snps,dwmac-mdio";
3798			#address-cells = <0x1>;
3799			#size-cells = <0x0>;
3800		};
3801
3802		gmac1_stmmac_axi_setup: stmmac-axi-config {
3803			snps,wr_osr_lmt = <4>;
3804			snps,rd_osr_lmt = <8>;
3805			snps,blen = <0 0 0 0 16 8 4>;
3806		};
3807
3808		gmac1_mtl_rx_setup: rx-queues-config {
3809			snps,rx-queues-to-use = <2>;
3810			queue0 {};
3811			queue1 {};
3812		};
3813
3814		gmac1_mtl_tx_setup: tx-queues-config {
3815			snps,tx-queues-to-use = <2>;
3816			queue0 {};
3817			queue1 {};
3818		};
3819	};
3820
3821	sata0: sata@fe210000 {
3822		compatible = "rockchip,rk-ahci", "snps,dwc-ahci";
3823		reg = <0 0xfe210000 0 0x1000>;
3824		clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>,
3825			 <&cru CLK_RXOOB0>, <&cru CLK_PIPEPHY0_REF>,
3826			 <&cru CLK_PIPEPHY0_PIPE_ASIC_G>;
3827		clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
3828		interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>;
3829		interrupt-names = "hostc";
3830		phys = <&combphy0_ps PHY_TYPE_SATA>;
3831		phy-names = "sata-phy";
3832		ports-implemented = <0x1>;
3833		status = "disabled";
3834	};
3835
3836	sata2: sata@fe230000 {
3837		compatible = "rockchip,rk-ahci", "snps,dwc-ahci";
3838		reg = <0 0xfe230000 0 0x1000>;
3839		clocks = <&cru ACLK_SATA2>, <&cru CLK_PMALIVE2>,
3840			 <&cru CLK_RXOOB2>, <&cru CLK_PIPEPHY2_REF>,
3841			 <&cru CLK_PIPEPHY2_PIPE_ASIC_G>;
3842		clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
3843		interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>;
3844		interrupt-names = "hostc";
3845		phys = <&combphy2_psu PHY_TYPE_SATA>;
3846		phy-names = "sata-phy";
3847		ports-implemented = <0x1>;
3848		status = "disabled";
3849	};
3850
3851	sfc: spi@fe2b0000 {
3852		compatible = "rockchip,sfc";
3853		reg = <0x0 0xfe2b0000 0x0 0x4000>;
3854		interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
3855		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
3856		clock-names = "clk_sfc", "hclk_sfc";
3857		assigned-clocks = <&cru SCLK_SFC>;
3858		assigned-clock-rates = <100000000>;
3859		#address-cells = <1>;
3860		#size-cells = <0>;
3861		status = "disabled";
3862	};
3863
3864	sdmmc: mmc@fe2c0000 {
3865		compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
3866		reg = <0x0 0xfe2c0000 0x0 0x4000>;
3867		interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
3868		clocks = <&scmi_clk SCMI_HCLK_SD>, <&scmi_clk SCMI_CCLK_SD>,
3869			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
3870		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
3871		fifo-depth = <0x100>;
3872		max-frequency = <200000000>;
3873		pinctrl-names = "default";
3874		pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
3875		power-domains = <&power RK3588_PD_SDMMC>;
3876		status = "disabled";
3877	};
3878
3879	sdio: mmc@fe2d0000 {
3880		compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
3881		reg = <0x0 0xfe2d0000 0x0 0x4000>;
3882		interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
3883		clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>,
3884			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
3885		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
3886		fifo-depth = <0x100>;
3887		max-frequency = <200000000>;
3888		pinctrl-names = "default";
3889		pinctrl-0 = <&sdiom1_pins>;
3890		power-domains = <&power RK3588_PD_SDIO>;
3891		status = "disabled";
3892	};
3893
3894	sdhci: mmc@fe2e0000 {
3895		compatible = "rockchip,rk3588-dwcmshc", "rockchip,dwcmshc-sdhci";
3896		reg = <0x0 0xfe2e0000 0x0 0x10000>;
3897		interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
3898		assigned-clocks = <&cru BCLK_EMMC>, <&cru TMCLK_EMMC>, <&cru CCLK_EMMC>;
3899		assigned-clock-rates = <200000000>, <24000000>, <200000000>;
3900		clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
3901			 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
3902			 <&cru TMCLK_EMMC>;
3903		clock-names = "core", "bus", "axi", "block", "timer";
3904		max-frequency = <200000000>;
3905		status = "disabled";
3906	};
3907
3908	crypto: crypto@fe370000 {
3909		compatible = "rockchip,rk3588-crypto";
3910		reg = <0x0 0xfe370000 0x0 0x2000>;
3911		interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
3912		clocks = <&scmi_clk SCMI_ACLK_SECURE_NS>, <&scmi_clk SCMI_HCLK_SECURE_NS>,
3913			 <&scmi_clk SCMI_CRYPTO_CORE>, <&scmi_clk SCMI_CRYPTO_PKA>;
3914		clock-names = "aclk", "hclk", "sclk", "pka";
3915		resets = <&scmi_reset SRST_CRYPTO_CORE>;
3916		reset-names = "crypto-rst";
3917		status = "disabled";
3918	};
3919
3920	rng: rng@fe378000 {
3921		compatible = "rockchip,trngv1";
3922		reg = <0x0 0xfe378000 0x0 0x200>;
3923		interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>;
3924		clocks = <&scmi_clk SCMI_HCLK_SECURE_NS>;
3925		clock-names = "hclk_trng";
3926		resets = <&scmi_reset SRST_H_TRNG_NS>;
3927		reset-names = "reset";
3928		status = "disabled";
3929	};
3930
3931	i2s0_8ch: i2s@fe470000 {
3932		compatible = "rockchip,rk3588-i2s-tdm";
3933		reg = <0x0 0xfe470000 0x0 0x1000>;
3934		interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
3935		clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
3936		clock-names = "mclk_tx", "mclk_rx", "hclk";
3937		assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>;
3938		assigned-clock-parents = <&cru PLL_AUPLL>, <&cru PLL_AUPLL>;
3939		dmas = <&dmac0 0>, <&dmac0 1>;
3940		dma-names = "tx", "rx";
3941		power-domains = <&power RK3588_PD_AUDIO>;
3942		resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
3943		reset-names = "tx-m", "rx-m";
3944		rockchip,clk-trcm = <1>;
3945		pinctrl-names = "default";
3946		pinctrl-0 = <&i2s0_lrck
3947			     &i2s0_sclk
3948			     &i2s0_sdi0
3949			     &i2s0_sdi1
3950			     &i2s0_sdi2
3951			     &i2s0_sdi3
3952			     &i2s0_sdo0
3953			     &i2s0_sdo1
3954			     &i2s0_sdo2
3955			     &i2s0_sdo3>;
3956		#sound-dai-cells = <0>;
3957		status = "disabled";
3958	};
3959
3960	i2s1_8ch: i2s@fe480000 {
3961		compatible = "rockchip,rk3588-i2s-tdm";
3962		reg = <0x0 0xfe480000 0x0 0x1000>;
3963		interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
3964		clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
3965		clock-names = "mclk_tx", "mclk_rx", "hclk";
3966		dmas = <&dmac0 2>, <&dmac0 3>;
3967		dma-names = "tx", "rx";
3968		resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
3969		reset-names = "tx-m", "rx-m";
3970		rockchip,clk-trcm = <1>;
3971		pinctrl-names = "default";
3972		pinctrl-0 = <&i2s1m0_lrck
3973			     &i2s1m0_sclk
3974			     &i2s1m0_sdi0
3975			     &i2s1m0_sdi1
3976			     &i2s1m0_sdi2
3977			     &i2s1m0_sdi3
3978			     &i2s1m0_sdo0
3979			     &i2s1m0_sdo1
3980			     &i2s1m0_sdo2
3981			     &i2s1m0_sdo3>;
3982		#sound-dai-cells = <0>;
3983		status = "disabled";
3984	};
3985
3986	i2s2_2ch: i2s@fe490000 {
3987		compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
3988		reg = <0x0 0xfe490000 0x0 0x1000>;
3989		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
3990		clocks = <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
3991		clock-names = "i2s_clk", "i2s_hclk";
3992		assigned-clocks = <&cru CLK_I2S2_2CH_SRC>;
3993		assigned-clock-parents = <&cru PLL_AUPLL>;
3994		dmas = <&dmac1 0>, <&dmac1 1>;
3995		dma-names = "tx", "rx";
3996		power-domains = <&power RK3588_PD_AUDIO>;
3997		rockchip,clk-trcm = <1>;
3998		pinctrl-names = "default";
3999		pinctrl-0 = <&i2s2m1_lrck
4000			     &i2s2m1_sclk
4001			     &i2s2m1_sdi
4002			     &i2s2m1_sdo>;
4003		#sound-dai-cells = <0>;
4004		status = "disabled";
4005	};
4006
4007	i2s3_2ch: i2s@fe4a0000 {
4008		compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
4009		reg = <0x0 0xfe4a0000 0x0 0x1000>;
4010		interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
4011		clocks = <&cru MCLK_I2S3_2CH>, <&cru HCLK_I2S3_2CH>;
4012		clock-names = "i2s_clk", "i2s_hclk";
4013		assigned-clocks = <&cru CLK_I2S3_2CH_SRC>;
4014		assigned-clock-parents = <&cru PLL_AUPLL>;
4015		dmas = <&dmac1 2>, <&dmac1 3>;
4016		dma-names = "tx", "rx";
4017		power-domains = <&power RK3588_PD_AUDIO>;
4018		rockchip,clk-trcm = <1>;
4019		pinctrl-names = "default";
4020		pinctrl-0 = <&i2s3_lrck
4021			     &i2s3_sclk
4022			     &i2s3_sdi
4023			     &i2s3_sdo>;
4024		#sound-dai-cells = <0>;
4025		status = "disabled";
4026	};
4027
4028	pdm0: pdm@fe4b0000 {
4029		compatible = "rockchip,rk3588-pdm";
4030		reg = <0x0 0xfe4b0000 0x0 0x1000>;
4031		clocks = <&cru MCLK_PDM0>, <&cru HCLK_PDM0>;
4032		clock-names = "pdm_clk", "pdm_hclk";
4033		dmas = <&dmac0 4>;
4034		dma-names = "rx";
4035		pinctrl-names = "default";
4036		pinctrl-0 = <&pdm0m0_clk
4037			     &pdm0m0_clk1
4038			     &pdm0m0_sdi0
4039			     &pdm0m0_sdi1
4040			     &pdm0m0_sdi2
4041			     &pdm0m0_sdi3>;
4042		#sound-dai-cells = <0>;
4043		status = "disabled";
4044	};
4045
4046	pdm1: pdm@fe4c0000 {
4047		compatible = "rockchip,rk3588-pdm";
4048		reg = <0x0 0xfe4c0000 0x0 0x1000>;
4049		clocks = <&cru MCLK_PDM1>, <&cru HCLK_PDM1>;
4050		clock-names = "pdm_clk", "pdm_hclk";
4051		assigned-clocks = <&cru MCLK_PDM1>;
4052		assigned-clock-parents = <&cru PLL_AUPLL>;
4053		dmas = <&dmac1 4>;
4054		dma-names = "rx";
4055		power-domains = <&power RK3588_PD_AUDIO>;
4056		pinctrl-names = "default";
4057		pinctrl-0 = <&pdm1m0_clk
4058			     &pdm1m0_clk1
4059			     &pdm1m0_sdi0
4060			     &pdm1m0_sdi1
4061			     &pdm1m0_sdi2
4062			     &pdm1m0_sdi3>;
4063		#sound-dai-cells = <0>;
4064		status = "disabled";
4065	};
4066
4067	vad: vad@fe4d0000 {
4068		compatible = "rockchip,rk3588-vad";
4069		reg = <0x0 0xfe4d0000 0x0 0x1000>;
4070		reg-names = "vad";
4071		clocks = <&cru HCLK_VAD>;
4072		clock-names = "hclk";
4073		interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
4074		rockchip,audio-src = <0>;
4075		rockchip,det-channel = <0>;
4076		rockchip,mode = <0>;
4077		#sound-dai-cells = <0>;
4078		status = "disabled";
4079	};
4080
4081	spdif_tx0: spdif-tx@fe4e0000 {
4082		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
4083		reg = <0x0 0xfe4e0000 0x0 0x1000>;
4084		interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
4085		dmas = <&dmac0 5>;
4086		dma-names = "tx";
4087		clock-names = "mclk", "hclk";
4088		clocks = <&cru MCLK_SPDIF0>, <&cru HCLK_SPDIF0>;
4089		assigned-clocks = <&cru CLK_SPDIF0_SRC>;
4090		assigned-clock-parents = <&cru PLL_AUPLL>;
4091		power-domains = <&power RK3588_PD_AUDIO>;
4092		pinctrl-names = "default";
4093		pinctrl-0 = <&spdif0m0_tx>;
4094		#sound-dai-cells = <0>;
4095		status = "disabled";
4096	};
4097
4098	spdif_tx1: spdif-tx@fe4f0000 {
4099		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
4100		reg = <0x0 0xfe4f0000 0x0 0x1000>;
4101		interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
4102		dmas = <&dmac1 5>;
4103		dma-names = "tx";
4104		clock-names = "mclk", "hclk";
4105		clocks = <&cru MCLK_SPDIF1>, <&cru HCLK_SPDIF1>;
4106		assigned-clocks = <&cru CLK_SPDIF1_SRC>;
4107		assigned-clock-parents = <&cru PLL_AUPLL>;
4108		power-domains = <&power RK3588_PD_AUDIO>;
4109		pinctrl-names = "default";
4110		pinctrl-0 = <&spdif1m0_tx>;
4111		#sound-dai-cells = <0>;
4112		status = "disabled";
4113	};
4114
4115	acdcdig_dsm: codec-digital@fe500000 {
4116		compatible = "rockchip,rk3588-codec-digital", "rockchip,codec-digital-v1";
4117		reg = <0x0 0xfe500000 0x0 0x1000>;
4118		clocks = <&cru CLK_DAC_ACDCDIG>, <&cru PCLK_ACDCDIG>;
4119		clock-names = "dac", "pclk";
4120		power-domains = <&power RK3588_PD_AUDIO>;
4121		resets = <&cru SRST_DAC_ACDCDIG>;
4122		reset-names = "reset" ;
4123		rockchip,grf = <&sys_grf>;
4124		rockchip,pwm-output-mode;
4125		pinctrl-names = "default";
4126		pinctrl-0 = <&auddsm_pins>;
4127		#sound-dai-cells = <0>;
4128		status = "disabled";
4129	};
4130
4131	hwlock: hwspinlock@fe5a0000 {
4132		compatible = "rockchip,hwspinlock";
4133		reg = <0 0xfe5a0000 0 0x100>;
4134		#hwlock-cells = <1>;
4135	};
4136
4137	gic: interrupt-controller@fe600000 {
4138		compatible = "arm,gic-v3";
4139		#interrupt-cells = <3>;
4140		#address-cells = <2>;
4141		#size-cells = <2>;
4142		ranges;
4143		interrupt-controller;
4144
4145		reg = <0x0 0xfe600000 0 0x10000>, /* GICD */
4146		      <0x0 0xfe680000 0 0x100000>; /* GICR */
4147		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
4148		its0: msi-controller@fe640000 {
4149			compatible = "arm,gic-v3-its";
4150			msi-controller;
4151			#msi-cells = <1>;
4152			reg = <0x0 0xfe640000 0x0 0x20000>;
4153		};
4154		its1: msi-controller@fe660000 {
4155			compatible = "arm,gic-v3-its";
4156			msi-controller;
4157			#msi-cells = <1>;
4158			reg = <0x0 0xfe660000 0x0 0x20000>;
4159		};
4160	};
4161
4162	dmac0: dma-controller@fea10000 {
4163		compatible = "arm,pl330", "arm,primecell";
4164		reg = <0x0 0xfea10000 0x0 0x4000>;
4165		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
4166			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
4167		clocks = <&cru ACLK_DMAC0>;
4168		clock-names = "apb_pclk";
4169		#dma-cells = <1>;
4170		arm,pl330-periph-burst;
4171	};
4172
4173	dmac1: dma-controller@fea30000 {
4174		compatible = "arm,pl330", "arm,primecell";
4175		reg = <0x0 0xfea30000 0x0 0x4000>;
4176		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
4177			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
4178		clocks = <&cru ACLK_DMAC1>;
4179		clock-names = "apb_pclk";
4180		#dma-cells = <1>;
4181		arm,pl330-periph-burst;
4182	};
4183
4184	can0: can@fea50000 {
4185		compatible = "rockchip,can-2.0";
4186		reg = <0x0 0xfea50000 0x0 0x1000>;
4187		iinterrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
4188		clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
4189		clock-names = "baudclk", "apb_pclk";
4190		resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
4191		reset-names = "can", "can-apb";
4192		pinctrl-names = "default";
4193		pinctrl-0 = <&can0m0_pins>;
4194		tx-fifo-depth = <1>;
4195		rx-fifo-depth = <6>;
4196		status = "disabled";
4197	};
4198
4199	can1: can@fea60000 {
4200		compatible = "rockchip,can-2.0";
4201		reg = <0x0 0xfea60000 0x0 0x1000>;
4202		interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
4203		clocks = <&cru CLK_CAN1>, <&cru PCLK_CAN1>;
4204		clock-names = "baudclk", "apb_pclk";
4205		resets = <&cru SRST_CAN1>, <&cru SRST_P_CAN1>;
4206		reset-names = "can", "can-apb";
4207		pinctrl-names = "default";
4208		pinctrl-0 = <&can1m0_pins>;
4209		tx-fifo-depth = <1>;
4210		rx-fifo-depth = <6>;
4211		status = "disabled";
4212	};
4213
4214	can2: can@fea70000 {
4215		compatible = "rockchip,can-2.0";
4216		reg = <0x0 0xfea70000 0x0 0x1000>;
4217		interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
4218		clocks = <&cru CLK_CAN2>, <&cru PCLK_CAN2>;
4219		clock-names = "baudclk", "apb_pclk";
4220		resets = <&cru SRST_CAN2>, <&cru SRST_P_CAN2>;
4221		reset-names = "can", "can-apb";
4222		pinctrl-names = "default";
4223		pinctrl-0 = <&can2m0_pins>;
4224		tx-fifo-depth = <1>;
4225		rx-fifo-depth = <6>;
4226		status = "disabled";
4227	};
4228
4229	hw_decompress: decompress@fea80000 {
4230		compatible = "rockchip,hw-decompress";
4231		reg = <0x0 0xfea80000 0x0 0x1000>;
4232		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
4233		clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>;
4234		clock-names = "aclk", "dclk", "pclk";
4235		resets = <&cru SRST_D_DECOM>;
4236		reset-names = "dresetn";
4237		status = "disabled";
4238	};
4239
4240	i2c1: i2c@fea90000 {
4241		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4242		reg = <0x0 0xfea90000 0x0 0x1000>;
4243		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
4244		clock-names = "i2c", "pclk";
4245		interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
4246		pinctrl-names = "default";
4247		pinctrl-0 = <&i2c1m0_xfer>;
4248		#address-cells = <1>;
4249		#size-cells = <0>;
4250		status = "disabled";
4251	};
4252
4253	i2c2: i2c@feaa0000 {
4254		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4255		reg = <0x0 0xfeaa0000 0x0 0x1000>;
4256		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
4257		clock-names = "i2c", "pclk";
4258		interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>;
4259		pinctrl-names = "default";
4260		pinctrl-0 = <&i2c2m0_xfer>;
4261		#address-cells = <1>;
4262		#size-cells = <0>;
4263		status = "disabled";
4264	};
4265
4266	i2c3: i2c@feab0000 {
4267		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4268		reg = <0x0 0xfeab0000 0x0 0x1000>;
4269		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
4270		clock-names = "i2c", "pclk";
4271		interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>;
4272		pinctrl-names = "default";
4273		pinctrl-0 = <&i2c3m0_xfer>;
4274		#address-cells = <1>;
4275		#size-cells = <0>;
4276		status = "disabled";
4277	};
4278
4279	i2c4: i2c@feac0000 {
4280		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4281		reg = <0x0 0xfeac0000 0x0 0x1000>;
4282		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
4283		clock-names = "i2c", "pclk";
4284		interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
4285		pinctrl-names = "default";
4286		pinctrl-0 = <&i2c4m0_xfer>;
4287		#address-cells = <1>;
4288		#size-cells = <0>;
4289		status = "disabled";
4290	};
4291
4292	i2c5: i2c@fead0000 {
4293		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4294		reg = <0x0 0xfead0000 0x0 0x1000>;
4295		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
4296		clock-names = "i2c", "pclk";
4297		interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>;
4298		pinctrl-names = "default";
4299		pinctrl-0 = <&i2c5m0_xfer>;
4300		#address-cells = <1>;
4301		#size-cells = <0>;
4302		status = "disabled";
4303	};
4304
4305	rktimer: timer@feae0000 {
4306		compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
4307		reg = <0x0 0xfeae0000 0x0 0x20>;
4308		interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>;
4309		clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
4310		clock-names = "pclk", "timer";
4311	};
4312
4313	wdt: watchdog@feaf0000 {
4314		compatible = "snps,dw-wdt";
4315		reg = <0x0 0xfeaf0000 0x0 0x100>;
4316		clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>;
4317		clock-names = "tclk", "pclk";
4318		interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>;
4319		status = "okay";
4320	};
4321
4322	spi0: spi@feb00000 {
4323		compatible = "rockchip,rk3066-spi";
4324		reg = <0x0 0xfeb00000 0x0 0x1000>;
4325		interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
4326		#address-cells = <1>;
4327		#size-cells = <0>;
4328		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
4329		clock-names = "spiclk", "apb_pclk";
4330		dmas = <&dmac0 14>, <&dmac0 15>;
4331		dma-names = "tx", "rx";
4332		pinctrl-names = "default";
4333		pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
4334		num-cs = <2>;
4335		status = "disabled";
4336	};
4337
4338	spi1: spi@feb10000 {
4339		compatible = "rockchip,rk3066-spi";
4340		reg = <0x0 0xfeb10000 0x0 0x1000>;
4341		interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
4342		#address-cells = <1>;
4343		#size-cells = <0>;
4344		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
4345		clock-names = "spiclk", "apb_pclk";
4346		dmas = <&dmac0 16>, <&dmac0 17>;
4347		dma-names = "tx", "rx";
4348		pinctrl-names = "default";
4349		pinctrl-0 = <&spi1m1_cs0 &spi1m1_cs1 &spi1m1_pins>;
4350		num-cs = <2>;
4351		status = "disabled";
4352	};
4353
4354	spi2: spi@feb20000 {
4355		compatible = "rockchip,rk3066-spi";
4356		reg = <0x0 0xfeb20000 0x0 0x1000>;
4357		interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
4358		#address-cells = <1>;
4359		#size-cells = <0>;
4360		clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
4361		clock-names = "spiclk", "apb_pclk";
4362		dmas = <&dmac1 15>, <&dmac1 16>;
4363		dma-names = "tx", "rx";
4364		pinctrl-names = "default";
4365		pinctrl-0 = <&spi2m2_cs0 &spi2m2_cs1 &spi2m2_pins>;
4366		num-cs = <2>;
4367		status = "disabled";
4368	};
4369
4370	spi3: spi@feb30000 {
4371		compatible = "rockchip,rk3066-spi";
4372		reg = <0x0 0xfeb30000 0x0 0x1000>;
4373		interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
4374		#address-cells = <1>;
4375		#size-cells = <0>;
4376		clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
4377		clock-names = "spiclk", "apb_pclk";
4378		dmas = <&dmac1 17>, <&dmac1 18>;
4379		dma-names = "tx", "rx";
4380		pinctrl-names = "default";
4381		pinctrl-0 = <&spi3m1_cs0 &spi3m1_cs1 &spi3m1_pins>;
4382		num-cs = <2>;
4383		status = "disabled";
4384	};
4385
4386	uart1: serial@feb40000 {
4387		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4388		reg = <0x0 0xfeb40000 0x0 0x100>;
4389		interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
4390		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
4391		clock-names = "baudclk", "apb_pclk";
4392		reg-shift = <2>;
4393		reg-io-width = <4>;
4394		dmas = <&dmac0 8>, <&dmac0 9>;
4395		pinctrl-names = "default";
4396		pinctrl-0 = <&uart1m1_xfer>;
4397		status = "disabled";
4398	};
4399
4400	uart2: serial@feb50000 {
4401		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4402		reg = <0x0 0xfeb50000 0x0 0x100>;
4403		interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>;
4404		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
4405		clock-names = "baudclk", "apb_pclk";
4406		reg-shift = <2>;
4407		reg-io-width = <4>;
4408		dmas = <&dmac0 10>, <&dmac0 11>;
4409		pinctrl-names = "default";
4410		pinctrl-0 = <&uart2m1_xfer>;
4411		status = "disabled";
4412	};
4413
4414	uart3: serial@feb60000 {
4415		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4416		reg = <0x0 0xfeb60000 0x0 0x100>;
4417		interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>;
4418		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
4419		clock-names = "baudclk", "apb_pclk";
4420		reg-shift = <2>;
4421		reg-io-width = <4>;
4422		dmas = <&dmac0 12>, <&dmac0 13>;
4423		pinctrl-names = "default";
4424		pinctrl-0 = <&uart3m1_xfer>;
4425		status = "disabled";
4426	};
4427
4428	uart4: serial@feb70000 {
4429		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4430		reg = <0x0 0xfeb70000 0x0 0x100>;
4431		interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>;
4432		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
4433		clock-names = "baudclk", "apb_pclk";
4434		reg-shift = <2>;
4435		reg-io-width = <4>;
4436		dmas = <&dmac1 9>, <&dmac1 10>;
4437		pinctrl-names = "default";
4438		pinctrl-0 = <&uart4m1_xfer>;
4439		status = "disabled";
4440	};
4441
4442	uart5: serial@feb80000 {
4443		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4444		reg = <0x0 0xfeb80000 0x0 0x100>;
4445		interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>;
4446		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
4447		clock-names = "baudclk", "apb_pclk";
4448		reg-shift = <2>;
4449		reg-io-width = <4>;
4450		dmas = <&dmac1 11>, <&dmac1 12>;
4451		pinctrl-names = "default";
4452		pinctrl-0 = <&uart5m1_xfer>;
4453		status = "disabled";
4454	};
4455
4456	uart6: serial@feb90000 {
4457		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4458		reg = <0x0 0xfeb90000 0x0 0x100>;
4459		interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
4460		clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
4461		clock-names = "baudclk", "apb_pclk";
4462		reg-shift = <2>;
4463		reg-io-width = <4>;
4464		dmas = <&dmac1 13>, <&dmac1 14>;
4465		pinctrl-names = "default";
4466		pinctrl-0 = <&uart6m1_xfer>;
4467		status = "disabled";
4468	};
4469
4470	uart7: serial@feba0000 {
4471		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4472		reg = <0x0 0xfeba0000 0x0 0x100>;
4473		interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
4474		clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
4475		clock-names = "baudclk", "apb_pclk";
4476		reg-shift = <2>;
4477		reg-io-width = <4>;
4478		dmas = <&dmac2 7>, <&dmac2 8>;
4479		pinctrl-names = "default";
4480		pinctrl-0 = <&uart7m1_xfer>;
4481		status = "disabled";
4482	};
4483
4484	uart8: serial@febb0000 {
4485		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4486		reg = <0x0 0xfebb0000 0x0 0x100>;
4487		interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
4488		clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
4489		clock-names = "baudclk", "apb_pclk";
4490		reg-shift = <2>;
4491		reg-io-width = <4>;
4492		dmas = <&dmac2 9>, <&dmac2 10>;
4493		pinctrl-names = "default";
4494		pinctrl-0 = <&uart8m1_xfer>;
4495		status = "disabled";
4496	};
4497
4498	uart9: serial@febc0000 {
4499		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
4500		reg = <0x0 0xfebc0000 0x0 0x100>;
4501		interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
4502		clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
4503		clock-names = "baudclk", "apb_pclk";
4504		reg-shift = <2>;
4505		reg-io-width = <4>;
4506		dmas = <&dmac2 11>, <&dmac2 12>;
4507		pinctrl-names = "default";
4508		pinctrl-0 = <&uart9m1_xfer>;
4509		status = "disabled";
4510	};
4511
4512	pwm4: pwm@febd0000 {
4513		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4514		reg = <0x0 0xfebd0000 0x0 0x10>;
4515		#pwm-cells = <3>;
4516		pinctrl-names = "active";
4517		pinctrl-0 = <&pwm4m0_pins>;
4518		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4519		clock-names = "pwm", "pclk";
4520		status = "disabled";
4521	};
4522
4523	pwm5: pwm@febd0010 {
4524		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4525		reg = <0x0 0xfebd0010 0x0 0x10>;
4526		#pwm-cells = <3>;
4527		pinctrl-names = "active";
4528		pinctrl-0 = <&pwm5m0_pins>;
4529		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4530		clock-names = "pwm", "pclk";
4531		status = "disabled";
4532	};
4533
4534	pwm6: pwm@febd0020 {
4535		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4536		reg = <0x0 0xfebd0020 0x0 0x10>;
4537		#pwm-cells = <3>;
4538		pinctrl-names = "active";
4539		pinctrl-0 = <&pwm6m0_pins>;
4540		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4541		clock-names = "pwm", "pclk";
4542		status = "disabled";
4543	};
4544
4545	pwm7: pwm@febd0030 {
4546		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4547		reg = <0x0 0xfebd0030 0x0 0x10>;
4548		interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>,
4549			     <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>;
4550		#pwm-cells = <3>;
4551		pinctrl-names = "active";
4552		pinctrl-0 = <&pwm7m0_pins>;
4553		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
4554		clock-names = "pwm", "pclk";
4555		status = "disabled";
4556	};
4557
4558	pwm8: pwm@febe0000 {
4559		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4560		reg = <0x0 0xfebe0000 0x0 0x10>;
4561		#pwm-cells = <3>;
4562		pinctrl-names = "active";
4563		pinctrl-0 = <&pwm8m0_pins>;
4564		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4565		clock-names = "pwm", "pclk";
4566		status = "disabled";
4567	};
4568
4569	pwm9: pwm@febe0010 {
4570		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4571		reg = <0x0 0xfebe0010 0x0 0x10>;
4572		#pwm-cells = <3>;
4573		pinctrl-names = "active";
4574		pinctrl-0 = <&pwm9m0_pins>;
4575		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4576		clock-names = "pwm", "pclk";
4577		status = "disabled";
4578	};
4579
4580	pwm10: pwm@febe0020 {
4581		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4582		reg = <0x0 0xfebe0020 0x0 0x10>;
4583		#pwm-cells = <3>;
4584		pinctrl-names = "active";
4585		pinctrl-0 = <&pwm10m0_pins>;
4586		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4587		clock-names = "pwm", "pclk";
4588		status = "disabled";
4589	};
4590
4591	pwm11: pwm@febe0030 {
4592		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4593		reg = <0x0 0xfebe0030 0x0 0x10>;
4594		interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
4595			     <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
4596		#pwm-cells = <3>;
4597		pinctrl-names = "active";
4598		pinctrl-0 = <&pwm11m0_pins>;
4599		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
4600		clock-names = "pwm", "pclk";
4601		status = "disabled";
4602	};
4603
4604	pwm12: pwm@febf0000 {
4605		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4606		reg = <0x0 0xfebf0000 0x0 0x10>;
4607		#pwm-cells = <3>;
4608		pinctrl-names = "active";
4609		pinctrl-0 = <&pwm12m0_pins>;
4610		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
4611		clock-names = "pwm", "pclk";
4612		status = "disabled";
4613	};
4614
4615	pwm13: pwm@febf0010 {
4616		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4617		reg = <0x0 0xfebf0010 0x0 0x10>;
4618		#pwm-cells = <3>;
4619		pinctrl-names = "active";
4620		pinctrl-0 = <&pwm13m0_pins>;
4621		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
4622		clock-names = "pwm", "pclk";
4623		status = "disabled";
4624	};
4625
4626	pwm14: pwm@febf0020 {
4627		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4628		reg = <0x0 0xfebf0020 0x0 0x10>;
4629		#pwm-cells = <3>;
4630		pinctrl-names = "active";
4631		pinctrl-0 = <&pwm14m0_pins>;
4632		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
4633		clock-names = "pwm", "pclk";
4634		status = "disabled";
4635	};
4636
4637	pwm15: pwm@febf0030 {
4638		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
4639		reg = <0x0 0xfebf0030 0x0 0x10>;
4640		interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
4641			     <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>;
4642		#pwm-cells = <3>;
4643		pinctrl-names = "active";
4644		pinctrl-0 = <&pwm15m0_pins>;
4645		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
4646		clock-names = "pwm", "pclk";
4647		status = "disabled";
4648	};
4649
4650	tsadc: tsadc@fec00000 {
4651		compatible = "rockchip,rk3588-tsadc";
4652		reg = <0x0 0xfec00000 0x0 0x400>;
4653		interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>;
4654		clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
4655		clock-names = "tsadc", "apb_pclk";
4656		assigned-clocks = <&cru CLK_TSADC>;
4657		assigned-clock-rates = <2000000>;
4658		resets = <&cru SRST_TSADC>, <&cru SRST_P_TSADC>;
4659		reset-names = "tsadc", "tsadc-apb";
4660		#thermal-sensor-cells = <1>;
4661		rockchip,hw-tshut-temp = <120000>;
4662		rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
4663		rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
4664		pinctrl-names = "gpio", "otpout";
4665		pinctrl-0 = <&tsadc_gpio_func>;
4666		pinctrl-1 = <&tsadc_shut>;
4667		status = "disabled";
4668	};
4669
4670	saradc: saradc@fec10000 {
4671		compatible = "rockchip,rk3588-saradc";
4672		reg = <0x0 0xfec10000 0x0 0x10000>;
4673		interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>;
4674		#io-channel-cells = <1>;
4675		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
4676		clock-names = "saradc", "apb_pclk";
4677		resets = <&cru SRST_P_SARADC>;
4678		reset-names = "saradc-apb";
4679		status = "disabled";
4680	};
4681
4682	mailbox0: mailbox@fec60000 {
4683		compatible = "rockchip,rk3588-mailbox",
4684			     "rockchip,rk3368-mailbox";
4685		reg = <0x0 0xfec60000 0x0 0x200>;
4686		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
4687			     <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
4688			     <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
4689			     <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
4690		clocks = <&cru PCLK_MAILBOX0>;
4691		clock-names = "pclk_mailbox";
4692		#mbox-cells = <1>;
4693		status = "disabled";
4694	};
4695
4696	mailbox1: mailbox@fec70000 {
4697		compatible = "rockchip,rk3588-mailbox",
4698			     "rockchip,rk3368-mailbox";
4699		reg = <0x0 0xfec70000 0x0 0x200>;
4700		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
4701			     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
4702			     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
4703			     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
4704		clocks = <&cru PCLK_MAILBOX1>;
4705		clock-names = "pclk_mailbox";
4706		#mbox-cells = <1>;
4707		status = "disabled";
4708	};
4709
4710	i2c6: i2c@fec80000 {
4711		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4712		reg = <0x0 0xfec80000 0x0 0x1000>;
4713		clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
4714		clock-names = "i2c", "pclk";
4715		interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
4716		pinctrl-names = "default";
4717		pinctrl-0 = <&i2c6m0_xfer>;
4718		#address-cells = <1>;
4719		#size-cells = <0>;
4720		status = "disabled";
4721	};
4722
4723	i2c7: i2c@fec90000 {
4724		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4725		reg = <0x0 0xfec90000 0x0 0x1000>;
4726		clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
4727		clock-names = "i2c", "pclk";
4728		interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>;
4729		pinctrl-names = "default";
4730		pinctrl-0 = <&i2c7m0_xfer>;
4731		#address-cells = <1>;
4732		#size-cells = <0>;
4733		status = "disabled";
4734	};
4735
4736	i2c8: i2c@feca0000 {
4737		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
4738		reg = <0x0 0xfeca0000 0x0 0x1000>;
4739		clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>;
4740		clock-names = "i2c", "pclk";
4741		interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>;
4742		pinctrl-names = "default";
4743		pinctrl-0 = <&i2c8m0_xfer>;
4744		#address-cells = <1>;
4745		#size-cells = <0>;
4746		status = "disabled";
4747	};
4748
4749	spi4: spi@fecb0000 {
4750		compatible = "rockchip,rk3066-spi";
4751		reg = <0x0 0xfecb0000 0x0 0x1000>;
4752		interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
4753		#address-cells = <1>;
4754		#size-cells = <0>;
4755		clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>;
4756		clock-names = "spiclk", "apb_pclk";
4757		dmas = <&dmac2 13>, <&dmac2 14>;
4758		dma-names = "tx", "rx";
4759		pinctrl-names = "default";
4760		pinctrl-0 = <&spi4m0_cs0 &spi4m0_cs1 &spi4m0_pins>;
4761		num-cs = <2>;
4762		status = "disabled";
4763	};
4764
4765	otp: otp@fecc0000 {
4766		compatible = "rockchip,rk3588-otp";
4767		reg = <0x0 0xfecc0000 0x0 0x400>;
4768		#address-cells = <1>;
4769		#size-cells = <1>;
4770		clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>,
4771			 <&cru CLK_OTPC_ARB>, <&cru CLK_OTP_PHY_G>;
4772		clock-names = "otpc", "apb", "arb", "phy";
4773		resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>,
4774			 <&cru SRST_OTPC_ARB>;
4775		reset-names = "otpc", "apb", "arb";
4776
4777		/* Data cells */
4778		cpu_code: cpu-code@2 {
4779			reg = <0x02 0x2>;
4780		};
4781		otp_id: id@7 {
4782			reg = <0x07 0x10>;
4783		};
4784		otp_cpu_version: cpu-version@1c {
4785			reg = <0x1c 0x1>;
4786			bits = <3 3>;
4787		};
4788	};
4789
4790	mailbox2: mailbox@fece0000 {
4791		compatible = "rockchip,rk3588-mailbox",
4792			     "rockchip,rk3368-mailbox";
4793		reg = <0x0 0xfece0000 0x0 0x200>;
4794		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
4795			     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
4796			     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
4797			     <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
4798		clocks = <&cru PCLK_MAILBOX2>;
4799		clock-names = "pclk_mailbox";
4800		#mbox-cells = <1>;
4801		status = "disabled";
4802	};
4803
4804	dmac2: dma-controller@fed10000 {
4805		compatible = "arm,pl330", "arm,primecell";
4806		reg = <0x0 0xfed10000 0x0 0x4000>;
4807		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
4808			     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
4809		clocks = <&cru ACLK_DMAC2>;
4810		clock-names = "apb_pclk";
4811		#dma-cells = <1>;
4812		arm,pl330-periph-burst;
4813	};
4814
4815	hdptxphy0: phy@fed60000 {
4816		compatible = "rockchip,rk3588-hdptx-phy";
4817		reg = <0x0 0xfed60000 0x0 0x2000>;
4818		clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>;
4819		clock-names = "ref", "apb";
4820		resets = <&cru SRST_P_HDPTX0>, <&cru SRST_HDPTX0_INIT>,
4821			 <&cru SRST_HDPTX0_CMN>, <&cru SRST_HDPTX0_LANE>;
4822		reset-names = "apb", "init", "cmn", "lane";
4823		rockchip,grf = <&hdptxphy0_grf>;
4824		#phy-cells = <0>;
4825		status = "disabled";
4826	};
4827
4828	hdptxphy_hdmi0: hdmiphy@fed60000 {
4829		compatible = "rockchip,rk3588-hdptx-phy-hdmi";
4830		reg = <0x0 0xfed60000 0x0 0x2000>;
4831		clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>;
4832		clock-names = "ref", "apb";
4833		resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>,
4834			 <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>,
4835			 <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>,
4836			 <&cru SRST_HDPTX0_LCPLL>;
4837		reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
4838			      "lcpll";
4839		rockchip,grf = <&hdptxphy0_grf>;
4840		#phy-cells = <0>;
4841		#clock-cells = <0>;
4842		status = "disabled";
4843	};
4844
4845	usbdp_phy0: phy@fed80000 {
4846		compatible = "rockchip,rk3588-usbdp-phy";
4847		reg = <0x0 0xfed80000 0x0 0x10000>;
4848		rockchip,u2phy-grf = <&usb2phy0_grf>;
4849		rockchip,usb-grf = <&usb_grf>;
4850		rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
4851		rockchip,vo-grf = <&vo0_grf>;
4852		clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
4853			 <&cru CLK_USBDP_PHY0_IMMORTAL>,
4854			 <&cru PCLK_USBDPPHY0>,
4855			 <&u2phy0>;
4856		clock-names = "refclk", "immortal", "pclk", "utmi";
4857		resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
4858			 <&cru SRST_USBDP_COMBO_PHY0_CMN>,
4859			 <&cru SRST_USBDP_COMBO_PHY0_LANE>,
4860			 <&cru SRST_USBDP_COMBO_PHY0_PCS>,
4861			 <&cru SRST_P_USBDPPHY0>;
4862		reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
4863		status = "disabled";
4864
4865		usbdp_phy0_dp: dp-port {
4866			#phy-cells = <0>;
4867			status = "disabled";
4868		};
4869
4870		usbdp_phy0_u3: u3-port {
4871			#phy-cells = <0>;
4872			status = "disabled";
4873		};
4874	};
4875
4876	mipi_dcphy0: phy@feda0000 {
4877		compatible = "rockchip,rk3588-mipi-dcphy";
4878		reg = <0x0 0xfeda0000 0x0 0xb00>;
4879		rockchip,grf = <&mipidcphy0_grf>;
4880		clocks = <&cru PCLK_MIPI_DCPHY0>,
4881			 <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>;
4882		clock-names = "pclk", "ref";
4883		resets = <&cru SRST_M_MIPI_DCPHY0>,
4884			 <&cru SRST_P_MIPI_DCPHY0>,
4885			 <&cru SRST_P_MIPI_DCPHY0_GRF>;
4886		reset-names = "phy", "apb", "grf";
4887		#phy-cells = <0>;
4888		status = "disabled";
4889	};
4890
4891/*
4892    mipi_dcphy0: phy@feda0000 {
4893        compatible = "rockchip,rk3588-mipi-dcphy";
4894        reg = <0x0 0xfeda0000 0x0 0x10000>;
4895        rockchip,grf = <&mipidcphy0_grf>;
4896        clocks = <&cru PCLK_MIPI_DCPHY0>,
4897             <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>;
4898        clock-names = "pclk", "ref";
4899        resets = <&cru SRST_M_MIPI_DCPHY0>,
4900             <&cru SRST_P_MIPI_DCPHY0>,
4901             <&cru SRST_P_MIPI_DCPHY0_GRF>,
4902             <&cru SRST_S_MIPI_DCPHY0>;
4903        reset-names = "m_phy", "apb", "grf", "s_phy";
4904        #phy-cells = <0>;
4905        status = "disabled";
4906    };
4907*/
4908
4909	csi2_dcphy0_hw: csi2-dcphy0-hw@feda0b00 {
4910		compatible = "rockchip,rk3588-csi2-dcphy-hw";
4911		reg = <0x0 0xfeda0b00 0x0 0xf500>;
4912		clocks = <&cru PCLK_MIPI_DCPHY0>;
4913		clock-names = "pclk";
4914		resets = <&cru SRST_S_MIPI_DCPHY0>;
4915		reset-names = "phy";
4916		rockchip,grf = <&mipidcphy0_grf>;
4917		status = "disabled";
4918	};
4919
4920	mipi_dcphy1: phy@fedb0000 {
4921		compatible = "rockchip,rk3588-mipi-dcphy";
4922		reg = <0x0 0xfedb0000 0x0 0xb00>;
4923		rockchip,grf = <&mipidcphy1_grf>;
4924		clocks = <&cru PCLK_MIPI_DCPHY1>,
4925			 <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>;
4926		clock-names = "pclk", "ref";
4927		resets = <&cru SRST_M_MIPI_DCPHY1>,
4928			 <&cru SRST_P_MIPI_DCPHY1>,
4929			 <&cru SRST_P_MIPI_DCPHY1_GRF>;
4930		reset-names = "phy", "apb", "grf";
4931		#phy-cells = <0>;
4932		status = "disabled";
4933	};
4934
4935	csi2_dcphy1_hw: csi2-dcphy1-hw@fedb0b00 {
4936		compatible = "rockchip,rk3588-csi2-dcphy-hw";
4937		reg = <0x0 0xfedb0b00 0x0 0xf500>;
4938		clocks = <&cru PCLK_MIPI_DCPHY1>;
4939		clock-names = "pclk";
4940		resets = <&cru SRST_S_MIPI_DCPHY1>;
4941		reset-names = "phy";
4942		rockchip,grf = <&mipidcphy1_grf>;
4943		status = "disabled";
4944	};
4945
4946	csi2_dphy0_hw: csi2-dphy0-hw@fedc0000 {
4947		compatible = "rockchip,rk3588-csi2-dphy-hw";
4948		reg = <0x0 0xfedc0000 0x0 0x8000>;
4949		clocks = <&cru PCLK_CSIPHY0>;
4950		clock-names = "pclk";
4951		resets = <&cru SRST_CSIPHY0>, <&cru SRST_P_CSIPHY0>;
4952		reset-names = "srst_csiphy0", "srst_p_csiphy0";
4953		rockchip,grf = <&mipidphy0_grf>;
4954		rockchip,sys_grf = <&sys_grf>;
4955		status = "disabled";
4956	};
4957
4958	combphy0_ps: phy@fee00000 {
4959		compatible = "rockchip,rk3588-naneng-combphy";
4960		reg = <0x0 0xfee00000 0x0 0x100>;
4961		#phy-cells = <1>;
4962		clocks = <&cru CLK_REF_PIPE_PHY0>, <&cru PCLK_PCIE_COMBO_PIPE_PHY0>,
4963			 <&cru PCLK_PHP_ROOT>;
4964		clock-names = "refclk", "apbclk", "phpclk";
4965		assigned-clocks = <&cru CLK_REF_PIPE_PHY0>;
4966		assigned-clock-rates = <100000000>;
4967		resets = <&cru SRST_P_PCIE2_PHY0>, <&cru SRST_REF_PIPE_PHY0>;
4968		reset-names = "combphy-apb", "combphy";
4969		rockchip,pipe-grf = <&php_grf>;
4970		rockchip,pipe-phy-grf = <&pipe_phy0_grf>;
4971		status = "disabled";
4972	};
4973
4974	combphy2_psu: phy@fee20000 {
4975		compatible = "rockchip,rk3588-naneng-combphy";
4976		reg = <0x0 0xfee20000 0x0 0x100>;
4977		#phy-cells = <1>;
4978		clocks = <&cru CLK_REF_PIPE_PHY2>, <&cru PCLK_PCIE_COMBO_PIPE_PHY2>,
4979			 <&cru PCLK_PHP_ROOT>;
4980		clock-names = "refclk", "apbclk", "phpclk";
4981		assigned-clocks = <&cru CLK_REF_PIPE_PHY2>;
4982		assigned-clock-rates = <100000000>;
4983		resets = <&cru SRST_P_PCIE2_PHY2>, <&cru SRST_REF_PIPE_PHY2>;
4984		reset-names = "combphy-apb", "combphy";
4985		rockchip,pipe-grf = <&php_grf>;
4986		rockchip,pipe-phy-grf = <&pipe_phy2_grf>;
4987		rockchip,pcie1ln-sel-bits = <0x100 1 1 0>;
4988		status = "disabled";
4989	};
4990
4991	pinctrl: pinctrl {
4992		compatible = "rockchip,rk3588-pinctrl";
4993		rockchip,grf = <&ioc>;
4994		#address-cells = <2>;
4995		#size-cells = <2>;
4996		ranges;
4997
4998		gpio0: gpio@fd8a0000 {
4999			compatible = "rockchip,gpio-bank";
5000			reg = <0x0 0xfd8a0000 0x0 0x100>;
5001			interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>;
5002			clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
5003
5004			gpio-controller;
5005			#gpio-cells = <2>;
5006			gpio-ranges = <&pinctrl 0 0 32>;
5007			interrupt-controller;
5008			#interrupt-cells = <2>;
5009		};
5010
5011		gpio1: gpio@fec20000 {
5012			compatible = "rockchip,gpio-bank";
5013			reg = <0x0 0xfec20000 0x0 0x100>;
5014			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
5015			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
5016
5017			gpio-controller;
5018			#gpio-cells = <2>;
5019			gpio-ranges = <&pinctrl 0 32 32>;
5020			interrupt-controller;
5021			#interrupt-cells = <2>;
5022		};
5023
5024		gpio2: gpio@fec30000 {
5025			compatible = "rockchip,gpio-bank";
5026			reg = <0x0 0xfec30000 0x0 0x100>;
5027			interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>;
5028			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
5029
5030			gpio-controller;
5031			#gpio-cells = <2>;
5032			gpio-ranges = <&pinctrl 0 64 32>;
5033			interrupt-controller;
5034			#interrupt-cells = <2>;
5035		};
5036
5037		gpio3: gpio@fec40000 {
5038			compatible = "rockchip,gpio-bank";
5039			reg = <0x0 0xfec40000 0x0 0x100>;
5040			interrupts = <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>;
5041			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
5042
5043			gpio-controller;
5044			#gpio-cells = <2>;
5045			gpio-ranges = <&pinctrl 0 96 32>;
5046			interrupt-controller;
5047			#interrupt-cells = <2>;
5048		};
5049
5050		gpio4: gpio@fec50000 {
5051			compatible = "rockchip,gpio-bank";
5052			reg = <0x0 0xfec50000 0x0 0x100>;
5053			interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>;
5054			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
5055
5056			gpio-controller;
5057			#gpio-cells = <2>;
5058			gpio-ranges = <&pinctrl 0 128 32>;
5059			interrupt-controller;
5060			#interrupt-cells = <2>;
5061		};
5062	};
5063};
5064
5065#include "rk3588s-pinctrl.dtsi"
5066