xref: /linux/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4 */
5
6#include <dt-bindings/clock/rockchip,rk3588-cru.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/phy/phy.h>
10#include <dt-bindings/power/rk3588-power.h>
11#include <dt-bindings/reset/rockchip,rk3588-cru.h>
12#include <dt-bindings/phy/phy.h>
13#include <dt-bindings/ata/ahci.h>
14#include <dt-bindings/thermal/thermal.h>
15
16/ {
17	compatible = "rockchip,rk3588";
18
19	interrupt-parent = <&gic>;
20	#address-cells = <2>;
21	#size-cells = <2>;
22
23	aliases {
24		gpio0 = &gpio0;
25		gpio1 = &gpio1;
26		gpio2 = &gpio2;
27		gpio3 = &gpio3;
28		gpio4 = &gpio4;
29		i2c0 = &i2c0;
30		i2c1 = &i2c1;
31		i2c2 = &i2c2;
32		i2c3 = &i2c3;
33		i2c4 = &i2c4;
34		i2c5 = &i2c5;
35		i2c6 = &i2c6;
36		i2c7 = &i2c7;
37		i2c8 = &i2c8;
38		serial0 = &uart0;
39		serial1 = &uart1;
40		serial2 = &uart2;
41		serial3 = &uart3;
42		serial4 = &uart4;
43		serial5 = &uart5;
44		serial6 = &uart6;
45		serial7 = &uart7;
46		serial8 = &uart8;
47		serial9 = &uart9;
48		spi0 = &spi0;
49		spi1 = &spi1;
50		spi2 = &spi2;
51		spi3 = &spi3;
52		spi4 = &spi4;
53	};
54
55	cpus {
56		#address-cells = <1>;
57		#size-cells = <0>;
58
59		cpu-map {
60			cluster0 {
61				core0 {
62					cpu = <&cpu_l0>;
63				};
64				core1 {
65					cpu = <&cpu_l1>;
66				};
67				core2 {
68					cpu = <&cpu_l2>;
69				};
70				core3 {
71					cpu = <&cpu_l3>;
72				};
73			};
74			cluster1 {
75				core0 {
76					cpu = <&cpu_b0>;
77				};
78				core1 {
79					cpu = <&cpu_b1>;
80				};
81			};
82			cluster2 {
83				core0 {
84					cpu = <&cpu_b2>;
85				};
86				core1 {
87					cpu = <&cpu_b3>;
88				};
89			};
90		};
91
92		cpu_l0: cpu@0 {
93			device_type = "cpu";
94			compatible = "arm,cortex-a55";
95			reg = <0x0>;
96			enable-method = "psci";
97			capacity-dmips-mhz = <530>;
98			clocks = <&scmi_clk SCMI_CLK_CPUL>;
99			cpu-idle-states = <&CPU_SLEEP>;
100			i-cache-size = <32768>;
101			i-cache-line-size = <64>;
102			i-cache-sets = <128>;
103			d-cache-size = <32768>;
104			d-cache-line-size = <64>;
105			d-cache-sets = <128>;
106			next-level-cache = <&l2_cache_l0>;
107			dynamic-power-coefficient = <228>;
108			#cooling-cells = <2>;
109		};
110
111		cpu_l1: cpu@100 {
112			device_type = "cpu";
113			compatible = "arm,cortex-a55";
114			reg = <0x100>;
115			enable-method = "psci";
116			capacity-dmips-mhz = <530>;
117			clocks = <&scmi_clk SCMI_CLK_CPUL>;
118			cpu-idle-states = <&CPU_SLEEP>;
119			i-cache-size = <32768>;
120			i-cache-line-size = <64>;
121			i-cache-sets = <128>;
122			d-cache-size = <32768>;
123			d-cache-line-size = <64>;
124			d-cache-sets = <128>;
125			next-level-cache = <&l2_cache_l1>;
126			dynamic-power-coefficient = <228>;
127			#cooling-cells = <2>;
128		};
129
130		cpu_l2: cpu@200 {
131			device_type = "cpu";
132			compatible = "arm,cortex-a55";
133			reg = <0x200>;
134			enable-method = "psci";
135			capacity-dmips-mhz = <530>;
136			clocks = <&scmi_clk SCMI_CLK_CPUL>;
137			cpu-idle-states = <&CPU_SLEEP>;
138			i-cache-size = <32768>;
139			i-cache-line-size = <64>;
140			i-cache-sets = <128>;
141			d-cache-size = <32768>;
142			d-cache-line-size = <64>;
143			d-cache-sets = <128>;
144			next-level-cache = <&l2_cache_l2>;
145			dynamic-power-coefficient = <228>;
146			#cooling-cells = <2>;
147		};
148
149		cpu_l3: cpu@300 {
150			device_type = "cpu";
151			compatible = "arm,cortex-a55";
152			reg = <0x300>;
153			enable-method = "psci";
154			capacity-dmips-mhz = <530>;
155			clocks = <&scmi_clk SCMI_CLK_CPUL>;
156			cpu-idle-states = <&CPU_SLEEP>;
157			i-cache-size = <32768>;
158			i-cache-line-size = <64>;
159			i-cache-sets = <128>;
160			d-cache-size = <32768>;
161			d-cache-line-size = <64>;
162			d-cache-sets = <128>;
163			next-level-cache = <&l2_cache_l3>;
164			dynamic-power-coefficient = <228>;
165			#cooling-cells = <2>;
166		};
167
168		cpu_b0: cpu@400 {
169			device_type = "cpu";
170			compatible = "arm,cortex-a76";
171			reg = <0x400>;
172			enable-method = "psci";
173			capacity-dmips-mhz = <1024>;
174			clocks = <&scmi_clk SCMI_CLK_CPUB01>;
175			cpu-idle-states = <&CPU_SLEEP>;
176			i-cache-size = <65536>;
177			i-cache-line-size = <64>;
178			i-cache-sets = <256>;
179			d-cache-size = <65536>;
180			d-cache-line-size = <64>;
181			d-cache-sets = <256>;
182			next-level-cache = <&l2_cache_b0>;
183			dynamic-power-coefficient = <416>;
184			#cooling-cells = <2>;
185		};
186
187		cpu_b1: cpu@500 {
188			device_type = "cpu";
189			compatible = "arm,cortex-a76";
190			reg = <0x500>;
191			enable-method = "psci";
192			capacity-dmips-mhz = <1024>;
193			clocks = <&scmi_clk SCMI_CLK_CPUB01>;
194			cpu-idle-states = <&CPU_SLEEP>;
195			i-cache-size = <65536>;
196			i-cache-line-size = <64>;
197			i-cache-sets = <256>;
198			d-cache-size = <65536>;
199			d-cache-line-size = <64>;
200			d-cache-sets = <256>;
201			next-level-cache = <&l2_cache_b1>;
202			dynamic-power-coefficient = <416>;
203			#cooling-cells = <2>;
204		};
205
206		cpu_b2: cpu@600 {
207			device_type = "cpu";
208			compatible = "arm,cortex-a76";
209			reg = <0x600>;
210			enable-method = "psci";
211			capacity-dmips-mhz = <1024>;
212			clocks = <&scmi_clk SCMI_CLK_CPUB23>;
213			cpu-idle-states = <&CPU_SLEEP>;
214			i-cache-size = <65536>;
215			i-cache-line-size = <64>;
216			i-cache-sets = <256>;
217			d-cache-size = <65536>;
218			d-cache-line-size = <64>;
219			d-cache-sets = <256>;
220			next-level-cache = <&l2_cache_b2>;
221			dynamic-power-coefficient = <416>;
222			#cooling-cells = <2>;
223		};
224
225		cpu_b3: cpu@700 {
226			device_type = "cpu";
227			compatible = "arm,cortex-a76";
228			reg = <0x700>;
229			enable-method = "psci";
230			capacity-dmips-mhz = <1024>;
231			clocks = <&scmi_clk SCMI_CLK_CPUB23>;
232			cpu-idle-states = <&CPU_SLEEP>;
233			i-cache-size = <65536>;
234			i-cache-line-size = <64>;
235			i-cache-sets = <256>;
236			d-cache-size = <65536>;
237			d-cache-line-size = <64>;
238			d-cache-sets = <256>;
239			next-level-cache = <&l2_cache_b3>;
240			dynamic-power-coefficient = <416>;
241			#cooling-cells = <2>;
242		};
243
244		idle-states {
245			entry-method = "psci";
246			CPU_SLEEP: cpu-sleep {
247				compatible = "arm,idle-state";
248				local-timer-stop;
249				arm,psci-suspend-param = <0x0010000>;
250				entry-latency-us = <100>;
251				exit-latency-us = <120>;
252				min-residency-us = <1000>;
253			};
254		};
255
256		l2_cache_l0: l2-cache-l0 {
257			compatible = "cache";
258			cache-size = <131072>;
259			cache-line-size = <64>;
260			cache-sets = <512>;
261			cache-level = <2>;
262			cache-unified;
263			next-level-cache = <&l3_cache>;
264		};
265
266		l2_cache_l1: l2-cache-l1 {
267			compatible = "cache";
268			cache-size = <131072>;
269			cache-line-size = <64>;
270			cache-sets = <512>;
271			cache-level = <2>;
272			cache-unified;
273			next-level-cache = <&l3_cache>;
274		};
275
276		l2_cache_l2: l2-cache-l2 {
277			compatible = "cache";
278			cache-size = <131072>;
279			cache-line-size = <64>;
280			cache-sets = <512>;
281			cache-level = <2>;
282			cache-unified;
283			next-level-cache = <&l3_cache>;
284		};
285
286		l2_cache_l3: l2-cache-l3 {
287			compatible = "cache";
288			cache-size = <131072>;
289			cache-line-size = <64>;
290			cache-sets = <512>;
291			cache-level = <2>;
292			cache-unified;
293			next-level-cache = <&l3_cache>;
294		};
295
296		l2_cache_b0: l2-cache-b0 {
297			compatible = "cache";
298			cache-size = <524288>;
299			cache-line-size = <64>;
300			cache-sets = <1024>;
301			cache-level = <2>;
302			cache-unified;
303			next-level-cache = <&l3_cache>;
304		};
305
306		l2_cache_b1: l2-cache-b1 {
307			compatible = "cache";
308			cache-size = <524288>;
309			cache-line-size = <64>;
310			cache-sets = <1024>;
311			cache-level = <2>;
312			cache-unified;
313			next-level-cache = <&l3_cache>;
314		};
315
316		l2_cache_b2: l2-cache-b2 {
317			compatible = "cache";
318			cache-size = <524288>;
319			cache-line-size = <64>;
320			cache-sets = <1024>;
321			cache-level = <2>;
322			cache-unified;
323			next-level-cache = <&l3_cache>;
324		};
325
326		l2_cache_b3: l2-cache-b3 {
327			compatible = "cache";
328			cache-size = <524288>;
329			cache-line-size = <64>;
330			cache-sets = <1024>;
331			cache-level = <2>;
332			cache-unified;
333			next-level-cache = <&l3_cache>;
334		};
335	};
336
337	/*
338	 * The L3 cache belongs to the DynamIQ Shared Unit (DSU),
339	 * so it's represented here, outside the "cpus" node
340	 */
341	l3_cache: l3-cache {
342		compatible = "cache";
343		cache-size = <3145728>;
344		cache-line-size = <64>;
345		cache-sets = <4096>;
346		cache-level = <3>;
347		cache-unified;
348	};
349
350	display_subsystem: display-subsystem {
351		compatible = "rockchip,display-subsystem";
352		ports = <&vop_out>;
353	};
354
355	firmware {
356		scmi: scmi {
357			compatible = "arm,scmi-smc";
358			arm,smc-id = <0x82000010>;
359			shmem = <&scmi_shmem>;
360			#address-cells = <1>;
361			#size-cells = <0>;
362
363			scmi_clk: protocol@14 {
364				reg = <0x14>;
365				#clock-cells = <1>;
366			};
367
368			scmi_reset: protocol@16 {
369				reg = <0x16>;
370				#reset-cells = <1>;
371			};
372		};
373	};
374
375	hdmi0_sound: hdmi0-sound {
376		compatible = "simple-audio-card";
377		simple-audio-card,format = "i2s";
378		simple-audio-card,mclk-fs = <128>;
379		simple-audio-card,name = "hdmi0";
380		status = "disabled";
381
382		simple-audio-card,codec {
383			sound-dai = <&hdmi0>;
384		};
385
386		simple-audio-card,cpu {
387			sound-dai = <&i2s5_8ch>;
388		};
389	};
390
391	pmu-a55 {
392		compatible = "arm,cortex-a55-pmu";
393		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition0>;
394	};
395
396	pmu-a76 {
397		compatible = "arm,cortex-a76-pmu";
398		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition1>;
399	};
400
401	psci {
402		compatible = "arm,psci-1.0";
403		method = "smc";
404	};
405
406	spll: clock-0 {
407		compatible = "fixed-clock";
408		clock-frequency = <702000000>;
409		clock-output-names = "spll";
410		#clock-cells = <0>;
411	};
412
413	timer {
414		compatible = "arm,armv8-timer";
415		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
416			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
417			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
418			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>,
419			     <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
420		interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt";
421	};
422
423	xin24m: clock-1 {
424		compatible = "fixed-clock";
425		clock-frequency = <24000000>;
426		clock-output-names = "xin24m";
427		#clock-cells = <0>;
428	};
429
430	xin32k: clock-2 {
431		compatible = "fixed-clock";
432		clock-frequency = <32768>;
433		clock-output-names = "xin32k";
434		#clock-cells = <0>;
435	};
436
437	reserved-memory {
438		#address-cells = <2>;
439		#size-cells = <2>;
440		ranges;
441
442		scmi_shmem: shmem@10f000 {
443			compatible = "arm,scmi-shmem";
444			reg = <0x0 0x0010f000 0x0 0x100>;
445			no-map;
446		};
447	};
448
449	gpu: gpu@fb000000 {
450		compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
451		reg = <0x0 0xfb000000 0x0 0x200000>;
452		#cooling-cells = <2>;
453		assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
454		assigned-clock-rates = <200000000>;
455		clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
456			 <&cru CLK_GPU_STACKS>;
457		clock-names = "core", "coregroup", "stacks";
458		dynamic-power-coefficient = <2982>;
459		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
460			     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
461			     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
462		interrupt-names = "job", "mmu", "gpu";
463		power-domains = <&power RK3588_PD_GPU>;
464		status = "disabled";
465	};
466
467	usb_host0_xhci: usb@fc000000 {
468		compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
469		reg = <0x0 0xfc000000 0x0 0x400000>;
470		interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
471		clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>,
472			 <&cru ACLK_USB3OTG0>;
473		clock-names = "ref_clk", "suspend_clk", "bus_clk";
474		dr_mode = "otg";
475		phys = <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3>;
476		phy-names = "usb2-phy", "usb3-phy";
477		phy_type = "utmi_wide";
478		power-domains = <&power RK3588_PD_USB>;
479		resets = <&cru SRST_A_USB3OTG0>;
480		snps,dis_enblslpm_quirk;
481		snps,dis-u1-entry-quirk;
482		snps,dis-u2-entry-quirk;
483		snps,dis-u2-freeclk-exists-quirk;
484		snps,dis-del-phy-power-chg-quirk;
485		snps,dis-tx-ipgap-linecheck-quirk;
486		status = "disabled";
487	};
488
489	usb_host0_ehci: usb@fc800000 {
490		compatible = "rockchip,rk3588-ehci", "generic-ehci";
491		reg = <0x0 0xfc800000 0x0 0x40000>;
492		interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 0>;
493		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>;
494		phys = <&u2phy2_host>;
495		phy-names = "usb";
496		power-domains = <&power RK3588_PD_USB>;
497		status = "disabled";
498	};
499
500	usb_host0_ohci: usb@fc840000 {
501		compatible = "rockchip,rk3588-ohci", "generic-ohci";
502		reg = <0x0 0xfc840000 0x0 0x40000>;
503		interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 0>;
504		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>;
505		phys = <&u2phy2_host>;
506		phy-names = "usb";
507		power-domains = <&power RK3588_PD_USB>;
508		status = "disabled";
509	};
510
511	usb_host1_ehci: usb@fc880000 {
512		compatible = "rockchip,rk3588-ehci", "generic-ehci";
513		reg = <0x0 0xfc880000 0x0 0x40000>;
514		interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 0>;
515		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>;
516		phys = <&u2phy3_host>;
517		phy-names = "usb";
518		power-domains = <&power RK3588_PD_USB>;
519		status = "disabled";
520	};
521
522	usb_host1_ohci: usb@fc8c0000 {
523		compatible = "rockchip,rk3588-ohci", "generic-ohci";
524		reg = <0x0 0xfc8c0000 0x0 0x40000>;
525		interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 0>;
526		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>;
527		phys = <&u2phy3_host>;
528		phy-names = "usb";
529		power-domains = <&power RK3588_PD_USB>;
530		status = "disabled";
531	};
532
533	usb_host2_xhci: usb@fcd00000 {
534		compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
535		reg = <0x0 0xfcd00000 0x0 0x400000>;
536		interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH 0>;
537		clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>,
538			 <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>,
539			 <&cru CLK_PIPEPHY2_PIPE_U3_G>;
540		clock-names = "ref_clk", "suspend_clk", "bus_clk", "utmi", "pipe";
541		dr_mode = "host";
542		phys = <&combphy2_psu PHY_TYPE_USB3>;
543		phy-names = "usb3-phy";
544		phy_type = "utmi_wide";
545		resets = <&cru SRST_A_USB3OTG2>;
546		snps,dis_enblslpm_quirk;
547		snps,dis-u2-freeclk-exists-quirk;
548		snps,dis-del-phy-power-chg-quirk;
549		snps,dis-tx-ipgap-linecheck-quirk;
550		snps,dis_rxdet_inp3_quirk;
551		status = "disabled";
552	};
553
554	mmu600_pcie: iommu@fc900000 {
555		compatible = "arm,smmu-v3";
556		reg = <0x0 0xfc900000 0x0 0x200000>;
557		interrupts = <GIC_SPI 369 IRQ_TYPE_EDGE_RISING 0>,
558			     <GIC_SPI 371 IRQ_TYPE_EDGE_RISING 0>,
559			     <GIC_SPI 374 IRQ_TYPE_EDGE_RISING 0>,
560			     <GIC_SPI 367 IRQ_TYPE_EDGE_RISING 0>;
561		interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
562		#iommu-cells = <1>;
563	};
564
565	mmu600_php: iommu@fcb00000 {
566		compatible = "arm,smmu-v3";
567		reg = <0x0 0xfcb00000 0x0 0x200000>;
568		interrupts = <GIC_SPI 381 IRQ_TYPE_EDGE_RISING 0>,
569			     <GIC_SPI 383 IRQ_TYPE_EDGE_RISING 0>,
570			     <GIC_SPI 386 IRQ_TYPE_EDGE_RISING 0>,
571			     <GIC_SPI 379 IRQ_TYPE_EDGE_RISING 0>;
572		interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
573		#iommu-cells = <1>;
574		status = "disabled";
575	};
576
577	pmu1grf: syscon@fd58a000 {
578		compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
579		reg = <0x0 0xfd58a000 0x0 0x10000>;
580	};
581
582	sys_grf: syscon@fd58c000 {
583		compatible = "rockchip,rk3588-sys-grf", "syscon";
584		reg = <0x0 0xfd58c000 0x0 0x1000>;
585	};
586
587	mipidcphy0_grf: syscon@fd5e8000 {
588		compatible = "rockchip,rk3588-dcphy-grf", "syscon";
589		reg = <0x0 0xfd5e8000 0x0 0x4000>;
590	};
591
592	mipidcphy1_grf: syscon@fd5ec000 {
593		compatible = "rockchip,rk3588-dcphy-grf", "syscon";
594		reg = <0x0 0xfd5ec000 0x0 0x4000>;
595	};
596
597	vop_grf: syscon@fd5a4000 {
598		compatible = "rockchip,rk3588-vop-grf", "syscon";
599		reg = <0x0 0xfd5a4000 0x0 0x2000>;
600	};
601
602	vo0_grf: syscon@fd5a6000 {
603		compatible = "rockchip,rk3588-vo0-grf", "syscon";
604		reg = <0x0 0xfd5a6000 0x0 0x2000>;
605		clocks = <&cru PCLK_VO0GRF>;
606	};
607
608	vo1_grf: syscon@fd5a8000 {
609		compatible = "rockchip,rk3588-vo1-grf", "syscon";
610		reg = <0x0 0xfd5a8000 0x0 0x4000>;
611		clocks = <&cru PCLK_VO1GRF>;
612	};
613
614	usb_grf: syscon@fd5ac000 {
615		compatible = "rockchip,rk3588-usb-grf", "syscon";
616		reg = <0x0 0xfd5ac000 0x0 0x4000>;
617	};
618
619	php_grf: syscon@fd5b0000 {
620		compatible = "rockchip,rk3588-php-grf", "syscon";
621		reg = <0x0 0xfd5b0000 0x0 0x1000>;
622	};
623
624	csidphy0_grf: syscon@fd5b4000 {
625		compatible = "rockchip,rk3588-csidphy-grf", "syscon";
626		reg = <0x0 0xfd5b4000 0x0 0x1000>;
627	};
628
629	csidphy1_grf: syscon@fd5b5000 {
630		compatible = "rockchip,rk3588-csidphy-grf", "syscon";
631		reg = <0x0 0xfd5b5000 0x0 0x1000>;
632	};
633
634	pipe_phy0_grf: syscon@fd5bc000 {
635		compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
636		reg = <0x0 0xfd5bc000 0x0 0x100>;
637	};
638
639	pipe_phy2_grf: syscon@fd5c4000 {
640		compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
641		reg = <0x0 0xfd5c4000 0x0 0x100>;
642	};
643
644	usbdpphy0_grf: syscon@fd5c8000 {
645		compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
646		reg = <0x0 0xfd5c8000 0x0 0x4000>;
647	};
648
649	usb2phy0_grf: syscon@fd5d0000 {
650		compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
651		reg = <0x0 0xfd5d0000 0x0 0x4000>;
652		#address-cells = <1>;
653		#size-cells = <1>;
654
655		u2phy0: usb2phy@0 {
656			compatible = "rockchip,rk3588-usb2phy";
657			reg = <0x0 0x10>;
658			#clock-cells = <0>;
659			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
660			clock-names = "phyclk";
661			clock-output-names = "usb480m_phy0";
662			interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>;
663			resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>;
664			reset-names = "phy", "apb";
665			status = "disabled";
666
667			u2phy0_otg: otg-port {
668				#phy-cells = <0>;
669				status = "disabled";
670			};
671		};
672	};
673
674	usb2phy2_grf: syscon@fd5d8000 {
675		compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
676		reg = <0x0 0xfd5d8000 0x0 0x4000>;
677		#address-cells = <1>;
678		#size-cells = <1>;
679
680		u2phy2: usb2phy@8000 {
681			compatible = "rockchip,rk3588-usb2phy";
682			reg = <0x8000 0x10>;
683			#clock-cells = <0>;
684			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
685			clock-names = "phyclk";
686			clock-output-names = "usb480m_phy2";
687			interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
688			resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
689			reset-names = "phy", "apb";
690			status = "disabled";
691
692			u2phy2_host: host-port {
693				#phy-cells = <0>;
694				status = "disabled";
695			};
696		};
697	};
698
699	usb2phy3_grf: syscon@fd5dc000 {
700		compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
701		reg = <0x0 0xfd5dc000 0x0 0x4000>;
702		#address-cells = <1>;
703		#size-cells = <1>;
704
705		u2phy3: usb2phy@c000 {
706			compatible = "rockchip,rk3588-usb2phy";
707			reg = <0xc000 0x10>;
708			#clock-cells = <0>;
709			clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
710			clock-names = "phyclk";
711			clock-output-names = "usb480m_phy3";
712			interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
713			resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
714			reset-names = "phy", "apb";
715			status = "disabled";
716
717			u2phy3_host: host-port {
718				#phy-cells = <0>;
719				status = "disabled";
720			};
721		};
722	};
723
724	hdptxphy0_grf: syscon@fd5e0000 {
725		compatible = "rockchip,rk3588-hdptxphy-grf", "syscon";
726		reg = <0x0 0xfd5e0000 0x0 0x100>;
727	};
728
729	ioc: syscon@fd5f0000 {
730		compatible = "rockchip,rk3588-ioc", "syscon";
731		reg = <0x0 0xfd5f0000 0x0 0x10000>;
732	};
733
734	system_sram1: sram@fd600000 {
735		compatible = "mmio-sram";
736		reg = <0x0 0xfd600000 0x0 0x100000>;
737		ranges = <0x0 0x0 0xfd600000 0x100000>;
738		#address-cells = <1>;
739		#size-cells = <1>;
740	};
741
742	cru: clock-controller@fd7c0000 {
743		compatible = "rockchip,rk3588-cru";
744		reg = <0x0 0xfd7c0000 0x0 0x5c000>;
745		assigned-clocks =
746			<&cru PLL_PPLL>, <&cru PLL_AUPLL>,
747			<&cru PLL_NPLL>, <&cru PLL_GPLL>,
748			<&cru ACLK_CENTER_ROOT>,
749			<&cru HCLK_CENTER_ROOT>, <&cru ACLK_CENTER_LOW_ROOT>,
750			<&cru ACLK_TOP_ROOT>, <&cru PCLK_TOP_ROOT>,
751			<&cru ACLK_LOW_TOP_ROOT>, <&cru PCLK_PMU0_ROOT>,
752			<&cru HCLK_PMU_CM0_ROOT>, <&cru ACLK_VOP>,
753			<&cru ACLK_BUS_ROOT>, <&cru CLK_150M_SRC>,
754			<&cru CLK_GPU>;
755		assigned-clock-rates =
756			<1100000000>, <786432000>,
757			<850000000>, <1188000000>,
758			<702000000>,
759			<400000000>, <500000000>,
760			<800000000>, <100000000>,
761			<400000000>, <100000000>,
762			<200000000>, <500000000>,
763			<375000000>, <150000000>,
764			<200000000>;
765		rockchip,grf = <&php_grf>;
766		#clock-cells = <1>;
767		#reset-cells = <1>;
768	};
769
770	i2c0: i2c@fd880000 {
771		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
772		reg = <0x0 0xfd880000 0x0 0x1000>;
773		interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 0>;
774		clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
775		clock-names = "i2c", "pclk";
776		pinctrl-0 = <&i2c0m0_xfer>;
777		pinctrl-names = "default";
778		#address-cells = <1>;
779		#size-cells = <0>;
780		status = "disabled";
781	};
782
783	uart0: serial@fd890000 {
784		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
785		reg = <0x0 0xfd890000 0x0 0x100>;
786		interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>;
787		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
788		clock-names = "baudclk", "apb_pclk";
789		dmas = <&dmac0 6>, <&dmac0 7>;
790		dma-names = "tx", "rx";
791		pinctrl-0 = <&uart0m1_xfer>;
792		pinctrl-names = "default";
793		reg-shift = <2>;
794		reg-io-width = <4>;
795		status = "disabled";
796	};
797
798	pwm0: pwm@fd8b0000 {
799		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
800		reg = <0x0 0xfd8b0000 0x0 0x10>;
801		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
802		clock-names = "pwm", "pclk";
803		pinctrl-0 = <&pwm0m0_pins>;
804		pinctrl-names = "default";
805		#pwm-cells = <3>;
806		status = "disabled";
807	};
808
809	pwm1: pwm@fd8b0010 {
810		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
811		reg = <0x0 0xfd8b0010 0x0 0x10>;
812		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
813		clock-names = "pwm", "pclk";
814		pinctrl-0 = <&pwm1m0_pins>;
815		pinctrl-names = "default";
816		#pwm-cells = <3>;
817		status = "disabled";
818	};
819
820	pwm2: pwm@fd8b0020 {
821		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
822		reg = <0x0 0xfd8b0020 0x0 0x10>;
823		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
824		clock-names = "pwm", "pclk";
825		pinctrl-0 = <&pwm2m0_pins>;
826		pinctrl-names = "default";
827		#pwm-cells = <3>;
828		status = "disabled";
829	};
830
831	pwm3: pwm@fd8b0030 {
832		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
833		reg = <0x0 0xfd8b0030 0x0 0x10>;
834		clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
835		clock-names = "pwm", "pclk";
836		pinctrl-0 = <&pwm3m0_pins>;
837		pinctrl-names = "default";
838		#pwm-cells = <3>;
839		status = "disabled";
840	};
841
842	pmu: power-management@fd8d8000 {
843		compatible = "rockchip,rk3588-pmu", "syscon", "simple-mfd";
844		reg = <0x0 0xfd8d8000 0x0 0x400>;
845
846		power: power-controller {
847			compatible = "rockchip,rk3588-power-controller";
848			#address-cells = <1>;
849			#power-domain-cells = <1>;
850			#size-cells = <0>;
851			status = "okay";
852
853			/* These power domains are grouped by VD_NPU */
854			pd_npu: power-domain@RK3588_PD_NPU {
855				reg = <RK3588_PD_NPU>;
856				#power-domain-cells = <0>;
857				#address-cells = <1>;
858				#size-cells = <0>;
859
860				power-domain@RK3588_PD_NPUTOP {
861					reg = <RK3588_PD_NPUTOP>;
862					clocks = <&cru HCLK_NPU_ROOT>,
863						 <&cru PCLK_NPU_ROOT>,
864						 <&cru CLK_NPU_DSU0>,
865						 <&cru HCLK_NPU_CM0_ROOT>;
866					pm_qos = <&qos_npu0_mwr>,
867						 <&qos_npu0_mro>,
868						 <&qos_mcu_npu>;
869					#power-domain-cells = <0>;
870					#address-cells = <1>;
871					#size-cells = <0>;
872
873					power-domain@RK3588_PD_NPU1 {
874						reg = <RK3588_PD_NPU1>;
875						clocks = <&cru HCLK_NPU_ROOT>,
876							 <&cru PCLK_NPU_ROOT>,
877							 <&cru CLK_NPU_DSU0>;
878						pm_qos = <&qos_npu1>;
879						#power-domain-cells = <0>;
880					};
881					power-domain@RK3588_PD_NPU2 {
882						reg = <RK3588_PD_NPU2>;
883						clocks = <&cru HCLK_NPU_ROOT>,
884							 <&cru PCLK_NPU_ROOT>,
885							 <&cru CLK_NPU_DSU0>;
886						pm_qos = <&qos_npu2>;
887						#power-domain-cells = <0>;
888					};
889				};
890			};
891			/* These power domains are grouped by VD_GPU */
892			pd_gpu: power-domain@RK3588_PD_GPU {
893				reg = <RK3588_PD_GPU>;
894				clocks = <&cru CLK_GPU>,
895					 <&cru CLK_GPU_COREGROUP>,
896					 <&cru CLK_GPU_STACKS>;
897				pm_qos = <&qos_gpu_m0>,
898					 <&qos_gpu_m1>,
899					 <&qos_gpu_m2>,
900					 <&qos_gpu_m3>;
901				#power-domain-cells = <0>;
902			};
903			/* These power domains are grouped by VD_VCODEC */
904			power-domain@RK3588_PD_VCODEC {
905				reg = <RK3588_PD_VCODEC>;
906				#address-cells = <1>;
907				#size-cells = <0>;
908				#power-domain-cells = <0>;
909
910				power-domain@RK3588_PD_RKVDEC0 {
911					reg = <RK3588_PD_RKVDEC0>;
912					clocks = <&cru HCLK_RKVDEC0>,
913						 <&cru HCLK_VDPU_ROOT>,
914						 <&cru ACLK_VDPU_ROOT>,
915						 <&cru ACLK_RKVDEC0>,
916						 <&cru ACLK_RKVDEC_CCU>;
917					pm_qos = <&qos_rkvdec0>;
918					#power-domain-cells = <0>;
919				};
920				power-domain@RK3588_PD_RKVDEC1 {
921					reg = <RK3588_PD_RKVDEC1>;
922					clocks = <&cru HCLK_RKVDEC1>,
923						 <&cru HCLK_VDPU_ROOT>,
924						 <&cru ACLK_VDPU_ROOT>,
925						 <&cru ACLK_RKVDEC1>;
926					pm_qos = <&qos_rkvdec1>;
927					#power-domain-cells = <0>;
928				};
929				power-domain@RK3588_PD_VENC0 {
930					reg = <RK3588_PD_VENC0>;
931					clocks = <&cru HCLK_RKVENC0>,
932						 <&cru ACLK_RKVENC0>;
933					pm_qos = <&qos_rkvenc0_m0ro>,
934						 <&qos_rkvenc0_m1ro>,
935						 <&qos_rkvenc0_m2wo>;
936					#address-cells = <1>;
937					#size-cells = <0>;
938					#power-domain-cells = <0>;
939
940					power-domain@RK3588_PD_VENC1 {
941						reg = <RK3588_PD_VENC1>;
942						clocks = <&cru HCLK_RKVENC1>,
943							 <&cru HCLK_RKVENC0>,
944							 <&cru ACLK_RKVENC0>,
945							 <&cru ACLK_RKVENC1>;
946						pm_qos = <&qos_rkvenc1_m0ro>,
947							 <&qos_rkvenc1_m1ro>,
948							 <&qos_rkvenc1_m2wo>;
949						#power-domain-cells = <0>;
950					};
951				};
952			};
953			/* These power domains are grouped by VD_LOGIC */
954			power-domain@RK3588_PD_VDPU {
955				reg = <RK3588_PD_VDPU>;
956				clocks = <&cru HCLK_VDPU_ROOT>,
957					 <&cru ACLK_VDPU_LOW_ROOT>,
958					 <&cru ACLK_VDPU_ROOT>,
959					 <&cru ACLK_JPEG_DECODER_ROOT>,
960					 <&cru ACLK_IEP2P0>,
961					 <&cru HCLK_IEP2P0>,
962					 <&cru ACLK_JPEG_ENCODER0>,
963					 <&cru HCLK_JPEG_ENCODER0>,
964					 <&cru ACLK_JPEG_ENCODER1>,
965					 <&cru HCLK_JPEG_ENCODER1>,
966					 <&cru ACLK_JPEG_ENCODER2>,
967					 <&cru HCLK_JPEG_ENCODER2>,
968					 <&cru ACLK_JPEG_ENCODER3>,
969					 <&cru HCLK_JPEG_ENCODER3>,
970					 <&cru ACLK_JPEG_DECODER>,
971					 <&cru HCLK_JPEG_DECODER>,
972					 <&cru ACLK_RGA2>,
973					 <&cru HCLK_RGA2>;
974				pm_qos = <&qos_iep>,
975					 <&qos_jpeg_dec>,
976					 <&qos_jpeg_enc0>,
977					 <&qos_jpeg_enc1>,
978					 <&qos_jpeg_enc2>,
979					 <&qos_jpeg_enc3>,
980					 <&qos_rga2_mro>,
981					 <&qos_rga2_mwo>;
982				#address-cells = <1>;
983				#size-cells = <0>;
984				#power-domain-cells = <0>;
985
986
987				power-domain@RK3588_PD_AV1 {
988					reg = <RK3588_PD_AV1>;
989					clocks = <&cru PCLK_AV1>,
990						 <&cru ACLK_AV1>,
991						 <&cru HCLK_VDPU_ROOT>;
992					pm_qos = <&qos_av1>;
993					#power-domain-cells = <0>;
994				};
995				power-domain@RK3588_PD_RKVDEC0 {
996					reg = <RK3588_PD_RKVDEC0>;
997					clocks = <&cru HCLK_RKVDEC0>,
998						 <&cru HCLK_VDPU_ROOT>,
999						 <&cru ACLK_VDPU_ROOT>,
1000						 <&cru ACLK_RKVDEC0>;
1001					pm_qos = <&qos_rkvdec0>;
1002					#power-domain-cells = <0>;
1003				};
1004				power-domain@RK3588_PD_RKVDEC1 {
1005					reg = <RK3588_PD_RKVDEC1>;
1006					clocks = <&cru HCLK_RKVDEC1>,
1007						 <&cru HCLK_VDPU_ROOT>,
1008						 <&cru ACLK_VDPU_ROOT>;
1009					pm_qos = <&qos_rkvdec1>;
1010					#power-domain-cells = <0>;
1011				};
1012				power-domain@RK3588_PD_RGA30 {
1013					reg = <RK3588_PD_RGA30>;
1014					clocks = <&cru ACLK_RGA3_0>,
1015						 <&cru HCLK_RGA3_0>;
1016					pm_qos = <&qos_rga3_0>;
1017					#power-domain-cells = <0>;
1018				};
1019			};
1020			power-domain@RK3588_PD_VOP {
1021				reg = <RK3588_PD_VOP>;
1022				clocks = <&cru PCLK_VOP_ROOT>,
1023					 <&cru HCLK_VOP_ROOT>,
1024					 <&cru ACLK_VOP>;
1025				pm_qos = <&qos_vop_m0>,
1026					 <&qos_vop_m1>;
1027				#address-cells = <1>;
1028				#size-cells = <0>;
1029				#power-domain-cells = <0>;
1030
1031				power-domain@RK3588_PD_VO0 {
1032					reg = <RK3588_PD_VO0>;
1033					clocks = <&cru PCLK_VO0_ROOT>,
1034						 <&cru PCLK_VO0_S_ROOT>,
1035						 <&cru HCLK_VO0_S_ROOT>,
1036						 <&cru ACLK_VO0_ROOT>,
1037						 <&cru HCLK_HDCP0>,
1038						 <&cru ACLK_HDCP0>,
1039						 <&cru HCLK_VOP_ROOT>;
1040					pm_qos = <&qos_hdcp0>;
1041					#power-domain-cells = <0>;
1042				};
1043			};
1044			power-domain@RK3588_PD_VO1 {
1045				reg = <RK3588_PD_VO1>;
1046				clocks = <&cru PCLK_VO1_ROOT>,
1047					 <&cru PCLK_VO1_S_ROOT>,
1048					 <&cru HCLK_VO1_S_ROOT>,
1049					 <&cru HCLK_HDCP1>,
1050					 <&cru ACLK_HDCP1>,
1051					 <&cru ACLK_HDMIRX_ROOT>,
1052					 <&cru HCLK_VO1USB_TOP_ROOT>;
1053				pm_qos = <&qos_hdcp1>,
1054					 <&qos_hdmirx>;
1055				#power-domain-cells = <0>;
1056			};
1057			power-domain@RK3588_PD_VI {
1058				reg = <RK3588_PD_VI>;
1059				clocks = <&cru HCLK_VI_ROOT>,
1060					 <&cru PCLK_VI_ROOT>,
1061					 <&cru HCLK_ISP0>,
1062					 <&cru ACLK_ISP0>,
1063					 <&cru HCLK_VICAP>,
1064					 <&cru ACLK_VICAP>;
1065				pm_qos = <&qos_isp0_mro>,
1066					 <&qos_isp0_mwo>,
1067					 <&qos_vicap_m0>,
1068					 <&qos_vicap_m1>;
1069				#address-cells = <1>;
1070				#size-cells = <0>;
1071				#power-domain-cells = <0>;
1072
1073				power-domain@RK3588_PD_ISP1 {
1074					reg = <RK3588_PD_ISP1>;
1075					clocks = <&cru HCLK_ISP1>,
1076						 <&cru ACLK_ISP1>,
1077						 <&cru HCLK_VI_ROOT>,
1078						 <&cru PCLK_VI_ROOT>;
1079					pm_qos = <&qos_isp1_mwo>,
1080						 <&qos_isp1_mro>;
1081					#power-domain-cells = <0>;
1082				};
1083				power-domain@RK3588_PD_FEC {
1084					reg = <RK3588_PD_FEC>;
1085					clocks = <&cru HCLK_FISHEYE0>,
1086						 <&cru ACLK_FISHEYE0>,
1087						 <&cru HCLK_FISHEYE1>,
1088						 <&cru ACLK_FISHEYE1>,
1089						 <&cru PCLK_VI_ROOT>;
1090					pm_qos = <&qos_fisheye0>,
1091						 <&qos_fisheye1>;
1092					#power-domain-cells = <0>;
1093				};
1094			};
1095			power-domain@RK3588_PD_RGA31 {
1096				reg = <RK3588_PD_RGA31>;
1097				clocks = <&cru HCLK_RGA3_1>,
1098					 <&cru ACLK_RGA3_1>;
1099				pm_qos = <&qos_rga3_1>;
1100				#power-domain-cells = <0>;
1101			};
1102			power-domain@RK3588_PD_USB {
1103				reg = <RK3588_PD_USB>;
1104				clocks = <&cru PCLK_PHP_ROOT>,
1105					 <&cru ACLK_USB_ROOT>,
1106					 <&cru ACLK_USB>,
1107					 <&cru HCLK_USB_ROOT>,
1108					 <&cru HCLK_HOST0>,
1109					 <&cru HCLK_HOST_ARB0>,
1110					 <&cru HCLK_HOST1>,
1111					 <&cru HCLK_HOST_ARB1>;
1112				pm_qos = <&qos_usb3_0>,
1113					 <&qos_usb3_1>,
1114					 <&qos_usb2host_0>,
1115					 <&qos_usb2host_1>;
1116				#power-domain-cells = <0>;
1117			};
1118			power-domain@RK3588_PD_GMAC {
1119				reg = <RK3588_PD_GMAC>;
1120				clocks = <&cru PCLK_PHP_ROOT>,
1121					 <&cru ACLK_PCIE_ROOT>,
1122					 <&cru ACLK_PHP_ROOT>;
1123				#power-domain-cells = <0>;
1124			};
1125			power-domain@RK3588_PD_PCIE {
1126				reg = <RK3588_PD_PCIE>;
1127				clocks = <&cru PCLK_PHP_ROOT>,
1128					 <&cru ACLK_PCIE_ROOT>,
1129					 <&cru ACLK_PHP_ROOT>;
1130				#power-domain-cells = <0>;
1131			};
1132			power-domain@RK3588_PD_SDIO {
1133				reg = <RK3588_PD_SDIO>;
1134				clocks = <&cru HCLK_SDIO>,
1135					 <&cru HCLK_NVM_ROOT>;
1136				pm_qos = <&qos_sdio>;
1137				#power-domain-cells = <0>;
1138			};
1139			power-domain@RK3588_PD_AUDIO {
1140				reg = <RK3588_PD_AUDIO>;
1141				clocks = <&cru HCLK_AUDIO_ROOT>,
1142					 <&cru PCLK_AUDIO_ROOT>;
1143				#power-domain-cells = <0>;
1144			};
1145			power-domain@RK3588_PD_SDMMC {
1146				reg = <RK3588_PD_SDMMC>;
1147				pm_qos = <&qos_sdmmc>;
1148				#power-domain-cells = <0>;
1149			};
1150		};
1151	};
1152
1153	rknn_core_0: npu@fdab0000 {
1154		compatible = "rockchip,rk3588-rknn-core";
1155		reg = <0x0 0xfdab0000 0x0 0x1000>,
1156		      <0x0 0xfdab1000 0x0 0x1000>,
1157		      <0x0 0xfdab3000 0x0 0x1000>;
1158		reg-names = "pc", "cna", "core";
1159		interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
1160		clocks = <&cru ACLK_NPU0>, <&cru HCLK_NPU0>,
1161			 <&scmi_clk SCMI_CLK_NPU>, <&cru PCLK_NPU_ROOT>;
1162		clock-names = "aclk", "hclk", "npu", "pclk";
1163		assigned-clocks = <&scmi_clk SCMI_CLK_NPU>;
1164		assigned-clock-rates = <200000000>;
1165		resets = <&cru SRST_A_RKNN0>, <&cru SRST_H_RKNN0>;
1166		reset-names = "srst_a", "srst_h";
1167		power-domains = <&power RK3588_PD_NPUTOP>;
1168		iommus = <&rknn_mmu_0>;
1169		status = "disabled";
1170	};
1171
1172	rknn_mmu_0: iommu@fdab9000 {
1173		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1174		reg = <0x0 0xfdab9000 0x0 0x100>,
1175		      <0x0 0xfdaba000 0x0 0x100>;
1176		interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
1177		clocks = <&cru ACLK_NPU0>, <&cru HCLK_NPU0>;
1178		clock-names = "aclk", "iface";
1179		#iommu-cells = <0>;
1180		power-domains = <&power RK3588_PD_NPUTOP>;
1181		status = "disabled";
1182	};
1183
1184	rknn_core_1: npu@fdac0000 {
1185		compatible = "rockchip,rk3588-rknn-core";
1186		reg = <0x0 0xfdac0000 0x0 0x1000>,
1187		      <0x0 0xfdac1000 0x0 0x1000>,
1188		      <0x0 0xfdac3000 0x0 0x1000>;
1189		reg-names = "pc", "cna", "core";
1190		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
1191		clocks = <&cru ACLK_NPU1>, <&cru HCLK_NPU1>,
1192			 <&scmi_clk SCMI_CLK_NPU>, <&cru PCLK_NPU_ROOT>;
1193		clock-names = "aclk", "hclk", "npu", "pclk";
1194		assigned-clocks = <&scmi_clk SCMI_CLK_NPU>;
1195		assigned-clock-rates = <200000000>;
1196		resets = <&cru SRST_A_RKNN1>, <&cru SRST_H_RKNN1>;
1197		reset-names = "srst_a", "srst_h";
1198		power-domains = <&power RK3588_PD_NPU1>;
1199		iommus = <&rknn_mmu_1>;
1200		status = "disabled";
1201	};
1202
1203	rknn_mmu_1: iommu@fdac9000 {
1204		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1205		reg = <0x0 0xfdaca000 0x0 0x100>;
1206		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
1207		clocks = <&cru ACLK_NPU1>, <&cru HCLK_NPU1>;
1208		clock-names = "aclk", "iface";
1209		#iommu-cells = <0>;
1210		power-domains = <&power RK3588_PD_NPU1>;
1211		status = "disabled";
1212	};
1213
1214	rknn_core_2: npu@fdad0000 {
1215		compatible = "rockchip,rk3588-rknn-core";
1216		reg = <0x0 0xfdad0000 0x0 0x1000>,
1217		      <0x0 0xfdad1000 0x0 0x1000>,
1218		      <0x0 0xfdad3000 0x0 0x1000>;
1219		reg-names = "pc", "cna", "core";
1220		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH 0>;
1221		clocks = <&cru ACLK_NPU2>, <&cru HCLK_NPU2>,
1222			 <&scmi_clk SCMI_CLK_NPU>, <&cru PCLK_NPU_ROOT>;
1223		clock-names = "aclk", "hclk", "npu", "pclk";
1224		assigned-clocks = <&scmi_clk SCMI_CLK_NPU>;
1225		assigned-clock-rates = <200000000>;
1226		resets = <&cru SRST_A_RKNN2>, <&cru SRST_H_RKNN2>;
1227		reset-names = "srst_a", "srst_h";
1228		power-domains = <&power RK3588_PD_NPU2>;
1229		iommus = <&rknn_mmu_2>;
1230		status = "disabled";
1231	};
1232
1233	rknn_mmu_2: iommu@fdad9000 {
1234		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1235		reg = <0x0 0xfdada000 0x0 0x100>;
1236		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH 0>;
1237		clocks = <&cru ACLK_NPU2>, <&cru HCLK_NPU2>;
1238		clock-names = "aclk", "iface";
1239		#iommu-cells = <0>;
1240		power-domains = <&power RK3588_PD_NPU2>;
1241		status = "disabled";
1242	};
1243
1244	vpu121: video-codec@fdb50000 {
1245		compatible = "rockchip,rk3588-vpu121", "rockchip,rk3568-vpu";
1246		reg = <0x0 0xfdb50000 0x0 0x800>;
1247		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
1248		interrupt-names = "vdpu";
1249		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
1250		clock-names = "aclk", "hclk";
1251		iommus = <&vpu121_mmu>;
1252		power-domains = <&power RK3588_PD_VDPU>;
1253	};
1254
1255	vpu121_mmu: iommu@fdb50800 {
1256		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1257		reg = <0x0 0xfdb50800 0x0 0x40>;
1258		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
1259		clock-names = "aclk", "iface";
1260		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
1261		power-domains = <&power RK3588_PD_VDPU>;
1262		#iommu-cells = <0>;
1263	};
1264
1265	rga: rga@fdb80000 {
1266		compatible = "rockchip,rk3588-rga", "rockchip,rk3288-rga";
1267		reg = <0x0 0xfdb80000 0x0 0x180>;
1268		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
1269		clocks = <&cru ACLK_RGA2>, <&cru HCLK_RGA2>, <&cru CLK_RGA2_CORE>;
1270		clock-names = "aclk", "hclk", "sclk";
1271		resets = <&cru SRST_RGA2_CORE>, <&cru SRST_A_RGA2>, <&cru SRST_H_RGA2>;
1272		reset-names = "core", "axi", "ahb";
1273		power-domains = <&power RK3588_PD_VDPU>;
1274	};
1275
1276	vepu121_0: video-codec@fdba0000 {
1277		compatible = "rockchip,rk3588-vepu121";
1278		reg = <0x0 0xfdba0000 0x0 0x800>;
1279		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH 0>;
1280		clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>;
1281		clock-names = "aclk", "hclk";
1282		iommus = <&vepu121_0_mmu>;
1283		power-domains = <&power RK3588_PD_VDPU>;
1284	};
1285
1286	vepu121_0_mmu: iommu@fdba0800 {
1287		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1288		reg = <0x0 0xfdba0800 0x0 0x40>;
1289		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH 0>;
1290		clocks = <&cru ACLK_JPEG_ENCODER0>, <&cru HCLK_JPEG_ENCODER0>;
1291		clock-names = "aclk", "iface";
1292		power-domains = <&power RK3588_PD_VDPU>;
1293		#iommu-cells = <0>;
1294	};
1295
1296	vepu121_1: video-codec@fdba4000 {
1297		compatible = "rockchip,rk3588-vepu121";
1298		reg = <0x0 0xfdba4000 0x0 0x800>;
1299		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH 0>;
1300		clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>;
1301		clock-names = "aclk", "hclk";
1302		iommus = <&vepu121_1_mmu>;
1303		power-domains = <&power RK3588_PD_VDPU>;
1304	};
1305
1306	vepu121_1_mmu: iommu@fdba4800 {
1307		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1308		reg = <0x0 0xfdba4800 0x0 0x40>;
1309		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH 0>;
1310		clocks = <&cru ACLK_JPEG_ENCODER1>, <&cru HCLK_JPEG_ENCODER1>;
1311		clock-names = "aclk", "iface";
1312		power-domains = <&power RK3588_PD_VDPU>;
1313		#iommu-cells = <0>;
1314	};
1315
1316	vepu121_2: video-codec@fdba8000 {
1317		compatible = "rockchip,rk3588-vepu121";
1318		reg = <0x0 0xfdba8000 0x0 0x800>;
1319		interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH 0>;
1320		clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>;
1321		clock-names = "aclk", "hclk";
1322		iommus = <&vepu121_2_mmu>;
1323		power-domains = <&power RK3588_PD_VDPU>;
1324	};
1325
1326	vepu121_2_mmu: iommu@fdba8800 {
1327		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1328		reg = <0x0 0xfdba8800 0x0 0x40>;
1329		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH 0>;
1330		clocks = <&cru ACLK_JPEG_ENCODER2>, <&cru HCLK_JPEG_ENCODER2>;
1331		clock-names = "aclk", "iface";
1332		power-domains = <&power RK3588_PD_VDPU>;
1333		#iommu-cells = <0>;
1334	};
1335
1336	vepu121_3: video-codec@fdbac000 {
1337		compatible = "rockchip,rk3588-vepu121";
1338		reg = <0x0 0xfdbac000 0x0 0x800>;
1339		interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH 0>;
1340		clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>;
1341		clock-names = "aclk", "hclk";
1342		iommus = <&vepu121_3_mmu>;
1343		power-domains = <&power RK3588_PD_VDPU>;
1344	};
1345
1346	vepu121_3_mmu: iommu@fdbac800 {
1347		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1348		reg = <0x0 0xfdbac800 0x0 0x40>;
1349		interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH 0>;
1350		clocks = <&cru ACLK_JPEG_ENCODER3>, <&cru HCLK_JPEG_ENCODER3>;
1351		clock-names = "aclk", "iface";
1352		power-domains = <&power RK3588_PD_VDPU>;
1353		#iommu-cells = <0>;
1354	};
1355
1356	av1d: video-codec@fdc70000 {
1357		compatible = "rockchip,rk3588-av1-vpu";
1358		reg = <0x0 0xfdc70000 0x0 0x800>;
1359		interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
1360		interrupt-names = "vdpu";
1361		assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
1362		assigned-clock-rates = <400000000>, <400000000>;
1363		clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
1364		clock-names = "aclk", "hclk";
1365		power-domains = <&power RK3588_PD_AV1>;
1366		resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
1367	};
1368
1369	vop: vop@fdd90000 {
1370		compatible = "rockchip,rk3588-vop";
1371		reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
1372		reg-names = "vop", "gamma-lut";
1373		interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
1374		clocks = <&cru ACLK_VOP>,
1375			 <&cru HCLK_VOP>,
1376			 <&cru DCLK_VOP0>,
1377			 <&cru DCLK_VOP1>,
1378			 <&cru DCLK_VOP2>,
1379			 <&cru DCLK_VOP3>,
1380			 <&cru PCLK_VOP_ROOT>,
1381			 <&hdptxphy0>;
1382		clock-names = "aclk",
1383			      "hclk",
1384			      "dclk_vp0",
1385			      "dclk_vp1",
1386			      "dclk_vp2",
1387			      "dclk_vp3",
1388			      "pclk_vop",
1389			      "pll_hdmiphy0";
1390		iommus = <&vop_mmu>;
1391		power-domains = <&power RK3588_PD_VOP>;
1392		rockchip,grf = <&sys_grf>;
1393		rockchip,vop-grf = <&vop_grf>;
1394		rockchip,vo1-grf = <&vo1_grf>;
1395		rockchip,pmu = <&pmu>;
1396		status = "disabled";
1397
1398		vop_out: ports {
1399			#address-cells = <1>;
1400			#size-cells = <0>;
1401
1402			vp0: port@0 {
1403				#address-cells = <1>;
1404				#size-cells = <0>;
1405				reg = <0>;
1406			};
1407
1408			vp1: port@1 {
1409				#address-cells = <1>;
1410				#size-cells = <0>;
1411				reg = <1>;
1412			};
1413
1414			vp2: port@2 {
1415				#address-cells = <1>;
1416				#size-cells = <0>;
1417				reg = <2>;
1418			};
1419
1420			vp3: port@3 {
1421				#address-cells = <1>;
1422				#size-cells = <0>;
1423				reg = <3>;
1424			};
1425		};
1426	};
1427
1428	vop_mmu: iommu@fdd97e00 {
1429		compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
1430		reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
1431		interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
1432		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
1433		clock-names = "aclk", "iface";
1434		#iommu-cells = <0>;
1435		power-domains = <&power RK3588_PD_VOP>;
1436		status = "disabled";
1437	};
1438
1439	spdif_tx2: spdif-tx@fddb0000 {
1440		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
1441		reg = <0x0 0xfddb0000 0x0 0x1000>;
1442		assigned-clock-parents = <&cru PLL_AUPLL>;
1443		assigned-clocks = <&cru CLK_SPDIF2_DP0_SRC>;
1444		clock-names = "mclk", "hclk";
1445		clocks = <&cru MCLK_SPDIF2>, <&cru HCLK_SPDIF2_DP0>;
1446		dma-names = "tx";
1447		dmas = <&dmac1 6>;
1448		interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH 0>;
1449		power-domains = <&power RK3588_PD_VO0>;
1450		#sound-dai-cells = <0>;
1451		status = "disabled";
1452	};
1453
1454	i2s4_8ch: i2s@fddc0000 {
1455		compatible = "rockchip,rk3588-i2s-tdm";
1456		reg = <0x0 0xfddc0000 0x0 0x1000>;
1457		interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH 0>;
1458		clocks = <&cru MCLK_I2S4_8CH_TX>, <&cru MCLK_I2S4_8CH_TX>, <&cru HCLK_I2S4_8CH>;
1459		clock-names = "mclk_tx", "mclk_rx", "hclk";
1460		assigned-clocks = <&cru CLK_I2S4_8CH_TX_SRC>;
1461		assigned-clock-parents = <&cru PLL_AUPLL>;
1462		dmas = <&dmac2 0>;
1463		dma-names = "tx";
1464		power-domains = <&power RK3588_PD_VO0>;
1465		resets = <&cru SRST_M_I2S4_8CH_TX>;
1466		reset-names = "tx-m";
1467		#sound-dai-cells = <0>;
1468		status = "disabled";
1469	};
1470
1471	spdif_tx3: spdif-tx@fdde0000 {
1472		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
1473		reg = <0x0 0xfdde0000 0x0 0x1000>;
1474		assigned-clock-parents = <&cru PLL_AUPLL>;
1475		assigned-clocks = <&cru CLK_SPDIF3_SRC>;
1476		clock-names = "mclk", "hclk";
1477		clocks = <&cru MCLK_SPDIF3>, <&cru HCLK_SPDIF3>;
1478		dma-names = "tx";
1479		dmas = <&dmac1 7>;
1480		interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH 0>;
1481		power-domains = <&power RK3588_PD_VO1>;
1482		#sound-dai-cells = <0>;
1483		status = "disabled";
1484	};
1485
1486	i2s5_8ch: i2s@fddf0000 {
1487		compatible = "rockchip,rk3588-i2s-tdm";
1488		reg = <0x0 0xfddf0000 0x0 0x1000>;
1489		interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH 0>;
1490		clocks = <&cru MCLK_I2S5_8CH_TX>, <&cru MCLK_I2S5_8CH_TX>, <&cru HCLK_I2S5_8CH>;
1491		clock-names = "mclk_tx", "mclk_rx", "hclk";
1492		assigned-clocks = <&cru CLK_I2S5_8CH_TX_SRC>;
1493		assigned-clock-parents = <&cru PLL_AUPLL>;
1494		dmas = <&dmac2 2>;
1495		dma-names = "tx";
1496		power-domains = <&power RK3588_PD_VO1>;
1497		resets = <&cru SRST_M_I2S5_8CH_TX>;
1498		reset-names = "tx-m";
1499		#sound-dai-cells = <0>;
1500		status = "disabled";
1501	};
1502
1503	i2s9_8ch: i2s@fddfc000 {
1504		compatible = "rockchip,rk3588-i2s-tdm";
1505		reg = <0x0 0xfddfc000 0x0 0x1000>;
1506		interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH 0>;
1507		clocks = <&cru MCLK_I2S9_8CH_RX>, <&cru MCLK_I2S9_8CH_RX>, <&cru HCLK_I2S9_8CH>;
1508		clock-names = "mclk_tx", "mclk_rx", "hclk";
1509		assigned-clocks = <&cru CLK_I2S9_8CH_RX_SRC>;
1510		assigned-clock-parents = <&cru PLL_AUPLL>;
1511		dmas = <&dmac2 23>;
1512		dma-names = "rx";
1513		power-domains = <&power RK3588_PD_VO1>;
1514		resets = <&cru SRST_M_I2S9_8CH_RX>;
1515		reset-names = "rx-m";
1516		#sound-dai-cells = <0>;
1517		status = "disabled";
1518	};
1519
1520	dsi0: dsi@fde20000 {
1521		compatible = "rockchip,rk3588-mipi-dsi2";
1522		reg = <0x0 0xfde20000 0x0 0x10000>;
1523		interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH 0>;
1524		clocks = <&cru PCLK_DSIHOST0>, <&cru CLK_DSIHOST0>;
1525		clock-names = "pclk", "sys";
1526		resets = <&cru SRST_P_DSIHOST0>;
1527		reset-names = "apb";
1528		power-domains = <&power RK3588_PD_VOP>;
1529		phys = <&mipidcphy0 PHY_TYPE_DPHY>;
1530		phy-names = "dcphy";
1531		rockchip,grf = <&vop_grf>;
1532		status = "disabled";
1533
1534		ports {
1535			#address-cells = <1>;
1536			#size-cells = <0>;
1537
1538			dsi0_in: port@0 {
1539				reg = <0>;
1540			};
1541
1542			dsi0_out: port@1 {
1543				reg = <1>;
1544			};
1545		};
1546	};
1547
1548	dsi1: dsi@fde30000 {
1549		compatible = "rockchip,rk3588-mipi-dsi2";
1550		reg = <0x0 0xfde30000 0x0 0x10000>;
1551		interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH 0>;
1552		clocks = <&cru PCLK_DSIHOST1>, <&cru CLK_DSIHOST1>;
1553		clock-names = "pclk", "sys";
1554		resets = <&cru SRST_P_DSIHOST1>;
1555		reset-names = "apb";
1556		power-domains = <&power RK3588_PD_VOP>;
1557		phys = <&mipidcphy1 PHY_TYPE_DPHY>;
1558		phy-names = "dcphy";
1559		rockchip,grf = <&vop_grf>;
1560		status = "disabled";
1561
1562		ports {
1563			#address-cells = <1>;
1564			#size-cells = <0>;
1565
1566			dsi1_in: port@0 {
1567				reg = <0>;
1568			};
1569
1570			dsi1_out: port@1 {
1571				reg = <1>;
1572			};
1573		};
1574	};
1575
1576	dp0: dp@fde50000 {
1577		compatible = "rockchip,rk3588-dp";
1578		reg = <0x0 0xfde50000 0x0 0x4000>;
1579		interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH 0>;
1580		assigned-clocks = <&cru CLK_AUX16M_0>;
1581		assigned-clock-rates = <16000000>;
1582		clocks = <&cru PCLK_DP0>, <&cru CLK_AUX16M_0>,
1583			 <&cru CLK_DP0>, <&cru MCLK_I2S4_8CH_TX>,
1584			 <&cru MCLK_SPDIF2_DP0>;
1585		clock-names = "apb", "aux", "hdcp", "i2s", "spdif";
1586		phys = <&usbdp_phy0 PHY_TYPE_DP>;
1587		power-domains = <&power RK3588_PD_VO0>;
1588		resets = <&cru SRST_DP0>;
1589		#sound-dai-cells = <0>;
1590		status = "disabled";
1591
1592		ports {
1593			#address-cells = <1>;
1594			#size-cells = <0>;
1595
1596			dp0_in: port@0 {
1597				reg = <0>;
1598			};
1599
1600			dp0_out: port@1 {
1601				reg = <1>;
1602			};
1603		};
1604	};
1605
1606	hdmi0: hdmi@fde80000 {
1607		compatible = "rockchip,rk3588-dw-hdmi-qp";
1608		reg = <0x0 0xfde80000 0x0 0x20000>;
1609		clocks = <&cru PCLK_HDMITX0>,
1610			 <&cru CLK_HDMITX0_EARC>,
1611			 <&cru CLK_HDMITX0_REF>,
1612			 <&cru MCLK_I2S5_8CH_TX>,
1613			 <&cru CLK_HDMIHDP0>,
1614			 <&cru HCLK_VO1>;
1615		clock-names = "pclk", "earc", "ref", "aud", "hdp", "hclk_vo1";
1616		interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH 0>,
1617			     <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH 0>,
1618			     <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH 0>,
1619			     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH 0>,
1620			     <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH 0>;
1621		interrupt-names = "avp", "cec", "earc", "main", "hpd";
1622		phys = <&hdptxphy0>;
1623		pinctrl-names = "default";
1624		pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd
1625			     &hdmim0_tx0_scl &hdmim0_tx0_sda>;
1626		power-domains = <&power RK3588_PD_VO1>;
1627		resets = <&cru SRST_HDMITX0_REF>, <&cru SRST_HDMIHDP0>;
1628		reset-names = "ref", "hdp";
1629		rockchip,grf = <&sys_grf>;
1630		rockchip,vo-grf = <&vo1_grf>;
1631		#sound-dai-cells = <0>;
1632		status = "disabled";
1633
1634		ports {
1635			#address-cells = <1>;
1636			#size-cells = <0>;
1637
1638			hdmi0_in: port@0 {
1639				reg = <0>;
1640			};
1641
1642			hdmi0_out: port@1 {
1643				reg = <1>;
1644			};
1645		};
1646	};
1647
1648	edp0: edp@fdec0000 {
1649		compatible = "rockchip,rk3588-edp";
1650		reg = <0x0 0xfdec0000 0x0 0x1000>;
1651		clocks = <&cru CLK_EDP0_24M>, <&cru PCLK_EDP0>;
1652		clock-names = "dp", "pclk";
1653		interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH 0>;
1654		phys = <&hdptxphy0>;
1655		phy-names = "dp";
1656		power-domains = <&power RK3588_PD_VO1>;
1657		resets = <&cru SRST_EDP0_24M>, <&cru SRST_P_EDP0>;
1658		reset-names = "dp", "apb";
1659		rockchip,grf = <&vo1_grf>;
1660		status = "disabled";
1661
1662		ports {
1663			#address-cells = <1>;
1664			#size-cells = <0>;
1665
1666			edp0_in: port@0 {
1667				reg = <0>;
1668			};
1669
1670			edp0_out: port@1 {
1671				reg = <1>;
1672			};
1673		};
1674	};
1675
1676	qos_gpu_m0: qos@fdf35000 {
1677		compatible = "rockchip,rk3588-qos", "syscon";
1678		reg = <0x0 0xfdf35000 0x0 0x20>;
1679	};
1680
1681	qos_gpu_m1: qos@fdf35200 {
1682		compatible = "rockchip,rk3588-qos", "syscon";
1683		reg = <0x0 0xfdf35200 0x0 0x20>;
1684	};
1685
1686	qos_gpu_m2: qos@fdf35400 {
1687		compatible = "rockchip,rk3588-qos", "syscon";
1688		reg = <0x0 0xfdf35400 0x0 0x20>;
1689	};
1690
1691	qos_gpu_m3: qos@fdf35600 {
1692		compatible = "rockchip,rk3588-qos", "syscon";
1693		reg = <0x0 0xfdf35600 0x0 0x20>;
1694	};
1695
1696	qos_rga3_1: qos@fdf36000 {
1697		compatible = "rockchip,rk3588-qos", "syscon";
1698		reg = <0x0 0xfdf36000 0x0 0x20>;
1699	};
1700
1701	qos_sdio: qos@fdf39000 {
1702		compatible = "rockchip,rk3588-qos", "syscon";
1703		reg = <0x0 0xfdf39000 0x0 0x20>;
1704	};
1705
1706	qos_sdmmc: qos@fdf3d800 {
1707		compatible = "rockchip,rk3588-qos", "syscon";
1708		reg = <0x0 0xfdf3d800 0x0 0x20>;
1709	};
1710
1711	qos_usb3_1: qos@fdf3e000 {
1712		compatible = "rockchip,rk3588-qos", "syscon";
1713		reg = <0x0 0xfdf3e000 0x0 0x20>;
1714	};
1715
1716	qos_usb3_0: qos@fdf3e200 {
1717		compatible = "rockchip,rk3588-qos", "syscon";
1718		reg = <0x0 0xfdf3e200 0x0 0x20>;
1719	};
1720
1721	qos_usb2host_0: qos@fdf3e400 {
1722		compatible = "rockchip,rk3588-qos", "syscon";
1723		reg = <0x0 0xfdf3e400 0x0 0x20>;
1724	};
1725
1726	qos_usb2host_1: qos@fdf3e600 {
1727		compatible = "rockchip,rk3588-qos", "syscon";
1728		reg = <0x0 0xfdf3e600 0x0 0x20>;
1729	};
1730
1731	qos_fisheye0: qos@fdf40000 {
1732		compatible = "rockchip,rk3588-qos", "syscon";
1733		reg = <0x0 0xfdf40000 0x0 0x20>;
1734	};
1735
1736	qos_fisheye1: qos@fdf40200 {
1737		compatible = "rockchip,rk3588-qos", "syscon";
1738		reg = <0x0 0xfdf40200 0x0 0x20>;
1739	};
1740
1741	qos_isp0_mro: qos@fdf40400 {
1742		compatible = "rockchip,rk3588-qos", "syscon";
1743		reg = <0x0 0xfdf40400 0x0 0x20>;
1744	};
1745
1746	qos_isp0_mwo: qos@fdf40500 {
1747		compatible = "rockchip,rk3588-qos", "syscon";
1748		reg = <0x0 0xfdf40500 0x0 0x20>;
1749	};
1750
1751	qos_vicap_m0: qos@fdf40600 {
1752		compatible = "rockchip,rk3588-qos", "syscon";
1753		reg = <0x0 0xfdf40600 0x0 0x20>;
1754	};
1755
1756	qos_vicap_m1: qos@fdf40800 {
1757		compatible = "rockchip,rk3588-qos", "syscon";
1758		reg = <0x0 0xfdf40800 0x0 0x20>;
1759	};
1760
1761	qos_isp1_mwo: qos@fdf41000 {
1762		compatible = "rockchip,rk3588-qos", "syscon";
1763		reg = <0x0 0xfdf41000 0x0 0x20>;
1764	};
1765
1766	qos_isp1_mro: qos@fdf41100 {
1767		compatible = "rockchip,rk3588-qos", "syscon";
1768		reg = <0x0 0xfdf41100 0x0 0x20>;
1769	};
1770
1771	qos_rkvenc0_m0ro: qos@fdf60000 {
1772		compatible = "rockchip,rk3588-qos", "syscon";
1773		reg = <0x0 0xfdf60000 0x0 0x20>;
1774	};
1775
1776	qos_rkvenc0_m1ro: qos@fdf60200 {
1777		compatible = "rockchip,rk3588-qos", "syscon";
1778		reg = <0x0 0xfdf60200 0x0 0x20>;
1779	};
1780
1781	qos_rkvenc0_m2wo: qos@fdf60400 {
1782		compatible = "rockchip,rk3588-qos", "syscon";
1783		reg = <0x0 0xfdf60400 0x0 0x20>;
1784	};
1785
1786	qos_rkvenc1_m0ro: qos@fdf61000 {
1787		compatible = "rockchip,rk3588-qos", "syscon";
1788		reg = <0x0 0xfdf61000 0x0 0x20>;
1789	};
1790
1791	qos_rkvenc1_m1ro: qos@fdf61200 {
1792		compatible = "rockchip,rk3588-qos", "syscon";
1793		reg = <0x0 0xfdf61200 0x0 0x20>;
1794	};
1795
1796	qos_rkvenc1_m2wo: qos@fdf61400 {
1797		compatible = "rockchip,rk3588-qos", "syscon";
1798		reg = <0x0 0xfdf61400 0x0 0x20>;
1799	};
1800
1801	qos_rkvdec0: qos@fdf62000 {
1802		compatible = "rockchip,rk3588-qos", "syscon";
1803		reg = <0x0 0xfdf62000 0x0 0x20>;
1804	};
1805
1806	qos_rkvdec1: qos@fdf63000 {
1807		compatible = "rockchip,rk3588-qos", "syscon";
1808		reg = <0x0 0xfdf63000 0x0 0x20>;
1809	};
1810
1811	qos_av1: qos@fdf64000 {
1812		compatible = "rockchip,rk3588-qos", "syscon";
1813		reg = <0x0 0xfdf64000 0x0 0x20>;
1814	};
1815
1816	qos_iep: qos@fdf66000 {
1817		compatible = "rockchip,rk3588-qos", "syscon";
1818		reg = <0x0 0xfdf66000 0x0 0x20>;
1819	};
1820
1821	qos_jpeg_dec: qos@fdf66200 {
1822		compatible = "rockchip,rk3588-qos", "syscon";
1823		reg = <0x0 0xfdf66200 0x0 0x20>;
1824	};
1825
1826	qos_jpeg_enc0: qos@fdf66400 {
1827		compatible = "rockchip,rk3588-qos", "syscon";
1828		reg = <0x0 0xfdf66400 0x0 0x20>;
1829	};
1830
1831	qos_jpeg_enc1: qos@fdf66600 {
1832		compatible = "rockchip,rk3588-qos", "syscon";
1833		reg = <0x0 0xfdf66600 0x0 0x20>;
1834	};
1835
1836	qos_jpeg_enc2: qos@fdf66800 {
1837		compatible = "rockchip,rk3588-qos", "syscon";
1838		reg = <0x0 0xfdf66800 0x0 0x20>;
1839	};
1840
1841	qos_jpeg_enc3: qos@fdf66a00 {
1842		compatible = "rockchip,rk3588-qos", "syscon";
1843		reg = <0x0 0xfdf66a00 0x0 0x20>;
1844	};
1845
1846	qos_rga2_mro: qos@fdf66c00 {
1847		compatible = "rockchip,rk3588-qos", "syscon";
1848		reg = <0x0 0xfdf66c00 0x0 0x20>;
1849	};
1850
1851	qos_rga2_mwo: qos@fdf66e00 {
1852		compatible = "rockchip,rk3588-qos", "syscon";
1853		reg = <0x0 0xfdf66e00 0x0 0x20>;
1854	};
1855
1856	qos_rga3_0: qos@fdf67000 {
1857		compatible = "rockchip,rk3588-qos", "syscon";
1858		reg = <0x0 0xfdf67000 0x0 0x20>;
1859	};
1860
1861	qos_vdpu: qos@fdf67200 {
1862		compatible = "rockchip,rk3588-qos", "syscon";
1863		reg = <0x0 0xfdf67200 0x0 0x20>;
1864	};
1865
1866	qos_npu1: qos@fdf70000 {
1867		compatible = "rockchip,rk3588-qos", "syscon";
1868		reg = <0x0 0xfdf70000 0x0 0x20>;
1869	};
1870
1871	qos_npu2: qos@fdf71000 {
1872		compatible = "rockchip,rk3588-qos", "syscon";
1873		reg = <0x0 0xfdf71000 0x0 0x20>;
1874	};
1875
1876	qos_npu0_mwr: qos@fdf72000 {
1877		compatible = "rockchip,rk3588-qos", "syscon";
1878		reg = <0x0 0xfdf72000 0x0 0x20>;
1879	};
1880
1881	qos_npu0_mro: qos@fdf72200 {
1882		compatible = "rockchip,rk3588-qos", "syscon";
1883		reg = <0x0 0xfdf72200 0x0 0x20>;
1884	};
1885
1886	qos_mcu_npu: qos@fdf72400 {
1887		compatible = "rockchip,rk3588-qos", "syscon";
1888		reg = <0x0 0xfdf72400 0x0 0x20>;
1889	};
1890
1891	qos_hdcp0: qos@fdf80000 {
1892		compatible = "rockchip,rk3588-qos", "syscon";
1893		reg = <0x0 0xfdf80000 0x0 0x20>;
1894	};
1895
1896	qos_hdcp1: qos@fdf81000 {
1897		compatible = "rockchip,rk3588-qos", "syscon";
1898		reg = <0x0 0xfdf81000 0x0 0x20>;
1899	};
1900
1901	qos_hdmirx: qos@fdf81200 {
1902		compatible = "rockchip,rk3588-qos", "syscon";
1903		reg = <0x0 0xfdf81200 0x0 0x20>;
1904	};
1905
1906	qos_vop_m0: qos@fdf82000 {
1907		compatible = "rockchip,rk3588-qos", "syscon";
1908		reg = <0x0 0xfdf82000 0x0 0x20>;
1909	};
1910
1911	qos_vop_m1: qos@fdf82200 {
1912		compatible = "rockchip,rk3588-qos", "syscon";
1913		reg = <0x0 0xfdf82200 0x0 0x20>;
1914	};
1915
1916	dfi: dfi@fe060000 {
1917		reg = <0x00 0xfe060000 0x00 0x10000>;
1918		compatible = "rockchip,rk3588-dfi";
1919		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
1920			     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
1921			     <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
1922			     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
1923		rockchip,pmu = <&pmu1grf>;
1924	};
1925
1926	pcie2x1l1: pcie@fe180000 {
1927		compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
1928		bus-range = <0x30 0x3f>;
1929		clocks = <&cru ACLK_PCIE_1L1_MSTR>, <&cru ACLK_PCIE_1L1_SLV>,
1930			 <&cru ACLK_PCIE_1L1_DBI>, <&cru PCLK_PCIE_1L1>,
1931			 <&cru CLK_PCIE_AUX3>, <&cru CLK_PCIE1L1_PIPE>;
1932		clock-names = "aclk_mst", "aclk_slv",
1933			      "aclk_dbi", "pclk",
1934			      "aux", "pipe";
1935		device_type = "pci";
1936		interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH 0>,
1937			     <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH 0>,
1938			     <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH 0>,
1939			     <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH 0>,
1940			     <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH 0>;
1941		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
1942		#interrupt-cells = <1>;
1943		interrupt-map-mask = <0 0 0 7>;
1944		interrupt-map = <0 0 0 1 &pcie2x1l1_intc 0>,
1945				<0 0 0 2 &pcie2x1l1_intc 1>,
1946				<0 0 0 3 &pcie2x1l1_intc 2>,
1947				<0 0 0 4 &pcie2x1l1_intc 3>;
1948		linux,pci-domain = <3>;
1949		max-link-speed = <2>;
1950		msi-map = <0x3000 &its0 0x3000 0x1000>;
1951		iommu-map = <0x3000 &mmu600_pcie 0x3000 0x1000>;
1952		num-lanes = <1>;
1953		phys = <&combphy2_psu PHY_TYPE_PCIE>;
1954		phy-names = "pcie-phy";
1955		power-domains = <&power RK3588_PD_PCIE>;
1956		ranges = <0x01000000 0x0 0xf3100000 0x0 0xf3100000 0x0 0x00100000>,
1957			 <0x02000000 0x0 0xf3200000 0x0 0xf3200000 0x0 0x00e00000>,
1958			 <0x03000000 0x0 0x40000000 0x9 0xc0000000 0x0 0x40000000>;
1959		reg = <0xa 0x40c00000 0x0 0x00400000>,
1960		      <0x0 0xfe180000 0x0 0x00010000>,
1961		      <0x0 0xf3000000 0x0 0x00100000>;
1962		reg-names = "dbi", "apb", "config";
1963		resets = <&cru SRST_PCIE3_POWER_UP>, <&cru SRST_P_PCIE3>;
1964		reset-names = "pwr", "pipe";
1965		#address-cells = <3>;
1966		#size-cells = <2>;
1967		status = "disabled";
1968
1969		pcie2x1l1_intc: legacy-interrupt-controller {
1970			interrupt-controller;
1971			#address-cells = <0>;
1972			#interrupt-cells = <1>;
1973			interrupt-parent = <&gic>;
1974			interrupts = <GIC_SPI 245 IRQ_TYPE_EDGE_RISING 0>;
1975		};
1976	};
1977
1978	pcie2x1l2: pcie@fe190000 {
1979		compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
1980		bus-range = <0x40 0x4f>;
1981		clocks = <&cru ACLK_PCIE_1L2_MSTR>, <&cru ACLK_PCIE_1L2_SLV>,
1982			 <&cru ACLK_PCIE_1L2_DBI>, <&cru PCLK_PCIE_1L2>,
1983			 <&cru CLK_PCIE_AUX4>, <&cru CLK_PCIE1L2_PIPE>;
1984		clock-names = "aclk_mst", "aclk_slv",
1985			      "aclk_dbi", "pclk",
1986			      "aux", "pipe";
1987		device_type = "pci";
1988		interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH 0>,
1989			     <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH 0>,
1990			     <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>,
1991			     <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH 0>,
1992			     <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH 0>;
1993		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
1994		#interrupt-cells = <1>;
1995		interrupt-map-mask = <0 0 0 7>;
1996		interrupt-map = <0 0 0 1 &pcie2x1l2_intc 0>,
1997				<0 0 0 2 &pcie2x1l2_intc 1>,
1998				<0 0 0 3 &pcie2x1l2_intc 2>,
1999				<0 0 0 4 &pcie2x1l2_intc 3>;
2000		linux,pci-domain = <4>;
2001		max-link-speed = <2>;
2002		msi-map = <0x4000 &its0 0x4000 0x1000>;
2003		iommu-map = <0x4000 &mmu600_pcie 0x4000 0x1000>;
2004		num-lanes = <1>;
2005		phys = <&combphy0_ps PHY_TYPE_PCIE>;
2006		phy-names = "pcie-phy";
2007		power-domains = <&power RK3588_PD_PCIE>;
2008		ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>,
2009			 <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x00e00000>,
2010			 <0x03000000 0x0 0x40000000 0xa 0x00000000 0x0 0x40000000>;
2011		reg = <0xa 0x41000000 0x0 0x00400000>,
2012		      <0x0 0xfe190000 0x0 0x00010000>,
2013		      <0x0 0xf4000000 0x0 0x00100000>;
2014		reg-names = "dbi", "apb", "config";
2015		resets = <&cru SRST_PCIE4_POWER_UP>, <&cru SRST_P_PCIE4>;
2016		reset-names = "pwr", "pipe";
2017		#address-cells = <3>;
2018		#size-cells = <2>;
2019		status = "disabled";
2020
2021		pcie2x1l2_intc: legacy-interrupt-controller {
2022			interrupt-controller;
2023			#address-cells = <0>;
2024			#interrupt-cells = <1>;
2025			interrupt-parent = <&gic>;
2026			interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING 0>;
2027		};
2028	};
2029
2030	gmac1: ethernet@fe1c0000 {
2031		compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
2032		reg = <0x0 0xfe1c0000 0x0 0x10000>;
2033		interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH 0>,
2034			     <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>;
2035		interrupt-names = "macirq", "eth_wake_irq";
2036		clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
2037			 <&cru PCLK_GMAC1>, <&cru ACLK_GMAC1>,
2038			 <&cru CLK_GMAC1_PTP_REF>;
2039		clock-names = "stmmaceth", "clk_mac_ref",
2040			      "pclk_mac", "aclk_mac",
2041			      "ptp_ref";
2042		power-domains = <&power RK3588_PD_GMAC>;
2043		resets = <&cru SRST_A_GMAC1>;
2044		reset-names = "stmmaceth";
2045		rockchip,grf = <&sys_grf>;
2046		rockchip,php-grf = <&php_grf>;
2047		snps,axi-config = <&gmac1_stmmac_axi_setup>;
2048		snps,mixed-burst;
2049		snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
2050		snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
2051		snps,tso;
2052		status = "disabled";
2053
2054		mdio1: mdio {
2055			compatible = "snps,dwmac-mdio";
2056			#address-cells = <0x1>;
2057			#size-cells = <0x0>;
2058		};
2059
2060		gmac1_stmmac_axi_setup: stmmac-axi-config {
2061			snps,blen = <0 0 0 0 16 8 4>;
2062			snps,wr_osr_lmt = <4>;
2063			snps,rd_osr_lmt = <8>;
2064		};
2065
2066		gmac1_mtl_rx_setup: rx-queues-config {
2067			snps,rx-queues-to-use = <2>;
2068			queue0 {};
2069			queue1 {};
2070		};
2071
2072		gmac1_mtl_tx_setup: tx-queues-config {
2073			snps,tx-queues-to-use = <2>;
2074			queue0 {};
2075			queue1 {};
2076		};
2077	};
2078
2079	sata0: sata@fe210000 {
2080		compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
2081		reg = <0 0xfe210000 0 0x1000>;
2082		interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 0>;
2083		clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>,
2084			 <&cru CLK_RXOOB0>, <&cru CLK_PIPEPHY0_REF>,
2085			 <&cru CLK_PIPEPHY0_PIPE_ASIC_G>;
2086		clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
2087		ports-implemented = <0x1>;
2088		#address-cells = <1>;
2089		#size-cells = <0>;
2090		status = "disabled";
2091
2092		sata-port@0 {
2093			reg = <0>;
2094			hba-port-cap = <HBA_PORT_FBSCP>;
2095			phys = <&combphy0_ps PHY_TYPE_SATA>;
2096			phy-names = "sata-phy";
2097			snps,rx-ts-max = <32>;
2098			snps,tx-ts-max = <32>;
2099		};
2100	};
2101
2102	sata2: sata@fe230000 {
2103		compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
2104		reg = <0 0xfe230000 0 0x1000>;
2105		interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH 0>;
2106		clocks = <&cru ACLK_SATA2>, <&cru CLK_PMALIVE2>,
2107			 <&cru CLK_RXOOB2>, <&cru CLK_PIPEPHY2_REF>,
2108			 <&cru CLK_PIPEPHY2_PIPE_ASIC_G>;
2109		clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
2110		ports-implemented = <0x1>;
2111		#address-cells = <1>;
2112		#size-cells = <0>;
2113		status = "disabled";
2114
2115		sata-port@0 {
2116			reg = <0>;
2117			hba-port-cap = <HBA_PORT_FBSCP>;
2118			phys = <&combphy2_psu PHY_TYPE_SATA>;
2119			phy-names = "sata-phy";
2120			snps,rx-ts-max = <32>;
2121			snps,tx-ts-max = <32>;
2122		};
2123	};
2124
2125	sfc: spi@fe2b0000 {
2126		compatible = "rockchip,sfc";
2127		reg = <0x0 0xfe2b0000 0x0 0x4000>;
2128		interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 0>;
2129		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
2130		clock-names = "clk_sfc", "hclk_sfc";
2131		#address-cells = <1>;
2132		#size-cells = <0>;
2133		status = "disabled";
2134	};
2135
2136	sdmmc: mmc@fe2c0000 {
2137		compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
2138		reg = <0x0 0xfe2c0000 0x0 0x4000>;
2139		interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 0>;
2140		clocks = <&scmi_clk SCMI_HCLK_SD>, <&scmi_clk SCMI_CCLK_SD>,
2141			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
2142		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
2143		fifo-depth = <0x100>;
2144		max-frequency = <200000000>;
2145		pinctrl-names = "default";
2146		pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
2147		power-domains = <&power RK3588_PD_SDMMC>;
2148		status = "disabled";
2149	};
2150
2151	sdio: mmc@fe2d0000 {
2152		compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
2153		reg = <0x00 0xfe2d0000 0x00 0x4000>;
2154		interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 0>;
2155		clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>,
2156			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
2157		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
2158		fifo-depth = <0x100>;
2159		max-frequency = <200000000>;
2160		pinctrl-names = "default";
2161		pinctrl-0 = <&sdiom1_pins>;
2162		power-domains = <&power RK3588_PD_SDIO>;
2163		status = "disabled";
2164	};
2165
2166	sdhci: mmc@fe2e0000 {
2167		compatible = "rockchip,rk3588-dwcmshc";
2168		reg = <0x0 0xfe2e0000 0x0 0x10000>;
2169		interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 0>;
2170		assigned-clocks = <&cru BCLK_EMMC>, <&cru TMCLK_EMMC>, <&cru CCLK_EMMC>;
2171		assigned-clock-rates = <200000000>, <24000000>, <200000000>;
2172		clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
2173			 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
2174			 <&cru TMCLK_EMMC>;
2175		clock-names = "core", "bus", "axi", "block", "timer";
2176		max-frequency = <200000000>;
2177		pinctrl-0 = <&emmc_rstnout>, <&emmc_bus8>, <&emmc_clk>,
2178			    <&emmc_cmd>, <&emmc_data_strobe>;
2179		pinctrl-names = "default";
2180		resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,
2181			 <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,
2182			 <&cru SRST_T_EMMC>;
2183		reset-names = "core", "bus", "axi", "block", "timer";
2184		status = "disabled";
2185	};
2186
2187	rng@fe378000 {
2188		compatible = "rockchip,rk3588-rng";
2189		reg = <0x0 0xfe378000 0x0 0x200>;
2190		interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH 0>;
2191		clocks = <&scmi_clk SCMI_HCLK_SECURE_NS>;
2192		resets = <&scmi_reset SCMI_SRST_H_TRNG_NS>;
2193	};
2194
2195	i2s0_8ch: i2s@fe470000 {
2196		compatible = "rockchip,rk3588-i2s-tdm";
2197		reg = <0x0 0xfe470000 0x0 0x1000>;
2198		interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH 0>;
2199		clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
2200		clock-names = "mclk_tx", "mclk_rx", "hclk";
2201		assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>;
2202		assigned-clock-parents = <&cru PLL_AUPLL>, <&cru PLL_AUPLL>;
2203		dmas = <&dmac0 0>, <&dmac0 1>;
2204		dma-names = "tx", "rx";
2205		power-domains = <&power RK3588_PD_AUDIO>;
2206		resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
2207		reset-names = "tx-m", "rx-m";
2208		rockchip,trcm-sync-tx-only;
2209		pinctrl-names = "default";
2210		pinctrl-0 = <&i2s0_lrck
2211			     &i2s0_sclk
2212			     &i2s0_sdi0
2213			     &i2s0_sdi1
2214			     &i2s0_sdi2
2215			     &i2s0_sdi3
2216			     &i2s0_sdo0
2217			     &i2s0_sdo1
2218			     &i2s0_sdo2
2219			     &i2s0_sdo3>;
2220		#sound-dai-cells = <0>;
2221		status = "disabled";
2222	};
2223
2224	i2s1_8ch: i2s@fe480000 {
2225		compatible = "rockchip,rk3588-i2s-tdm";
2226		reg = <0x0 0xfe480000 0x0 0x1000>;
2227		interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>;
2228		clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
2229		clock-names = "mclk_tx", "mclk_rx", "hclk";
2230		dmas = <&dmac0 2>, <&dmac0 3>;
2231		dma-names = "tx", "rx";
2232		resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
2233		reset-names = "tx-m", "rx-m";
2234		rockchip,trcm-sync-tx-only;
2235		pinctrl-names = "default";
2236		pinctrl-0 = <&i2s1m0_lrck
2237			     &i2s1m0_sclk
2238			     &i2s1m0_sdi0
2239			     &i2s1m0_sdi1
2240			     &i2s1m0_sdi2
2241			     &i2s1m0_sdi3
2242			     &i2s1m0_sdo0
2243			     &i2s1m0_sdo1
2244			     &i2s1m0_sdo2
2245			     &i2s1m0_sdo3>;
2246		#sound-dai-cells = <0>;
2247		status = "disabled";
2248	};
2249
2250	i2s2_2ch: i2s@fe490000 {
2251		compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
2252		reg = <0x0 0xfe490000 0x0 0x1000>;
2253		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>;
2254		clocks = <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
2255		clock-names = "i2s_clk", "i2s_hclk";
2256		assigned-clocks = <&cru CLK_I2S2_2CH_SRC>;
2257		assigned-clock-parents = <&cru PLL_AUPLL>;
2258		dmas = <&dmac1 0>, <&dmac1 1>;
2259		dma-names = "tx", "rx";
2260		power-domains = <&power RK3588_PD_AUDIO>;
2261		pinctrl-names = "default";
2262		pinctrl-0 = <&i2s2m1_lrck
2263			     &i2s2m1_sclk
2264			     &i2s2m1_sdi
2265			     &i2s2m1_sdo>;
2266		#sound-dai-cells = <0>;
2267		status = "disabled";
2268	};
2269
2270	i2s3_2ch: i2s@fe4a0000 {
2271		compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
2272		reg = <0x0 0xfe4a0000 0x0 0x1000>;
2273		interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>;
2274		clocks = <&cru MCLK_I2S3_2CH>, <&cru HCLK_I2S3_2CH>;
2275		clock-names = "i2s_clk", "i2s_hclk";
2276		assigned-clocks = <&cru CLK_I2S3_2CH_SRC>;
2277		assigned-clock-parents = <&cru PLL_AUPLL>;
2278		dmas = <&dmac1 2>, <&dmac1 3>;
2279		dma-names = "tx", "rx";
2280		power-domains = <&power RK3588_PD_AUDIO>;
2281		pinctrl-names = "default";
2282		pinctrl-0 = <&i2s3_lrck
2283			     &i2s3_sclk
2284			     &i2s3_sdi
2285			     &i2s3_sdo>;
2286		#sound-dai-cells = <0>;
2287		status = "disabled";
2288	};
2289
2290	spdif_tx0: spdif-tx@fe4e0000 {
2291		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
2292		reg = <0x0 0xfe4e0000 0x0 0x1000>;
2293		assigned-clock-parents = <&cru PLL_AUPLL>;
2294		assigned-clocks = <&cru CLK_SPDIF0_SRC>;
2295		clock-names = "mclk", "hclk";
2296		clocks = <&cru MCLK_SPDIF0>, <&cru HCLK_SPDIF0>;
2297		dma-names = "tx";
2298		dmas = <&dmac0 5>;
2299		interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH 0>;
2300		pinctrl-0 = <&spdif0m0_tx>;
2301		pinctrl-names = "default";
2302		power-domains = <&power RK3588_PD_AUDIO>;
2303		#sound-dai-cells = <0>;
2304		status = "disabled";
2305	};
2306
2307	spdif_tx1: spdif-tx@fe4f0000 {
2308		compatible = "rockchip,rk3588-spdif", "rockchip,rk3568-spdif";
2309		reg = <0x0 0xfe4f0000 0x0 0x1000>;
2310		assigned-clock-parents = <&cru PLL_AUPLL>;
2311		assigned-clocks = <&cru CLK_SPDIF1_SRC>;
2312		clock-names = "mclk", "hclk";
2313		clocks = <&cru MCLK_SPDIF1>, <&cru HCLK_SPDIF1>;
2314		dma-names = "tx";
2315		dmas = <&dmac1 5>;
2316		interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>;
2317		pinctrl-0 = <&spdif1m0_tx>;
2318		pinctrl-names = "default";
2319		power-domains = <&power RK3588_PD_AUDIO>;
2320		#sound-dai-cells = <0>;
2321		status = "disabled";
2322	};
2323
2324	gic: interrupt-controller@fe600000 {
2325		compatible = "arm,gic-v3";
2326		reg = <0x0 0xfe600000 0 0x10000>, /* GICD */
2327		      <0x0 0xfe680000 0 0x100000>; /* GICR */
2328		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
2329		interrupt-controller;
2330		dma-noncoherent;
2331		mbi-alias = <0x0 0xfe610000>;
2332		mbi-ranges = <424 56>;
2333		msi-controller;
2334		ranges;
2335		#address-cells = <2>;
2336		#interrupt-cells = <4>;
2337		#size-cells = <2>;
2338
2339		its0: msi-controller@fe640000 {
2340			compatible = "arm,gic-v3-its";
2341			reg = <0x0 0xfe640000 0x0 0x20000>;
2342			dma-noncoherent;
2343			msi-controller;
2344			#msi-cells = <1>;
2345		};
2346
2347		its1: msi-controller@fe660000 {
2348			compatible = "arm,gic-v3-its";
2349			reg = <0x0 0xfe660000 0x0 0x20000>;
2350			dma-noncoherent;
2351			msi-controller;
2352			#msi-cells = <1>;
2353		};
2354
2355		ppi-partitions {
2356			ppi_partition0: interrupt-partition-0 {
2357				affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
2358			};
2359
2360			ppi_partition1: interrupt-partition-1 {
2361				affinity = <&cpu_b0 &cpu_b1 &cpu_b2 &cpu_b3>;
2362			};
2363		};
2364	};
2365
2366	dmac0: dma-controller@fea10000 {
2367		compatible = "arm,pl330", "arm,primecell";
2368		reg = <0x0 0xfea10000 0x0 0x4000>;
2369		interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH 0>,
2370			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH 0>;
2371		arm,pl330-periph-burst;
2372		clocks = <&cru ACLK_DMAC0>;
2373		clock-names = "apb_pclk";
2374		#dma-cells = <1>;
2375	};
2376
2377	dmac1: dma-controller@fea30000 {
2378		compatible = "arm,pl330", "arm,primecell";
2379		reg = <0x0 0xfea30000 0x0 0x4000>;
2380		interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH 0>,
2381			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH 0>;
2382		arm,pl330-periph-burst;
2383		clocks = <&cru ACLK_DMAC1>;
2384		clock-names = "apb_pclk";
2385		#dma-cells = <1>;
2386	};
2387
2388	i2c1: i2c@fea90000 {
2389		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2390		reg = <0x0 0xfea90000 0x0 0x1000>;
2391		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
2392		clock-names = "i2c", "pclk";
2393		interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>;
2394		pinctrl-0 = <&i2c1m0_xfer>;
2395		pinctrl-names = "default";
2396		#address-cells = <1>;
2397		#size-cells = <0>;
2398		status = "disabled";
2399	};
2400
2401	i2c2: i2c@feaa0000 {
2402		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2403		reg = <0x0 0xfeaa0000 0x0 0x1000>;
2404		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
2405		clock-names = "i2c", "pclk";
2406		interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>;
2407		pinctrl-0 = <&i2c2m0_xfer>;
2408		pinctrl-names = "default";
2409		#address-cells = <1>;
2410		#size-cells = <0>;
2411		status = "disabled";
2412	};
2413
2414	i2c3: i2c@feab0000 {
2415		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2416		reg = <0x0 0xfeab0000 0x0 0x1000>;
2417		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
2418		clock-names = "i2c", "pclk";
2419		interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>;
2420		pinctrl-0 = <&i2c3m0_xfer>;
2421		pinctrl-names = "default";
2422		#address-cells = <1>;
2423		#size-cells = <0>;
2424		status = "disabled";
2425	};
2426
2427	i2c4: i2c@feac0000 {
2428		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2429		reg = <0x0 0xfeac0000 0x0 0x1000>;
2430		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
2431		clock-names = "i2c", "pclk";
2432		interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>;
2433		pinctrl-0 = <&i2c4m0_xfer>;
2434		pinctrl-names = "default";
2435		#address-cells = <1>;
2436		#size-cells = <0>;
2437		status = "disabled";
2438	};
2439
2440	i2c5: i2c@fead0000 {
2441		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
2442		reg = <0x0 0xfead0000 0x0 0x1000>;
2443		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
2444		clock-names = "i2c", "pclk";
2445		interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>;
2446		pinctrl-0 = <&i2c5m0_xfer>;
2447		pinctrl-names = "default";
2448		#address-cells = <1>;
2449		#size-cells = <0>;
2450		status = "disabled";
2451	};
2452
2453	timer0: timer@feae0000 {
2454		compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
2455		reg = <0x0 0xfeae0000 0x0 0x20>;
2456		interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;
2457		clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
2458		clock-names = "pclk", "timer";
2459	};
2460
2461	wdt: watchdog@feaf0000 {
2462		compatible = "rockchip,rk3588-wdt", "snps,dw-wdt";
2463		reg = <0x0 0xfeaf0000 0x0 0x100>;
2464		clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>;
2465		clock-names = "tclk", "pclk";
2466		interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>;
2467	};
2468
2469	spi0: spi@feb00000 {
2470		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2471		reg = <0x0 0xfeb00000 0x0 0x1000>;
2472		interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>;
2473		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
2474		clock-names = "spiclk", "apb_pclk";
2475		dmas = <&dmac0 14>, <&dmac0 15>;
2476		dma-names = "tx", "rx";
2477		num-cs = <2>;
2478		pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
2479		pinctrl-names = "default";
2480		#address-cells = <1>;
2481		#size-cells = <0>;
2482		status = "disabled";
2483	};
2484
2485	spi1: spi@feb10000 {
2486		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2487		reg = <0x0 0xfeb10000 0x0 0x1000>;
2488		interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>;
2489		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
2490		clock-names = "spiclk", "apb_pclk";
2491		dmas = <&dmac0 16>, <&dmac0 17>;
2492		dma-names = "tx", "rx";
2493		num-cs = <2>;
2494		pinctrl-0 = <&spi1m1_cs0 &spi1m1_cs1 &spi1m1_pins>;
2495		pinctrl-names = "default";
2496		#address-cells = <1>;
2497		#size-cells = <0>;
2498		status = "disabled";
2499	};
2500
2501	spi2: spi@feb20000 {
2502		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2503		reg = <0x0 0xfeb20000 0x0 0x1000>;
2504		interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>;
2505		clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
2506		clock-names = "spiclk", "apb_pclk";
2507		dmas = <&dmac1 15>, <&dmac1 16>;
2508		dma-names = "tx", "rx";
2509		num-cs = <2>;
2510		pinctrl-0 = <&spi2m2_cs0 &spi2m2_cs1 &spi2m2_pins>;
2511		pinctrl-names = "default";
2512		#address-cells = <1>;
2513		#size-cells = <0>;
2514		status = "disabled";
2515	};
2516
2517	spi3: spi@feb30000 {
2518		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
2519		reg = <0x0 0xfeb30000 0x0 0x1000>;
2520		interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>;
2521		clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
2522		clock-names = "spiclk", "apb_pclk";
2523		dmas = <&dmac1 17>, <&dmac1 18>;
2524		dma-names = "tx", "rx";
2525		num-cs = <2>;
2526		pinctrl-0 = <&spi3m1_cs0 &spi3m1_cs1 &spi3m1_pins>;
2527		pinctrl-names = "default";
2528		#address-cells = <1>;
2529		#size-cells = <0>;
2530		status = "disabled";
2531	};
2532
2533	uart1: serial@feb40000 {
2534		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2535		reg = <0x0 0xfeb40000 0x0 0x100>;
2536		interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>;
2537		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
2538		clock-names = "baudclk", "apb_pclk";
2539		dmas = <&dmac0 8>, <&dmac0 9>;
2540		dma-names = "tx", "rx";
2541		pinctrl-0 = <&uart1m1_xfer>;
2542		pinctrl-names = "default";
2543		reg-io-width = <4>;
2544		reg-shift = <2>;
2545		status = "disabled";
2546	};
2547
2548	uart2: serial@feb50000 {
2549		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2550		reg = <0x0 0xfeb50000 0x0 0x100>;
2551		interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>;
2552		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
2553		clock-names = "baudclk", "apb_pclk";
2554		dmas = <&dmac0 10>, <&dmac0 11>;
2555		dma-names = "tx", "rx";
2556		pinctrl-0 = <&uart2m1_xfer>;
2557		pinctrl-names = "default";
2558		reg-io-width = <4>;
2559		reg-shift = <2>;
2560		status = "disabled";
2561	};
2562
2563	uart3: serial@feb60000 {
2564		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2565		reg = <0x0 0xfeb60000 0x0 0x100>;
2566		interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>;
2567		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
2568		clock-names = "baudclk", "apb_pclk";
2569		dmas = <&dmac0 12>, <&dmac0 13>;
2570		dma-names = "tx", "rx";
2571		pinctrl-0 = <&uart3m1_xfer>;
2572		pinctrl-names = "default";
2573		reg-io-width = <4>;
2574		reg-shift = <2>;
2575		status = "disabled";
2576	};
2577
2578	uart4: serial@feb70000 {
2579		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2580		reg = <0x0 0xfeb70000 0x0 0x100>;
2581		interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>;
2582		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
2583		clock-names = "baudclk", "apb_pclk";
2584		dmas = <&dmac1 9>, <&dmac1 10>;
2585		dma-names = "tx", "rx";
2586		pinctrl-0 = <&uart4m1_xfer>;
2587		pinctrl-names = "default";
2588		reg-io-width = <4>;
2589		reg-shift = <2>;
2590		status = "disabled";
2591	};
2592
2593	uart5: serial@feb80000 {
2594		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2595		reg = <0x0 0xfeb80000 0x0 0x100>;
2596		interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>;
2597		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
2598		clock-names = "baudclk", "apb_pclk";
2599		dmas = <&dmac1 11>, <&dmac1 12>;
2600		dma-names = "tx", "rx";
2601		pinctrl-0 = <&uart5m1_xfer>;
2602		pinctrl-names = "default";
2603		reg-io-width = <4>;
2604		reg-shift = <2>;
2605		status = "disabled";
2606	};
2607
2608	uart6: serial@feb90000 {
2609		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2610		reg = <0x0 0xfeb90000 0x0 0x100>;
2611		interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>;
2612		clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
2613		clock-names = "baudclk", "apb_pclk";
2614		dmas = <&dmac1 13>, <&dmac1 14>;
2615		dma-names = "tx", "rx";
2616		pinctrl-0 = <&uart6m1_xfer>;
2617		pinctrl-names = "default";
2618		reg-io-width = <4>;
2619		reg-shift = <2>;
2620		status = "disabled";
2621	};
2622
2623	uart7: serial@feba0000 {
2624		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2625		reg = <0x0 0xfeba0000 0x0 0x100>;
2626		interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>;
2627		clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
2628		clock-names = "baudclk", "apb_pclk";
2629		dmas = <&dmac2 7>, <&dmac2 8>;
2630		dma-names = "tx", "rx";
2631		pinctrl-0 = <&uart7m1_xfer>;
2632		pinctrl-names = "default";
2633		reg-io-width = <4>;
2634		reg-shift = <2>;
2635		status = "disabled";
2636	};
2637
2638	uart8: serial@febb0000 {
2639		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2640		reg = <0x0 0xfebb0000 0x0 0x100>;
2641		interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>;
2642		clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
2643		clock-names = "baudclk", "apb_pclk";
2644		dmas = <&dmac2 9>, <&dmac2 10>;
2645		dma-names = "tx", "rx";
2646		pinctrl-0 = <&uart8m1_xfer>;
2647		pinctrl-names = "default";
2648		reg-io-width = <4>;
2649		reg-shift = <2>;
2650		status = "disabled";
2651	};
2652
2653	uart9: serial@febc0000 {
2654		compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
2655		reg = <0x0 0xfebc0000 0x0 0x100>;
2656		interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>;
2657		clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
2658		clock-names = "baudclk", "apb_pclk";
2659		dmas = <&dmac2 11>, <&dmac2 12>;
2660		dma-names = "tx", "rx";
2661		pinctrl-0 = <&uart9m1_xfer>;
2662		pinctrl-names = "default";
2663		reg-io-width = <4>;
2664		reg-shift = <2>;
2665		status = "disabled";
2666	};
2667
2668	pwm4: pwm@febd0000 {
2669		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2670		reg = <0x0 0xfebd0000 0x0 0x10>;
2671		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2672		clock-names = "pwm", "pclk";
2673		pinctrl-0 = <&pwm4m0_pins>;
2674		pinctrl-names = "default";
2675		#pwm-cells = <3>;
2676		status = "disabled";
2677	};
2678
2679	pwm5: pwm@febd0010 {
2680		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2681		reg = <0x0 0xfebd0010 0x0 0x10>;
2682		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2683		clock-names = "pwm", "pclk";
2684		pinctrl-0 = <&pwm5m0_pins>;
2685		pinctrl-names = "default";
2686		#pwm-cells = <3>;
2687		status = "disabled";
2688	};
2689
2690	pwm6: pwm@febd0020 {
2691		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2692		reg = <0x0 0xfebd0020 0x0 0x10>;
2693		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2694		clock-names = "pwm", "pclk";
2695		pinctrl-0 = <&pwm6m0_pins>;
2696		pinctrl-names = "default";
2697		#pwm-cells = <3>;
2698		status = "disabled";
2699	};
2700
2701	pwm7: pwm@febd0030 {
2702		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2703		reg = <0x0 0xfebd0030 0x0 0x10>;
2704		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
2705		clock-names = "pwm", "pclk";
2706		pinctrl-0 = <&pwm7m0_pins>;
2707		pinctrl-names = "default";
2708		#pwm-cells = <3>;
2709		status = "disabled";
2710	};
2711
2712	pwm8: pwm@febe0000 {
2713		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2714		reg = <0x0 0xfebe0000 0x0 0x10>;
2715		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2716		clock-names = "pwm", "pclk";
2717		pinctrl-0 = <&pwm8m0_pins>;
2718		pinctrl-names = "default";
2719		#pwm-cells = <3>;
2720		status = "disabled";
2721	};
2722
2723	pwm9: pwm@febe0010 {
2724		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2725		reg = <0x0 0xfebe0010 0x0 0x10>;
2726		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2727		clock-names = "pwm", "pclk";
2728		pinctrl-0 = <&pwm9m0_pins>;
2729		pinctrl-names = "default";
2730		#pwm-cells = <3>;
2731		status = "disabled";
2732	};
2733
2734	pwm10: pwm@febe0020 {
2735		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2736		reg = <0x0 0xfebe0020 0x0 0x10>;
2737		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2738		clock-names = "pwm", "pclk";
2739		pinctrl-0 = <&pwm10m0_pins>;
2740		pinctrl-names = "default";
2741		#pwm-cells = <3>;
2742		status = "disabled";
2743	};
2744
2745	pwm11: pwm@febe0030 {
2746		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2747		reg = <0x0 0xfebe0030 0x0 0x10>;
2748		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
2749		clock-names = "pwm", "pclk";
2750		pinctrl-0 = <&pwm11m0_pins>;
2751		pinctrl-names = "default";
2752		#pwm-cells = <3>;
2753		status = "disabled";
2754	};
2755
2756	pwm12: pwm@febf0000 {
2757		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2758		reg = <0x0 0xfebf0000 0x0 0x10>;
2759		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2760		clock-names = "pwm", "pclk";
2761		pinctrl-0 = <&pwm12m0_pins>;
2762		pinctrl-names = "default";
2763		#pwm-cells = <3>;
2764		status = "disabled";
2765	};
2766
2767	pwm13: pwm@febf0010 {
2768		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2769		reg = <0x0 0xfebf0010 0x0 0x10>;
2770		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2771		clock-names = "pwm", "pclk";
2772		pinctrl-0 = <&pwm13m0_pins>;
2773		pinctrl-names = "default";
2774		#pwm-cells = <3>;
2775		status = "disabled";
2776	};
2777
2778	pwm14: pwm@febf0020 {
2779		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2780		reg = <0x0 0xfebf0020 0x0 0x10>;
2781		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2782		clock-names = "pwm", "pclk";
2783		pinctrl-0 = <&pwm14m0_pins>;
2784		pinctrl-names = "default";
2785		#pwm-cells = <3>;
2786		status = "disabled";
2787	};
2788
2789	pwm15: pwm@febf0030 {
2790		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
2791		reg = <0x0 0xfebf0030 0x0 0x10>;
2792		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
2793		clock-names = "pwm", "pclk";
2794		pinctrl-0 = <&pwm15m0_pins>;
2795		pinctrl-names = "default";
2796		#pwm-cells = <3>;
2797		status = "disabled";
2798	};
2799
2800	thermal_zones: thermal-zones {
2801		/* sensor near the center of the SoC */
2802		package_thermal: package-thermal {
2803			polling-delay-passive = <0>;
2804			polling-delay = <0>;
2805			thermal-sensors = <&tsadc 0>;
2806
2807			trips {
2808				package_crit: package-crit {
2809					temperature = <115000>;
2810					hysteresis = <0>;
2811					type = "critical";
2812				};
2813			};
2814		};
2815
2816		/* sensor between A76 cores 0 and 1 */
2817		bigcore0_thermal: bigcore0-thermal {
2818			polling-delay-passive = <100>;
2819			polling-delay = <0>;
2820			thermal-sensors = <&tsadc 1>;
2821
2822			trips {
2823				bigcore0_alert: bigcore0-alert {
2824					temperature = <85000>;
2825					hysteresis = <2000>;
2826					type = "passive";
2827				};
2828
2829				bigcore0_crit: bigcore0-crit {
2830					temperature = <115000>;
2831					hysteresis = <0>;
2832					type = "critical";
2833				};
2834			};
2835
2836			cooling-maps {
2837				map0 {
2838					trip = <&bigcore0_alert>;
2839					cooling-device =
2840						<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2841						<&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2842				};
2843			};
2844		};
2845
2846		/* sensor between A76 cores 2 and 3 */
2847		bigcore2_thermal: bigcore2-thermal {
2848			polling-delay-passive = <100>;
2849			polling-delay = <0>;
2850			thermal-sensors = <&tsadc 2>;
2851
2852			trips {
2853				bigcore2_alert: bigcore2-alert {
2854					temperature = <85000>;
2855					hysteresis = <2000>;
2856					type = "passive";
2857				};
2858
2859				bigcore2_crit: bigcore2-crit {
2860					temperature = <115000>;
2861					hysteresis = <0>;
2862					type = "critical";
2863				};
2864			};
2865
2866			cooling-maps {
2867				map0 {
2868					trip = <&bigcore2_alert>;
2869					cooling-device =
2870						<&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2871						<&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2872				};
2873			};
2874		};
2875
2876		/* sensor between the four A55 cores */
2877		little_core_thermal: littlecore-thermal {
2878			polling-delay-passive = <100>;
2879			polling-delay = <0>;
2880			thermal-sensors = <&tsadc 3>;
2881
2882			trips {
2883				littlecore_alert: littlecore-alert {
2884					temperature = <85000>;
2885					hysteresis = <2000>;
2886					type = "passive";
2887				};
2888
2889				littlecore_crit: littlecore-crit {
2890					temperature = <115000>;
2891					hysteresis = <0>;
2892					type = "critical";
2893				};
2894			};
2895
2896			cooling-maps {
2897				map0 {
2898					trip = <&littlecore_alert>;
2899					cooling-device =
2900						<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2901						<&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2902						<&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2903						<&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2904				};
2905			};
2906		};
2907
2908		/* sensor near the PD_CENTER power domain */
2909		center_thermal: center-thermal {
2910			polling-delay-passive = <0>;
2911			polling-delay = <0>;
2912			thermal-sensors = <&tsadc 4>;
2913
2914			trips {
2915				center_crit: center-crit {
2916					temperature = <115000>;
2917					hysteresis = <0>;
2918					type = "critical";
2919				};
2920			};
2921		};
2922
2923		gpu_thermal: gpu-thermal {
2924			polling-delay-passive = <100>;
2925			polling-delay = <0>;
2926			thermal-sensors = <&tsadc 5>;
2927
2928			trips {
2929				gpu_alert: gpu-alert {
2930					temperature = <85000>;
2931					hysteresis = <2000>;
2932					type = "passive";
2933				};
2934
2935				gpu_crit: gpu-crit {
2936					temperature = <115000>;
2937					hysteresis = <0>;
2938					type = "critical";
2939				};
2940			};
2941
2942			cooling-maps {
2943				map0 {
2944					trip = <&gpu_alert>;
2945					cooling-device =
2946						<&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2947				};
2948			};
2949		};
2950
2951		npu_thermal: npu-thermal {
2952			polling-delay-passive = <0>;
2953			polling-delay = <0>;
2954			thermal-sensors = <&tsadc 6>;
2955
2956			trips {
2957				npu_crit: npu-crit {
2958					temperature = <115000>;
2959					hysteresis = <0>;
2960					type = "critical";
2961				};
2962			};
2963		};
2964	};
2965
2966	tsadc: tsadc@fec00000 {
2967		compatible = "rockchip,rk3588-tsadc";
2968		reg = <0x0 0xfec00000 0x0 0x400>;
2969		interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH 0>;
2970		clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
2971		clock-names = "tsadc", "apb_pclk";
2972		assigned-clocks = <&cru CLK_TSADC>;
2973		assigned-clock-rates = <2000000>;
2974		resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>;
2975		reset-names = "tsadc-apb", "tsadc";
2976		rockchip,hw-tshut-temp = <120000>;
2977		rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
2978		rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
2979		pinctrl-0 = <&tsadc_shut_org>;
2980		pinctrl-1 = <&tsadc_gpio_func>;
2981		pinctrl-names = "default", "sleep";
2982		#thermal-sensor-cells = <1>;
2983		status = "disabled";
2984	};
2985
2986	saradc: adc@fec10000 {
2987		compatible = "rockchip,rk3588-saradc";
2988		reg = <0x0 0xfec10000 0x0 0x10000>;
2989		interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH 0>;
2990		#io-channel-cells = <1>;
2991		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
2992		clock-names = "saradc", "apb_pclk";
2993		resets = <&cru SRST_P_SARADC>;
2994		reset-names = "saradc-apb";
2995		status = "disabled";
2996	};
2997
2998	i2c6: i2c@fec80000 {
2999		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
3000		reg = <0x0 0xfec80000 0x0 0x1000>;
3001		clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
3002		clock-names = "i2c", "pclk";
3003		interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>;
3004		pinctrl-0 = <&i2c6m0_xfer>;
3005		pinctrl-names = "default";
3006		#address-cells = <1>;
3007		#size-cells = <0>;
3008		status = "disabled";
3009	};
3010
3011	i2c7: i2c@fec90000 {
3012		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
3013		reg = <0x0 0xfec90000 0x0 0x1000>;
3014		clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
3015		clock-names = "i2c", "pclk";
3016		interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>;
3017		pinctrl-0 = <&i2c7m0_xfer>;
3018		pinctrl-names = "default";
3019		#address-cells = <1>;
3020		#size-cells = <0>;
3021		status = "disabled";
3022	};
3023
3024	i2c8: i2c@feca0000 {
3025		compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
3026		reg = <0x0 0xfeca0000 0x0 0x1000>;
3027		clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>;
3028		clock-names = "i2c", "pclk";
3029		interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>;
3030		pinctrl-0 = <&i2c8m0_xfer>;
3031		pinctrl-names = "default";
3032		#address-cells = <1>;
3033		#size-cells = <0>;
3034		status = "disabled";
3035	};
3036
3037	spi4: spi@fecb0000 {
3038		compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
3039		reg = <0x0 0xfecb0000 0x0 0x1000>;
3040		interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>;
3041		clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>;
3042		clock-names = "spiclk", "apb_pclk";
3043		dmas = <&dmac2 13>, <&dmac2 14>;
3044		dma-names = "tx", "rx";
3045		num-cs = <2>;
3046		pinctrl-0 = <&spi4m0_cs0 &spi4m0_cs1 &spi4m0_pins>;
3047		pinctrl-names = "default";
3048		#address-cells = <1>;
3049		#size-cells = <0>;
3050		status = "disabled";
3051	};
3052
3053	otp: efuse@fecc0000 {
3054		compatible = "rockchip,rk3588-otp";
3055		reg = <0x0 0xfecc0000 0x0 0x400>;
3056		clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>,
3057			 <&cru CLK_OTP_PHY_G>, <&cru CLK_OTPC_ARB>;
3058		clock-names = "otp", "apb_pclk", "phy", "arb";
3059		resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>,
3060			 <&cru SRST_OTPC_ARB>;
3061		reset-names = "otp", "apb", "arb";
3062		#address-cells = <1>;
3063		#size-cells = <1>;
3064
3065		cpu_code: cpu-code@2 {
3066			reg = <0x02 0x2>;
3067		};
3068
3069		otp_id: id@7 {
3070			reg = <0x07 0x10>;
3071		};
3072
3073		cpub0_leakage: cpu-leakage@17 {
3074			reg = <0x17 0x1>;
3075		};
3076
3077		cpub1_leakage: cpu-leakage@18 {
3078			reg = <0x18 0x1>;
3079		};
3080
3081		cpul_leakage: cpu-leakage@19 {
3082			reg = <0x19 0x1>;
3083		};
3084
3085		log_leakage: log-leakage@1a {
3086			reg = <0x1a 0x1>;
3087		};
3088
3089		gpu_leakage: gpu-leakage@1b {
3090			reg = <0x1b 0x1>;
3091		};
3092
3093		otp_cpu_version: cpu-version@1c {
3094			reg = <0x1c 0x1>;
3095			bits = <3 3>;
3096		};
3097
3098		npu_leakage: npu-leakage@28 {
3099			reg = <0x28 0x1>;
3100		};
3101
3102		codec_leakage: codec-leakage@29 {
3103			reg = <0x29 0x1>;
3104		};
3105	};
3106
3107	dmac2: dma-controller@fed10000 {
3108		compatible = "arm,pl330", "arm,primecell";
3109		reg = <0x0 0xfed10000 0x0 0x4000>;
3110		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH 0>,
3111			     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH 0>;
3112		arm,pl330-periph-burst;
3113		clocks = <&cru ACLK_DMAC2>;
3114		clock-names = "apb_pclk";
3115		#dma-cells = <1>;
3116	};
3117
3118	hdptxphy0: phy@fed60000 {
3119		compatible = "rockchip,rk3588-hdptx-phy";
3120		reg = <0x0 0xfed60000 0x0 0x2000>;
3121		clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>;
3122		clock-names = "ref", "apb";
3123		#clock-cells = <0>;
3124		#phy-cells = <0>;
3125		resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>,
3126			 <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>,
3127			 <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>,
3128			 <&cru SRST_HDPTX0_LCPLL>;
3129		reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
3130			      "lcpll";
3131		rockchip,grf = <&hdptxphy0_grf>;
3132		status = "disabled";
3133	};
3134
3135	usbdp_phy0: phy@fed80000 {
3136		compatible = "rockchip,rk3588-usbdp-phy";
3137		reg = <0x0 0xfed80000 0x0 0x10000>;
3138		#phy-cells = <1>;
3139		clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
3140			 <&cru CLK_USBDP_PHY0_IMMORTAL>,
3141			 <&cru PCLK_USBDPPHY0>,
3142			 <&u2phy0>;
3143		clock-names = "refclk", "immortal", "pclk", "utmi";
3144		resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
3145			 <&cru SRST_USBDP_COMBO_PHY0_CMN>,
3146			 <&cru SRST_USBDP_COMBO_PHY0_LANE>,
3147			 <&cru SRST_USBDP_COMBO_PHY0_PCS>,
3148			 <&cru SRST_P_USBDPPHY0>;
3149		reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
3150		rockchip,u2phy-grf = <&usb2phy0_grf>;
3151		rockchip,usb-grf = <&usb_grf>;
3152		rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
3153		rockchip,vo-grf = <&vo0_grf>;
3154		status = "disabled";
3155	};
3156
3157	mipidcphy0: phy@feda0000 {
3158		compatible = "rockchip,rk3588-mipi-dcphy";
3159		reg = <0x0 0xfeda0000 0x0 0x10000>;
3160		rockchip,grf = <&mipidcphy0_grf>;
3161		clocks = <&cru PCLK_MIPI_DCPHY0>,
3162			 <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>;
3163		clock-names = "pclk", "ref";
3164		resets = <&cru SRST_M_MIPI_DCPHY0>,
3165			 <&cru SRST_P_MIPI_DCPHY0>,
3166			 <&cru SRST_P_MIPI_DCPHY0_GRF>,
3167			 <&cru SRST_S_MIPI_DCPHY0>;
3168		reset-names = "m_phy", "apb", "grf", "s_phy";
3169		#phy-cells = <1>;
3170		status = "disabled";
3171	};
3172
3173	mipidcphy1: phy@fedb0000 {
3174		compatible = "rockchip,rk3588-mipi-dcphy";
3175		reg = <0x0 0xfedb0000 0x0 0x10000>;
3176		rockchip,grf = <&mipidcphy1_grf>;
3177		clocks = <&cru PCLK_MIPI_DCPHY1>,
3178			 <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>;
3179		clock-names = "pclk", "ref";
3180		resets = <&cru SRST_M_MIPI_DCPHY1>,
3181			 <&cru SRST_P_MIPI_DCPHY1>,
3182			 <&cru SRST_P_MIPI_DCPHY1_GRF>,
3183			 <&cru SRST_S_MIPI_DCPHY1>;
3184		reset-names = "m_phy", "apb", "grf", "s_phy";
3185		#phy-cells = <1>;
3186		status = "disabled";
3187	};
3188
3189	csi_dphy0: phy@fedc0000 {
3190		compatible = "rockchip,rk3588-csi-dphy";
3191		reg = <0x0 0xfedc0000 0x0 0x8000>;
3192		clocks = <&cru PCLK_CSIPHY0>;
3193		clock-names = "pclk";
3194		#phy-cells = <0>;
3195		resets = <&cru SRST_P_CSIPHY0>, <&cru SRST_CSIPHY0>;
3196		reset-names = "apb", "phy";
3197		rockchip,grf = <&csidphy0_grf>;
3198		status = "disabled";
3199	};
3200
3201	csi_dphy1: phy@fedc8000 {
3202		compatible = "rockchip,rk3588-csi-dphy";
3203		reg = <0x0 0xfedc8000 0x0 0x8000>;
3204		clocks = <&cru PCLK_CSIPHY1>;
3205		clock-names = "pclk";
3206		#phy-cells = <0>;
3207		resets = <&cru SRST_P_CSIPHY1>, <&cru SRST_CSIPHY1>;
3208		reset-names = "apb", "phy";
3209		rockchip,grf = <&csidphy1_grf>;
3210		status = "disabled";
3211	};
3212
3213	combphy0_ps: phy@fee00000 {
3214		compatible = "rockchip,rk3588-naneng-combphy";
3215		reg = <0x0 0xfee00000 0x0 0x100>;
3216		clocks = <&cru CLK_REF_PIPE_PHY0>, <&cru PCLK_PCIE_COMBO_PIPE_PHY0>,
3217			 <&cru PCLK_PHP_ROOT>;
3218		clock-names = "ref", "apb", "pipe";
3219		assigned-clocks = <&cru CLK_REF_PIPE_PHY0>;
3220		assigned-clock-rates = <100000000>;
3221		#phy-cells = <1>;
3222		resets = <&cru SRST_REF_PIPE_PHY0>, <&cru SRST_P_PCIE2_PHY0>;
3223		reset-names = "phy", "apb";
3224		rockchip,pipe-grf = <&php_grf>;
3225		rockchip,pipe-phy-grf = <&pipe_phy0_grf>;
3226		status = "disabled";
3227	};
3228
3229	combphy2_psu: phy@fee20000 {
3230		compatible = "rockchip,rk3588-naneng-combphy";
3231		reg = <0x0 0xfee20000 0x0 0x100>;
3232		clocks = <&cru CLK_REF_PIPE_PHY2>, <&cru PCLK_PCIE_COMBO_PIPE_PHY2>,
3233			 <&cru PCLK_PHP_ROOT>;
3234		clock-names = "ref", "apb", "pipe";
3235		assigned-clocks = <&cru CLK_REF_PIPE_PHY2>;
3236		assigned-clock-rates = <100000000>;
3237		#phy-cells = <1>;
3238		resets = <&cru SRST_REF_PIPE_PHY2>, <&cru SRST_P_PCIE2_PHY2>;
3239		reset-names = "phy", "apb";
3240		rockchip,pipe-grf = <&php_grf>;
3241		rockchip,pipe-phy-grf = <&pipe_phy2_grf>;
3242		status = "disabled";
3243	};
3244
3245	system_sram2: sram@ff001000 {
3246		compatible = "mmio-sram";
3247		reg = <0x0 0xff001000 0x0 0xef000>;
3248		ranges = <0x0 0x0 0xff001000 0xef000>;
3249		#address-cells = <1>;
3250		#size-cells = <1>;
3251	};
3252
3253	pinctrl: pinctrl {
3254		compatible = "rockchip,rk3588-pinctrl";
3255		ranges;
3256		rockchip,grf = <&ioc>;
3257		#address-cells = <2>;
3258		#size-cells = <2>;
3259
3260		gpio0: gpio@fd8a0000 {
3261			compatible = "rockchip,gpio-bank";
3262			reg = <0x0 0xfd8a0000 0x0 0x100>;
3263			interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
3264			clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
3265			gpio-controller;
3266			gpio-ranges = <&pinctrl 0 0 32>;
3267			interrupt-controller;
3268			#gpio-cells = <2>;
3269			#interrupt-cells = <2>;
3270		};
3271
3272		gpio1: gpio@fec20000 {
3273			compatible = "rockchip,gpio-bank";
3274			reg = <0x0 0xfec20000 0x0 0x100>;
3275			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH 0>;
3276			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
3277			gpio-controller;
3278			gpio-ranges = <&pinctrl 0 32 32>;
3279			interrupt-controller;
3280			#gpio-cells = <2>;
3281			#interrupt-cells = <2>;
3282		};
3283
3284		gpio2: gpio@fec30000 {
3285			compatible = "rockchip,gpio-bank";
3286			reg = <0x0 0xfec30000 0x0 0x100>;
3287			interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH 0>;
3288			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
3289			gpio-controller;
3290			gpio-ranges = <&pinctrl 0 64 32>;
3291			interrupt-controller;
3292			#gpio-cells = <2>;
3293			#interrupt-cells = <2>;
3294		};
3295
3296		gpio3: gpio@fec40000 {
3297			compatible = "rockchip,gpio-bank";
3298			reg = <0x0 0xfec40000 0x0 0x100>;
3299			interrupts = <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH 0>;
3300			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
3301			gpio-controller;
3302			gpio-ranges = <&pinctrl 0 96 32>;
3303			interrupt-controller;
3304			#gpio-cells = <2>;
3305			#interrupt-cells = <2>;
3306		};
3307
3308		gpio4: gpio@fec50000 {
3309			compatible = "rockchip,gpio-bank";
3310			reg = <0x0 0xfec50000 0x0 0x100>;
3311			interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH 0>;
3312			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
3313			gpio-controller;
3314			gpio-ranges = <&pinctrl 0 128 32>;
3315			interrupt-controller;
3316			#gpio-cells = <2>;
3317			#interrupt-cells = <2>;
3318		};
3319	};
3320};
3321
3322#include "rk3588-base-pinctrl.dtsi"
3323