xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/rockchip/rk3568.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
4 */
5
6#include <dt-bindings/clock/rk3568-cru.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/pinctrl/rockchip.h>
10#include <dt-bindings/soc/rockchip,boot-mode.h>
11#include <dt-bindings/phy/phy.h>
12#include <dt-bindings/power/rk3568-power.h>
13#include <dt-bindings/soc/rockchip-system-status.h>
14#include <dt-bindings/suspend/rockchip-rk3568.h>
15#include <dt-bindings/thermal/thermal.h>
16#include "rk3568-dram-default-timing.dtsi"
17
18/ {
19	compatible = "rockchip,rk3568";
20
21	interrupt-parent = <&gic>;
22	#address-cells = <2>;
23	#size-cells = <2>;
24
25	aliases {
26		csi2dphy0 = &csi2_dphy0;
27		csi2dphy1 = &csi2_dphy1;
28		csi2dphy2 = &csi2_dphy2;
29		dsi0 = &dsi0;
30		dsi1 = &dsi1;
31		ethernet0 = &gmac0;
32		ethernet1 = &gmac1;
33		gpio0 = &gpio0;
34		gpio1 = &gpio1;
35		gpio2 = &gpio2;
36		gpio3 = &gpio3;
37		gpio4 = &gpio4;
38		i2c0 = &i2c0;
39		i2c1 = &i2c1;
40		i2c2 = &i2c2;
41		i2c3 = &i2c3;
42		i2c4 = &i2c4;
43		i2c5 = &i2c5;
44		mmc0 = &sdhci;
45		mmc1 = &sdmmc0;
46		mmc2 = &sdmmc1;
47		mmc3 = &sdmmc2;
48		serial0 = &uart0;
49		serial1 = &uart1;
50		serial2 = &uart2;
51		serial3 = &uart3;
52		serial4 = &uart4;
53		serial5 = &uart5;
54		serial6 = &uart6;
55		serial7 = &uart7;
56		serial8 = &uart8;
57		serial9 = &uart9;
58		spi0 = &spi0;
59		spi1 = &spi1;
60		spi2 = &spi2;
61		spi3 = &spi3;
62	};
63
64	cpus {
65		#address-cells = <2>;
66		#size-cells = <0>;
67
68		cpu0: cpu@0 {
69			device_type = "cpu";
70			compatible = "arm,cortex-a55";
71			reg = <0x0 0x0>;
72			enable-method = "psci";
73			clocks = <&scmi_clk 0>;
74			operating-points-v2 = <&cpu0_opp_table>;
75			cpu-idle-states = <&CPU_SLEEP>;
76			#cooling-cells = <2>;
77			dynamic-power-coefficient = <187>;
78		};
79
80		cpu1: cpu@100 {
81			device_type = "cpu";
82			compatible = "arm,cortex-a55";
83			reg = <0x0 0x100>;
84			enable-method = "psci";
85			clocks = <&scmi_clk 0>;
86			operating-points-v2 = <&cpu0_opp_table>;
87			cpu-idle-states = <&CPU_SLEEP>;
88		};
89
90		cpu2: cpu@200 {
91			device_type = "cpu";
92			compatible = "arm,cortex-a55";
93			reg = <0x0 0x200>;
94			enable-method = "psci";
95			clocks = <&scmi_clk 0>;
96			operating-points-v2 = <&cpu0_opp_table>;
97			cpu-idle-states = <&CPU_SLEEP>;
98		};
99
100		cpu3: cpu@300 {
101			device_type = "cpu";
102			compatible = "arm,cortex-a55";
103			reg = <0x0 0x300>;
104			enable-method = "psci";
105			clocks = <&scmi_clk 0>;
106			operating-points-v2 = <&cpu0_opp_table>;
107			cpu-idle-states = <&CPU_SLEEP>;
108		};
109
110		idle-states {
111			entry-method = "psci";
112			CPU_SLEEP: cpu-sleep {
113				compatible = "arm,idle-state";
114				local-timer-stop;
115				arm,psci-suspend-param = <0x0010000>;
116				entry-latency-us = <100>;
117				exit-latency-us = <120>;
118				min-residency-us = <1000>;
119			};
120		};
121	};
122
123	cpu0_opp_table: cpu0-opp-table {
124		compatible = "operating-points-v2";
125		opp-shared;
126
127		mbist-vmin = <825000 900000 950000>;
128		nvmem-cells = <&cpu_leakage>, <&core_pvtm>, <&mbist_vmin>, <&cpu_opp_info>;
129		nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info";
130		rockchip,max-volt = <1150000>;
131		rockchip,pvtm-voltage-sel = <
132			0        84000   0
133			84001    87000   1
134			87001    91000   2
135			91001    100000  3
136		>;
137		rockchip,pvtm-freq = <408000>;
138		rockchip,pvtm-volt = <900000>;
139		rockchip,pvtm-ch = <0 5>;
140		rockchip,pvtm-sample-time = <1000>;
141		rockchip,pvtm-number = <10>;
142		rockchip,pvtm-error = <1000>;
143		rockchip,pvtm-ref-temp = <40>;
144		rockchip,pvtm-temp-prop = <26 26>;
145		rockchip,thermal-zone = "soc-thermal";
146		rockchip,temp-hysteresis = <5000>;
147		rockchip,low-temp = <0>;
148		rockchip,low-temp-adjust-volt = <
149			/* MHz    MHz    uV */
150			   0      1992   75000
151		>;
152
153		opp-408000000 {
154			opp-hz = /bits/ 64 <408000000>;
155			opp-microvolt = <850000 850000 1150000>;
156			clock-latency-ns = <40000>;
157		};
158		opp-600000000 {
159			opp-hz = /bits/ 64 <600000000>;
160			opp-microvolt = <850000 850000 1150000>;
161			clock-latency-ns = <40000>;
162		};
163		opp-816000000 {
164			opp-hz = /bits/ 64 <816000000>;
165			opp-microvolt = <850000 850000 1150000>;
166			clock-latency-ns = <40000>;
167			opp-suspend;
168		};
169		opp-1104000000 {
170			opp-hz = /bits/ 64 <1104000000>;
171			opp-microvolt = <900000 900000 1150000>;
172			opp-microvolt-L0 = <900000 900000 1150000>;
173			opp-microvolt-L1 = <850000 850000 1150000>;
174			opp-microvolt-L2 = <850000 850000 1150000>;
175			opp-microvolt-L3 = <850000 850000 1150000>;
176			clock-latency-ns = <40000>;
177		};
178		opp-1416000000 {
179			opp-hz = /bits/ 64 <1416000000>;
180			opp-microvolt = <1025000 1025000 1150000>;
181			opp-microvolt-L0 = <1025000 1025000 1150000>;
182			opp-microvolt-L1 = <975000 975000 1150000>;
183			opp-microvolt-L2 = <950000 950000 1150000>;
184			opp-microvolt-L3 = <925000 925000 1150000>;
185			clock-latency-ns = <40000>;
186		};
187		opp-1608000000 {
188			opp-hz = /bits/ 64 <1608000000>;
189			opp-microvolt = <1100000 1100000 1150000>;
190			opp-microvolt-L0 = <1100000 1100000 1150000>;
191			opp-microvolt-L1 = <1050000 1050000 1150000>;
192			opp-microvolt-L2 = <1025000 1025000 1150000>;
193			opp-microvolt-L3 = <1000000 1000000 1150000>;
194			clock-latency-ns = <40000>;
195		};
196		opp-1800000000 {
197			opp-hz = /bits/ 64 <1800000000>;
198			opp-microvolt = <1150000 1150000 1150000>;
199			opp-microvolt-L0 = <1150000 1150000 1150000>;
200			opp-microvolt-L1 = <1100000 1100000 1150000>;
201			opp-microvolt-L2 = <1075000 1075000 1150000>;
202			opp-microvolt-L3 = <1050000 1050000 1150000>;
203			clock-latency-ns = <40000>;
204		};
205		opp-1992000000 {
206			opp-hz = /bits/ 64 <1992000000>;
207			opp-microvolt = <1150000 1150000 1150000>;
208			opp-microvolt-L0 = <1150000 1150000 1150000>;
209			opp-microvolt-L1 = <1150000 1150000 1150000>;
210			opp-microvolt-L2 = <1125000 1125000 1150000>;
211			opp-microvolt-L3 = <1100000 1100000 1150000>;
212			clock-latency-ns = <40000>;
213		};
214	};
215
216	arm-pmu {
217		compatible = "arm,cortex-a55-pmu", "arm,armv8-pmuv3";
218		interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
219			     <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
220			     <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
221			     <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
222		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
223	};
224
225	cpuinfo {
226		compatible = "rockchip,cpuinfo";
227		nvmem-cells = <&otp_id>, <&otp_cpu_version>, <&cpu_code>;
228		nvmem-cell-names = "id", "cpu-version", "cpu-code";
229	};
230
231	display_subsystem: display-subsystem {
232		compatible = "rockchip,display-subsystem";
233		memory-region = <&drm_logo>, <&drm_cubic_lut>;
234		memory-region-names = "drm-logo", "drm-cubic-lut";
235		ports = <&vop_out>;
236		devfreq = <&dmc>;
237
238		route {
239			route_dsi0: route-dsi0 {
240				status = "disabled";
241				logo,uboot = "logo.bmp";
242				logo,kernel = "logo_kernel.bmp";
243				logo,mode = "center";
244				charge_logo,mode = "center";
245				connect = <&vp0_out_dsi0>;
246			};
247			route_dsi1: route-dsi1 {
248				status = "disabled";
249				logo,uboot = "logo.bmp";
250				logo,kernel = "logo_kernel.bmp";
251				logo,mode = "center";
252				charge_logo,mode = "center";
253				connect = <&vp0_out_dsi1>;
254			};
255			route_edp: route-edp {
256				status = "disabled";
257				logo,uboot = "logo.bmp";
258				logo,kernel = "logo_kernel.bmp";
259				logo,mode = "center";
260				charge_logo,mode = "center";
261				connect = <&vp0_out_edp>;
262			};
263			route_hdmi: route-hdmi {
264				status = "disabled";
265				logo,uboot = "logo.bmp";
266				logo,kernel = "logo_kernel.bmp";
267				logo,mode = "center";
268				charge_logo,mode = "center";
269				connect = <&vp1_out_hdmi>;
270			};
271			route_lvds: route-lvds {
272				status = "disabled";
273				logo,uboot = "logo.bmp";
274				logo,kernel = "logo_kernel.bmp";
275				logo,mode = "center";
276				charge_logo,mode = "center";
277				connect = <&vp1_out_lvds>;
278			};
279			route_rgb: route-rgb {
280				status = "disabled";
281				logo,uboot = "logo.bmp";
282				logo,kernel = "logo_kernel.bmp";
283				logo,mode = "center";
284				charge_logo,mode = "center";
285				connect = <&vp2_out_rgb>;
286			};
287		};
288	};
289
290	firmware {
291		scmi: scmi {
292			compatible = "arm,scmi-smc";
293			shmem = <&scmi_shmem>;
294			arm,smc-id = <0x82000010>;
295			#address-cells = <1>;
296			#size-cells = <0>;
297
298			scmi_clk: protocol@14 {
299				reg = <0x14>;
300				#clock-cells = <1>;
301
302				rockchip,clk-init = <1104000000>;
303			};
304		};
305
306		sdei: sdei {
307			compatible = "arm,sdei-1.0";
308			method = "smc";
309		};
310	};
311
312	mipi_csi2: mipi-csi2 {
313		compatible = "rockchip,rk3568-mipi-csi2";
314		rockchip,hw = <&mipi_csi2_hw>;
315		status = "disabled";
316	};
317
318	mpp_srv: mpp-srv {
319		compatible = "rockchip,mpp-service";
320		rockchip,taskqueue-count = <6>;
321		rockchip,resetgroup-count = <6>;
322		status = "disabled";
323	};
324
325	psci {
326		compatible = "arm,psci-1.0";
327		method = "smc";
328	};
329
330	reserved_memory: reserved-memory {
331		#address-cells = <2>;
332		#size-cells = <2>;
333		ranges;
334
335		drm_logo: drm-logo@00000000 {
336			compatible = "rockchip,drm-logo";
337			reg = <0x0 0x0 0x0 0x0>;
338		};
339
340		drm_cubic_lut: drm-cubic-lut@00000000 {
341			compatible = "rockchip,drm-cubic-lut";
342			reg = <0x0 0x0 0x0 0x0>;
343		};
344	};
345
346	rockchip_suspend: rockchip-suspend {
347		compatible = "rockchip,pm-rk3568";
348		status = "disabled";
349		rockchip,sleep-debug-en = <1>;
350		rockchip,sleep-mode-config = <
351			(0
352			| RKPM_SLP_ARMOFF_LOGOFF
353			| RKPM_SLP_CENTER_OFF
354			| RKPM_SLP_HW_PLLS_OFF
355			| RKPM_SLP_PMUALIVE_32K
356			| RKPM_SLP_OSC_DIS
357			| RKPM_SLP_PMIC_LP
358			| RKPM_SLP_32K_PVTM
359			)
360		>;
361		rockchip,wakeup-config = <
362			(0
363			| RKPM_GPIO_WKUP_EN
364			)
365		>;
366	};
367
368	rockchip_system_monitor: rockchip-system-monitor {
369		compatible = "rockchip,system-monitor";
370
371		rockchip,thermal-zone = "soc-thermal";
372	};
373
374	thermal_zones: thermal-zones {
375		soc_thermal: soc-thermal {
376			polling-delay-passive = <20>; /* milliseconds */
377			polling-delay = <1000>; /* milliseconds */
378			sustainable-power = <905>; /* milliwatts */
379
380			thermal-sensors = <&tsadc 0>;
381			trips {
382				threshold: trip-point-0 {
383					temperature = <75000>;
384					hysteresis = <2000>;
385					type = "passive";
386				};
387				target: trip-point-1 {
388					temperature = <85000>;
389					hysteresis = <2000>;
390					type = "passive";
391				};
392				soc_crit: soc-crit {
393					/* millicelsius */
394					temperature = <125000>;
395					/* millicelsius */
396					hysteresis = <2000>;
397					type = "critical";
398				};
399			};
400			cooling-maps {
401				map0 {
402					trip = <&target>;
403					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
404					contribution = <1024>;
405				};
406				map1 {
407					trip = <&target>;
408					cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
409					contribution = <1024>;
410				};
411			};
412		};
413
414		gpu_thermal: gpu-thermal {
415			polling-delay-passive = <20>; /* milliseconds */
416			polling-delay = <1000>; /* milliseconds */
417
418			thermal-sensors = <&tsadc 1>;
419		};
420	};
421
422	timer {
423		compatible = "arm,armv8-timer";
424		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
425			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
426			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
427			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
428		arm,no-tick-in-suspend;
429	};
430
431	gmac0_clkin: external-gmac0-clock {
432		compatible = "fixed-clock";
433		clock-frequency = <125000000>;
434		clock-output-names = "gmac0_clkin";
435		#clock-cells = <0>;
436	};
437
438	gmac1_clkin: external-gmac1-clock {
439		compatible = "fixed-clock";
440		clock-frequency = <125000000>;
441		clock-output-names = "gmac1_clkin";
442		#clock-cells = <0>;
443	};
444
445	gmac0_xpcsclk: xpcs-gmac0-clock {
446		compatible = "fixed-clock";
447		clock-frequency = <125000000>;
448		clock-output-names = "clk_gmac0_xpcs_mii";
449		#clock-cells = <0>;
450	};
451
452	gmac1_xpcsclk: xpcs-gmac1-clock {
453		compatible = "fixed-clock";
454		clock-frequency = <125000000>;
455		clock-output-names = "clk_gmac1_xpcs_mii";
456		#clock-cells = <0>;
457	};
458
459	i2s1_mclkin_rx: i2s1-mclkin-rx {
460		compatible = "fixed-clock";
461		#clock-cells = <0>;
462		clock-frequency = <12288000>;
463		clock-output-names = "i2s1_mclkin_rx";
464	};
465
466	i2s1_mclkin_tx: i2s1-mclkin-tx {
467		compatible = "fixed-clock";
468		#clock-cells = <0>;
469		clock-frequency = <12288000>;
470		clock-output-names = "i2s1_mclkin_tx";
471	};
472
473	i2s2_mclkin: i2s2-mclkin {
474		compatible = "fixed-clock";
475		#clock-cells = <0>;
476		clock-frequency = <12288000>;
477		clock-output-names = "i2s2_mclkin";
478	};
479
480	i2s3_mclkin: i2s3-mclkin {
481		compatible = "fixed-clock";
482		#clock-cells = <0>;
483		clock-frequency = <12288000>;
484		clock-output-names = "i2s3_mclkin";
485	};
486
487	mpll: mpll {
488		compatible = "fixed-clock";
489		#clock-cells = <0>;
490		clock-frequency = <800000000>;
491		clock-output-names = "mpll";
492	};
493
494	xin24m: xin24m {
495		compatible = "fixed-clock";
496		#clock-cells = <0>;
497		clock-frequency = <24000000>;
498		clock-output-names = "xin24m";
499	};
500
501	xin32k: xin32k {
502		compatible = "fixed-clock";
503		clock-frequency = <32768>;
504		clock-output-names = "xin32k";
505		#clock-cells = <0>;
506		pinctrl-names = "default";
507		pinctrl-0 = <&clk32k_out0>;
508	};
509
510	scmi_shmem: scmi-shmem@10f000 {
511		compatible = "arm,scmi-shmem";
512		reg = <0x0 0x0010f000 0x0 0x100>;
513	};
514
515	sata0: sata@fc000000 {
516		compatible = "snps,dwc-ahci";
517		reg = <0 0xfc000000 0 0x1000>;
518		clocks = <&cru ACLK_SATA0>, <&cru CLK_SATA0_PMALIVE>,
519			 <&cru CLK_SATA0_RXOOB>;
520		clock-names = "sata", "pmalive", "rxoob";
521		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
522		interrupt-names = "hostc";
523		phys = <&combphy0_us PHY_TYPE_SATA>;
524		phy-names = "sata-phy";
525		ports-implemented = <0x1>;
526		power-domains = <&power RK3568_PD_PIPE>;
527		status = "disabled";
528	};
529
530	sata1: sata@fc400000 {
531		compatible = "snps,dwc-ahci";
532		reg = <0 0xfc400000 0 0x1000>;
533		clocks = <&cru ACLK_SATA1>, <&cru CLK_SATA1_PMALIVE>,
534			 <&cru CLK_SATA1_RXOOB>;
535		clock-names = "sata", "pmalive", "rxoob";
536		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
537		interrupt-names = "hostc";
538		phys = <&combphy1_usq PHY_TYPE_SATA>;
539		phy-names = "sata-phy";
540		ports-implemented = <0x1>;
541		power-domains = <&power RK3568_PD_PIPE>;
542		status = "disabled";
543	};
544
545	sata2: sata@fc800000 {
546		compatible = "snps,dwc-ahci";
547		reg = <0 0xfc800000 0 0x1000>;
548		clocks = <&cru ACLK_SATA2>, <&cru CLK_SATA2_PMALIVE>,
549			 <&cru CLK_SATA2_RXOOB>;
550		clock-names = "sata", "pmalive", "rxoob";
551		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
552		interrupt-names = "hostc";
553		phys = <&combphy2_psq PHY_TYPE_SATA>;
554		phy-names = "sata-phy";
555		ports-implemented = <0x1>;
556		power-domains = <&power RK3568_PD_PIPE>;
557		status = "disabled";
558	};
559
560	usbdrd30: usbdrd {
561		compatible = "rockchip,rk3568-dwc3", "rockchip,rk3399-dwc3";
562		clocks = <&cru CLK_USB3OTG0_REF>, <&cru CLK_USB3OTG0_SUSPEND>,
563			 <&cru ACLK_USB3OTG0>, <&cru PCLK_PIPE>;
564		clock-names = "ref_clk", "suspend_clk",
565			      "bus_clk", "pipe_clk";
566		#address-cells = <2>;
567		#size-cells = <2>;
568		ranges;
569		status = "disabled";
570
571		usbdrd_dwc3: dwc3@fcc00000 {
572			compatible = "snps,dwc3";
573			reg = <0x0 0xfcc00000 0x0 0x400000>;
574			interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
575			dr_mode = "otg";
576			phys = <&u2phy0_otg>, <&combphy0_us PHY_TYPE_USB3>;
577			phy-names = "usb2-phy", "usb3-phy";
578			phy_type = "utmi_wide";
579			power-domains = <&power RK3568_PD_PIPE>;
580			resets = <&cru SRST_USB3OTG0>;
581			reset-names = "usb3-otg";
582			snps,dis_enblslpm_quirk;
583			snps,dis-u1-entry-quirk;
584			snps,dis-u2-entry-quirk;
585			snps,dis-u2-freeclk-exists-quirk;
586			snps,dis-del-phy-power-chg-quirk;
587			snps,dis-tx-ipgap-linecheck-quirk;
588			snps,dis_rxdet_inp3_quirk;
589			snps,xhci-trb-ent-quirk;
590			snps,parkmode-disable-ss-quirk;
591			quirk-skip-phy-init;
592			status = "disabled";
593		};
594	};
595
596	usbhost30: usbhost {
597		compatible = "rockchip,rk3568-dwc3", "rockchip,rk3399-dwc3";
598		clocks = <&cru CLK_USB3OTG1_REF>, <&cru CLK_USB3OTG1_SUSPEND>,
599			 <&cru ACLK_USB3OTG1>, <&cru PCLK_PIPE>;
600		clock-names = "ref_clk", "suspend_clk",
601			      "bus_clk", "pipe_clk";
602		#address-cells = <2>;
603		#size-cells = <2>;
604		ranges;
605		status = "disabled";
606
607		usbhost_dwc3: dwc3@fd000000 {
608			compatible = "snps,dwc3";
609			reg = <0x0 0xfd000000 0x0 0x400000>;
610			interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
611			dr_mode = "host";
612			phys = <&u2phy0_host>, <&combphy1_usq PHY_TYPE_USB3>;
613			phy-names = "usb2-phy", "usb3-phy";
614			phy_type = "utmi_wide";
615			power-domains = <&power RK3568_PD_PIPE>;
616			resets = <&cru SRST_USB3OTG1>;
617			reset-names = "usb3-host";
618			snps,dis_enblslpm_quirk;
619			snps,dis-u2-freeclk-exists-quirk;
620			snps,dis-del-phy-power-chg-quirk;
621			snps,dis-tx-ipgap-linecheck-quirk;
622			snps,dis_rxdet_inp3_quirk;
623			snps,xhci-trb-ent-quirk;
624			snps,parkmode-disable-ss-quirk;
625			status = "disabled";
626		};
627	};
628
629	gic: interrupt-controller@fd400000 {
630		compatible = "arm,gic-v3";
631		#interrupt-cells = <3>;
632		#address-cells = <2>;
633		#size-cells = <2>;
634		ranges;
635		interrupt-controller;
636
637		reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
638		      <0x0 0xfd460000 0 0xc0000>; /* GICR */
639		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
640		its: interrupt-controller@fd440000 {
641			compatible = "arm,gic-v3-its";
642			msi-controller;
643			#msi-cells = <1>;
644			reg = <0x0 0xfd440000 0x0 0x20000>;
645		};
646	};
647
648	usb_host0_ehci: usb@fd800000 {
649		compatible = "generic-ehci";
650		reg = <0x0 0xfd800000 0x0 0x40000>;
651		interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
652		clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
653			 <&cru PCLK_USB>, <&usb2phy1>;
654		clock-names = "usbhost", "arbiter", "pclk", "utmi";
655		phys = <&u2phy1_otg>;
656		phy-names = "usb2-phy";
657		status = "disabled";
658	};
659
660	usb_host0_ohci: usb@fd840000 {
661		compatible = "generic-ohci";
662		reg = <0x0 0xfd840000 0x0 0x40000>;
663		interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
664		clocks = <&cru HCLK_USB2HOST0>, <&cru HCLK_USB2HOST0_ARB>,
665			 <&cru PCLK_USB>, <&usb2phy1>;
666		clock-names = "usbhost", "arbiter", "pclk", "utmi";
667		phys = <&u2phy1_otg>;
668		phy-names = "usb2-phy";
669		status = "disabled";
670	};
671
672	usb_host1_ehci: usb@fd880000 {
673		compatible = "generic-ehci";
674		reg = <0x0 0xfd880000 0x0 0x40000>;
675		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
676		clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
677			 <&cru PCLK_USB>, <&usb2phy1>;
678		clock-names = "usbhost", "arbiter", "pclk", "utmi";
679		phys = <&u2phy1_host>;
680		phy-names = "usb2-phy";
681		status = "disabled";
682	};
683
684	usb_host1_ohci: usb@fd8c0000 {
685		compatible = "generic-ohci";
686		reg = <0x0 0xfd8c0000 0x0 0x40000>;
687		interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
688		clocks = <&cru HCLK_USB2HOST1>, <&cru HCLK_USB2HOST1_ARB>,
689			 <&cru PCLK_USB>, <&usb2phy1>;
690		clock-names = "usbhost", "arbiter", "pclk", "utmi";
691		phys = <&u2phy1_host>;
692		phy-names = "usb2-phy";
693		status = "disabled";
694	};
695
696	xpcs: syscon@fda00000 {
697		compatible = "rockchip,rk3568-xpcs", "syscon";
698		reg = <0x0 0xfda00000 0x0 0x200000>;
699		status = "disabled";
700	};
701
702	pmugrf: syscon@fdc20000 {
703		compatible = "rockchip,rk3568-pmugrf", "syscon", "simple-mfd";
704		reg = <0x0 0xfdc20000 0x0 0x10000>;
705
706		pmu_io_domains: io-domains {
707			compatible = "rockchip,rk3568-pmu-io-voltage-domain";
708			status = "disabled";
709		};
710
711		reboot_mode: reboot-mode {
712			compatible = "syscon-reboot-mode";
713			offset = <0x200>;
714			mode-bootloader = <BOOT_BL_DOWNLOAD>;
715			mode-charge = <BOOT_CHARGING>;
716			mode-fastboot = <BOOT_FASTBOOT>;
717			mode-loader = <BOOT_BL_DOWNLOAD>;
718			mode-normal = <BOOT_NORMAL>;
719			mode-recovery = <BOOT_RECOVERY>;
720			mode-ums = <BOOT_UMS>;
721			mode-panic = <BOOT_PANIC>;
722			mode-watchdog = <BOOT_WATCHDOG>;
723		};
724	};
725
726	pipegrf: syscon@fdc50000 {
727		compatible = "rockchip,rk3568-pipegrf", "syscon";
728		reg = <0x0 0xfdc50000 0x0 0x1000>;
729	};
730
731	grf: syscon@fdc60000 {
732		compatible = "rockchip,rk3568-grf", "syscon", "simple-mfd";
733		reg = <0x0 0xfdc60000 0x0 0x10000>;
734
735		io_domains: io-domains {
736			compatible = "rockchip,rk3568-io-voltage-domain";
737			status = "disabled";
738		};
739
740		lvds: lvds {
741			compatible = "rockchip,rk3568-lvds";
742			phys = <&video_phy0>;
743			phy-names = "phy";
744			status = "disabled";
745
746			ports {
747				#address-cells = <1>;
748				#size-cells = <0>;
749
750				port@0 {
751					reg = <0>;
752					#address-cells = <1>;
753					#size-cells = <0>;
754
755					lvds_in_vp1: endpoint@1 {
756						reg = <1>;
757						remote-endpoint = <&vp1_out_lvds>;
758						status = "disabled";
759					};
760
761					lvds_in_vp2: endpoint@2 {
762						reg = <2>;
763						remote-endpoint = <&vp2_out_lvds>;
764						status = "disabled";
765					};
766				};
767			};
768		};
769
770		rgb: rgb {
771			compatible = "rockchip,rk3568-rgb";
772			pinctrl-names = "default";
773			pinctrl-0 = <&lcdc_ctl>;
774			status = "disabled";
775
776			ports {
777				#address-cells = <1>;
778				#size-cells = <0>;
779
780				port@0 {
781					reg = <0>;
782					#address-cells = <1>;
783					#size-cells = <0>;
784
785					rgb_in_vp2: endpoint@2 {
786						reg = <2>;
787						remote-endpoint = <&vp2_out_rgb>;
788						status = "disabled";
789					};
790				};
791			};
792		};
793
794	};
795
796	pipe_phy_grf0: syscon@fdc70000 {
797		compatible = "rockchip,pipe-phy-grf", "syscon";
798		reg = <0x0 0xfdc70000 0x0 0x1000>;
799	};
800
801	pipe_phy_grf1: syscon@fdc80000 {
802		compatible = "rockchip,pipe-phy-grf", "syscon";
803		reg = <0x0 0xfdc80000 0x0 0x1000>;
804	};
805
806	pipe_phy_grf2: syscon@fdc90000 {
807		compatible = "rockchip,pipe-phy-grf", "syscon";
808		reg = <0x0 0xfdc90000 0x0 0x1000>;
809	};
810
811	usb2phy0_grf: syscon@fdca0000 {
812		compatible = "rockchip,rk3568-usb2phy-grf", "syscon";
813		reg = <0x0 0xfdca0000 0x0 0x8000>;
814	};
815
816	usb2phy1_grf: syscon@fdca8000 {
817		compatible = "rockchip,rk3568-usb2phy-grf", "syscon";
818		reg = <0x0 0xfdca8000 0x0 0x8000>;
819	};
820
821	edp_phy_grf: syscon@fdcb0000 {
822		compatible = "rockchip,rk3568-edp-phy-grf", "syscon", "simple-mfd";
823		reg = <0x0 0xfdcb0000 0x0 0x100>;
824		clocks = <&cru PCLK_EDPPHY_GRF>;
825
826		edp_phy: edp-phy {
827			compatible = "rockchip,rk3568-edp-phy";
828			clocks = <&pmucru XIN_OSC0_EDPPHY_G>;
829			clock-names = "refclk";
830			#phy-cells = <0>;
831			status = "disabled";
832		};
833	};
834
835	pcie30_phy_grf: syscon@fdcb8000 {
836		compatible = "rockchip,pcie30-phy-grf", "syscon";
837		reg = <0x0 0xfdcb8000 0x0 0x10000>;
838	};
839
840	sram: sram@fdcc0000 {
841		compatible = "mmio-sram";
842		reg = <0x0 0xfdcc0000 0x0 0xb000>;
843
844		#address-cells = <1>;
845		#size-cells = <1>;
846		ranges = <0x0 0x0 0xfdcc0000 0xb000>;
847
848		/* start address and size should be 4k algin */
849		rkvdec_sram: rkvdec-sram@0 {
850			reg = <0x0 0xb000>;
851		};
852	};
853
854	pmucru: clock-controller@fdd00000 {
855		compatible = "rockchip,rk3568-pmucru";
856		reg = <0x0 0xfdd00000 0x0 0x1000>;
857		rockchip,grf = <&grf>;
858		rockchip,pmugrf = <&pmugrf>;
859		#clock-cells = <1>;
860		#reset-cells = <1>;
861
862		assigned-clocks = <&pmucru SCLK_32K_IOE>;
863		assigned-clock-parents = <&pmucru CLK_RTC_32K>;
864	};
865
866	cru: clock-controller@fdd20000 {
867		compatible = "rockchip,rk3568-cru";
868		reg = <0x0 0xfdd20000 0x0 0x1000>;
869		rockchip,grf = <&grf>;
870		#clock-cells = <1>;
871		#reset-cells = <1>;
872
873		assigned-clocks =
874			<&pmucru CLK_RTC_32K>, <&cru ACLK_RKVDEC_PRE>,
875			<&cru CLK_RKVDEC_CORE>, <&pmucru PLL_PPLL>,
876			<&pmucru PCLK_PMU>, <&cru PLL_CPLL>,
877			<&cru CPLL_500M>, <&cru CPLL_333M>,
878			<&cru CPLL_250M>, <&cru CPLL_125M>,
879			<&cru CPLL_100M>, <&cru CPLL_62P5M>,
880			<&cru CPLL_50M>, <&cru CPLL_25M>,
881			<&cru PLL_GPLL>,
882			<&cru ACLK_BUS>, <&cru PCLK_BUS>,
883			<&cru ACLK_TOP_HIGH>, <&cru ACLK_TOP_LOW>,
884			<&cru HCLK_TOP>, <&cru PCLK_TOP>,
885			<&cru ACLK_PERIMID>, <&cru HCLK_PERIMID>,
886			<&cru PLL_NPLL>, <&cru ACLK_PIPE>,
887			<&cru PCLK_PIPE>, <&cru CLK_I2S0_8CH_TX_SRC>,
888			<&cru CLK_I2S0_8CH_RX_SRC>, <&cru CLK_I2S1_8CH_TX_SRC>,
889			<&cru CLK_I2S1_8CH_RX_SRC>, <&cru CLK_I2S2_2CH_SRC>,
890			<&cru CLK_I2S2_2CH_SRC>, <&cru CLK_I2S3_2CH_RX_SRC>,
891			<&cru CLK_I2S3_2CH_TX_SRC>, <&cru MCLK_SPDIF_8CH_SRC>,
892			<&cru ACLK_VOP>;
893		assigned-clock-rates =
894			<32768>, <300000000>,
895			<300000000>, <200000000>,
896			<100000000>, <1000000000>,
897			<500000000>, <333000000>,
898			<250000000>, <125000000>,
899			<100000000>, <62500000>,
900			<50000000>, <25000000>,
901			<1188000000>,
902			<150000000>, <100000000>,
903			<500000000>, <400000000>,
904			<150000000>, <100000000>,
905			<300000000>, <150000000>,
906			<1200000000>, <400000000>,
907			<100000000>, <1188000000>,
908			<1188000000>, <1188000000>,
909			<1188000000>, <1188000000>,
910			<1188000000>, <1188000000>,
911			<1188000000>, <1188000000>,
912			<500000000>;
913		assigned-clock-parents =
914			<&pmucru CLK_RTC32K_FRAC>, <&cru PLL_GPLL>,
915			<&cru PLL_GPLL>;
916	};
917
918	i2c0: i2c@fdd40000 {
919		compatible = "rockchip,rk3399-i2c";
920		reg = <0x0 0xfdd40000 0x0 0x1000>;
921		clocks = <&pmucru CLK_I2C0>, <&pmucru PCLK_I2C0>;
922		clock-names = "i2c", "pclk";
923		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
924		pinctrl-names = "default";
925		pinctrl-0 = <&i2c0_xfer>;
926		#address-cells = <1>;
927		#size-cells = <0>;
928		status = "disabled";
929	};
930
931	uart0: serial@fdd50000 {
932		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
933		reg = <0x0 0xfdd50000 0x0 0x100>;
934		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
935		clocks = <&pmucru SCLK_UART0>, <&pmucru PCLK_UART0>;
936		clock-names = "baudclk", "apb_pclk";
937		reg-shift = <2>;
938		reg-io-width = <4>;
939		dmas = <&dmac0 0>, <&dmac0 1>;
940		pinctrl-names = "default";
941		pinctrl-0 = <&uart0_xfer>;
942		status = "disabled";
943	};
944
945	pwm0: pwm@fdd70000 {
946		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
947		reg = <0x0 0xfdd70000 0x0 0x10>;
948		#pwm-cells = <3>;
949		pinctrl-names = "active";
950		pinctrl-0 = <&pwm0m0_pins>;
951		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
952		clock-names = "pwm", "pclk";
953		status = "disabled";
954	};
955
956	pwm1: pwm@fdd70010 {
957		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
958		reg = <0x0 0xfdd70010 0x0 0x10>;
959		#pwm-cells = <3>;
960		pinctrl-names = "active";
961		pinctrl-0 = <&pwm1m0_pins>;
962		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
963		clock-names = "pwm", "pclk";
964		status = "disabled";
965	};
966
967	pwm2: pwm@fdd70020 {
968		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
969		reg = <0x0 0xfdd70020 0x0 0x10>;
970		#pwm-cells = <3>;
971		pinctrl-names = "active";
972		pinctrl-0 = <&pwm2m0_pins>;
973		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
974		clock-names = "pwm", "pclk";
975		status = "disabled";
976	};
977
978	pwm3: pwm@fdd70030 {
979		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
980		reg = <0x0 0xfdd70030 0x0 0x10>;
981		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
982			     <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
983		#pwm-cells = <3>;
984		pinctrl-names = "active";
985		pinctrl-0 = <&pwm3_pins>;
986		clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
987		clock-names = "pwm", "pclk";
988		status = "disabled";
989	};
990
991	pmu: power-management@fdd90000 {
992		compatible = "rockchip,rk3568-pmu", "syscon", "simple-mfd";
993		reg = <0x0 0xfdd90000 0x0 0x1000>;
994
995		power: power-controller {
996			compatible = "rockchip,rk3568-power-controller";
997			#power-domain-cells = <1>;
998			#address-cells = <1>;
999			#size-cells = <0>;
1000			status = "okay";
1001
1002			/* These power domains are grouped by VD_NPU */
1003			pd_npu@RK3568_PD_NPU {
1004				reg = <RK3568_PD_NPU>;
1005				clocks = <&cru ACLK_NPU_PRE>,
1006					 <&cru HCLK_NPU_PRE>,
1007					 <&cru PCLK_NPU_PRE>;
1008				pm_qos = <&qos_npu>;
1009			};
1010			/* These power domains are grouped by VD_GPU */
1011			pd_gpu@RK3568_PD_GPU {
1012				reg = <RK3568_PD_GPU>;
1013				clocks = <&cru ACLK_GPU_PRE>,
1014					 <&cru PCLK_GPU_PRE>;
1015				pm_qos = <&qos_gpu>;
1016			};
1017			/* These power domains are grouped by VD_LOGIC */
1018			pd_vi@RK3568_PD_VI {
1019				reg = <RK3568_PD_VI>;
1020				clocks = <&cru HCLK_VI>,
1021					 <&cru PCLK_VI>;
1022				pm_qos = <&qos_isp>,
1023					 <&qos_vicap0>,
1024					 <&qos_vicap1>;
1025			};
1026			pd_vo@RK3568_PD_VO {
1027				reg = <RK3568_PD_VO>;
1028				clocks = <&cru HCLK_VO>,
1029					 <&cru PCLK_VO>,
1030					 <&cru ACLK_VOP_PRE>;
1031				pm_qos = <&qos_hdcp>,
1032					 <&qos_vop_m0>,
1033					 <&qos_vop_m1>;
1034			};
1035			pd_rga@RK3568_PD_RGA {
1036				reg = <RK3568_PD_RGA>;
1037				clocks = <&cru HCLK_RGA_PRE>,
1038					 <&cru PCLK_RGA_PRE>;
1039				pm_qos = <&qos_ebc>,
1040					 <&qos_iep>,
1041					 <&qos_jpeg_dec>,
1042					 <&qos_jpeg_enc>,
1043					 <&qos_rga_rd>,
1044					 <&qos_rga_wr>;
1045			};
1046			pd_vpu@RK3568_PD_VPU {
1047				reg = <RK3568_PD_VPU>;
1048				clocks = <&cru HCLK_VPU_PRE>;
1049				pm_qos = <&qos_vpu>;
1050			};
1051			pd_rkvdec@RK3568_PD_RKVDEC {
1052				clocks = <&cru HCLK_RKVDEC_PRE>;
1053				reg = <RK3568_PD_RKVDEC>;
1054				pm_qos = <&qos_rkvdec>;
1055			};
1056			pd_rkvenc@RK3568_PD_RKVENC {
1057				reg = <RK3568_PD_RKVENC>;
1058				clocks = <&cru HCLK_RKVENC_PRE>;
1059				pm_qos = <&qos_rkvenc_rd_m0>,
1060					 <&qos_rkvenc_rd_m1>,
1061					 <&qos_rkvenc_wr_m0>;
1062			};
1063			pd_pipe@RK3568_PD_PIPE {
1064				reg = <RK3568_PD_PIPE>;
1065				clocks = <&cru PCLK_PIPE>;
1066				pm_qos = <&qos_pcie2x1>,
1067					 <&qos_pcie3x1>,
1068					 <&qos_pcie3x2>,
1069					 <&qos_sata0>,
1070					 <&qos_sata1>,
1071					 <&qos_sata2>,
1072					 <&qos_usb3_0>,
1073					 <&qos_usb3_1>;
1074			};
1075		};
1076	};
1077
1078	pvtm@fde00000 {
1079		compatible = "rockchip,rk3568-core-pvtm";
1080		reg = <0x0 0xfde00000 0x0 0x100>;
1081		#address-cells = <1>;
1082		#size-cells = <0>;
1083		pvtm@0 {
1084			reg = <0>;
1085			clocks = <&cru CLK_CORE_PVTM>, <&cru PCLK_CORE_PVTM>;
1086			clock-names = "clk", "pclk";
1087			resets = <&cru SRST_CORE_PVTM>, <&cru SRST_P_CORE_PVTM>;
1088			reset-names = "rts", "rst-p";
1089			thermal-zone = "soc-thermal";
1090		};
1091	};
1092
1093	rknpu: npu@fde40000 {
1094		compatible = "rockchip,rk3568-rknpu", "rockchip,rknpu";
1095		reg = <0x0 0xfde40000 0x0 0x10000>;
1096		interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
1097		clocks = <&scmi_clk 2>, <&cru CLK_NPU>, <&cru ACLK_NPU>, <&cru HCLK_NPU>;
1098		clock-names = "scmi_clk", "clk", "aclk", "hclk";
1099		assigned-clocks = <&cru CLK_NPU>;
1100		assigned-clock-rates = <600000000>;
1101		resets = <&cru SRST_A_NPU>, <&cru SRST_H_NPU>;
1102		reset-names = "srst_a", "srst_h";
1103		power-domains = <&power RK3568_PD_NPU>;
1104		operating-points-v2 = <&npu_opp_table>;
1105		iommus = <&rknpu_mmu>;
1106		status = "disabled";
1107	};
1108
1109	npu_opp_table: npu-opp-table {
1110		compatible = "operating-points-v2";
1111
1112		mbist-vmin = <825000 900000 950000>;
1113		nvmem-cells = <&npu_leakage>, <&core_pvtm>, <&mbist_vmin>, <&npu_opp_info>;
1114		nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info";
1115		rockchip,max-volt = <1000000>;
1116		rockchip,temp-hysteresis = <5000>;
1117		rockchip,low-temp = <0>;
1118		rockchip,low-temp-adjust-volt = <
1119			/* MHz    MHz    uV */
1120			   0      1000    50000
1121		>;
1122		rockchip,pvtm-voltage-sel = <
1123			0        84000   0
1124			84001    87000   1
1125			87001    91000   2
1126			91001    100000  3
1127		>;
1128		rockchip,pvtm-ch = <0 5>;
1129
1130		opp-200000000 {
1131			opp-hz = /bits/ 64 <200000000>;
1132			opp-microvolt = <850000 850000 1000000>;
1133		};
1134		opp-300000000 {
1135			opp-hz = /bits/ 64 <297000000>;
1136			opp-microvolt = <850000 850000 1000000>;
1137		};
1138		opp-400000000 {
1139			opp-hz = /bits/ 64 <400000000>;
1140			opp-microvolt = <850000 850000 1000000>;
1141		};
1142		opp-600000000 {
1143			opp-hz = /bits/ 64 <600000000>;
1144			opp-microvolt = <850000 850000 1000000>;
1145		};
1146		opp-700000000 {
1147			opp-hz = /bits/ 64 <700000000>;
1148			opp-microvolt = <875000 875000 1000000>;
1149			opp-microvolt-L0 = <875000 875000 1000000>;
1150			opp-microvolt-L1 = <850000 850000 1000000>;
1151			opp-microvolt-L2 = <850000 850000 1000000>;
1152			opp-microvolt-L3 = <850000 850000 1000000>;
1153		};
1154		opp-800000000 {
1155			opp-hz = /bits/ 64 <800000000>;
1156			opp-microvolt = <925000 925000 1000000>;
1157			opp-microvolt-L0 = <925000 925000 1000000>;
1158			opp-microvolt-L1 = <900000 900000 1000000>;
1159			opp-microvolt-L2 = <875000 875000 1000000>;
1160			opp-microvolt-L3 = <875000 875000 1000000>;
1161		};
1162		opp-900000000 {
1163			opp-hz = /bits/ 64 <900000000>;
1164			opp-microvolt = <975000 975000 1000000>;
1165			opp-microvolt-L0 = <975000 975000 1000000>;
1166			opp-microvolt-L1 = <950000 950000 1000000>;
1167			opp-microvolt-L2 = <925000 925000 1000000>;
1168			opp-microvolt-L3 = <900000 900000 1000000>;
1169		};
1170		opp-1000000000 {
1171			opp-hz = /bits/ 64 <1000000000>;
1172			opp-microvolt = <1000000 1000000 1000000>;
1173			opp-microvolt-L0 = <1000000 1000000 1000000>;
1174			opp-microvolt-L1 = <975000 975000 1000000>;
1175			opp-microvolt-L2 = <950000 950000 1000000>;
1176			opp-microvolt-L3 = <925000 925000 1000000>;
1177			status = "disabled";
1178		};
1179	};
1180
1181	bus_npu: bus-npu {
1182		compatible = "rockchip,rk3568-bus";
1183		rockchip,busfreq-policy = "clkfreq";
1184		clocks = <&scmi_clk 2>;
1185		clock-names = "bus";
1186		operating-points-v2 = <&bus_npu_opp_table>;
1187		status = "disabled";
1188	};
1189
1190	bus_npu_opp_table: bus-npu-opp-table {
1191		compatible = "operating-points-v2";
1192		opp-shared;
1193
1194		nvmem-cells = <&core_pvtm>;
1195		nvmem-cell-names = "pvtm";
1196		rockchip,pvtm-voltage-sel = <
1197			0        84000   0
1198			84001    91000   1
1199			91001    100000  2
1200		>;
1201		rockchip,pvtm-ch = <0 5>;
1202
1203		opp-700000000 {
1204			opp-hz = /bits/ 64 <700000000>;
1205			opp-microvolt = <900000>;
1206			opp-microvolt-L0 = <900000>;
1207			opp-microvolt-L1 = <875000>;
1208			opp-microvolt-L2 = <875000>;
1209		};
1210		opp-900000000 {
1211			opp-hz = /bits/ 64 <900000000>;
1212			opp-microvolt = <900000>;
1213		};
1214		opp-1000000000 {
1215			opp-hz = /bits/ 64 <1000000000>;
1216			opp-microvolt = <950000>;
1217			opp-microvolt-L0 = <950000>;
1218			opp-microvolt-L1 = <925000>;
1219			opp-microvolt-L2 = <900000>;
1220		};
1221	};
1222
1223	rknpu_mmu: iommu@fde4b000 {
1224		compatible = "rockchip,iommu-v2";
1225		reg = <0x0 0xfde4b000 0x0 0x40>;
1226		interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
1227		interrupt-names = "rknpu_mmu";
1228		clocks = <&cru ACLK_NPU>, <&cru HCLK_NPU>;
1229		clock-names = "aclk", "iface";
1230		power-domains = <&power RK3568_PD_NPU>;
1231		#iommu-cells = <0>;
1232		status = "disabled";
1233	};
1234
1235	gpu: gpu@fde60000 {
1236		compatible = "arm,mali-bifrost";
1237		reg = <0x0 0xfde60000 0x0 0x4000>;
1238
1239		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
1240			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
1241			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
1242		interrupt-names = "GPU", "MMU", "JOB";
1243
1244		upthreshold = <40>;
1245		downdifferential = <10>;
1246
1247		clocks = <&scmi_clk 1>, <&cru CLK_GPU>;
1248		clock-names = "clk_mali", "clk_gpu";
1249		power-domains = <&power RK3568_PD_GPU>;
1250		#cooling-cells = <2>;
1251		operating-points-v2 = <&gpu_opp_table>;
1252
1253		status = "disabled";
1254		gpu_power_model: power-model {
1255			compatible = "simple-power-model";
1256			leakage-range= <5 15>;
1257			ls = <(-24002) 22823 0>;
1258			static-coefficient = <100000>;
1259			dynamic-coefficient = <953>;
1260			ts = <(-108890) 63610 (-1355) 20>;
1261			thermal-zone = "gpu-thermal";
1262		};
1263	};
1264
1265	gpu_opp_table: opp-table2 {
1266		compatible = "operating-points-v2";
1267
1268		mbist-vmin = <825000 900000 950000>;
1269		nvmem-cells = <&gpu_leakage>, <&core_pvtm>, <&mbist_vmin>, <&gpu_opp_info>;
1270		nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info";
1271		rockchip,max-volt = <1000000>;
1272		rockchip,temp-hysteresis = <5000>;
1273		rockchip,low-temp = <0>;
1274		rockchip,low-temp-adjust-volt = <
1275			/* MHz    MHz    uV */
1276			   0      800    50000
1277		>;
1278		rockchip,pvtm-voltage-sel = <
1279			0        84000   0
1280			84001    87000   1
1281			87001    91000   2
1282			91001    100000  3
1283		>;
1284		rockchip,pvtm-ch = <0 5>;
1285
1286		opp-200000000 {
1287			opp-hz = /bits/ 64 <200000000>;
1288			opp-microvolt = <850000 850000 1000000>;
1289		};
1290		opp-300000000 {
1291			opp-hz = /bits/ 64 <300000000>;
1292			opp-microvolt = <850000 850000 1000000>;
1293		};
1294		opp-400000000 {
1295			opp-hz = /bits/ 64 <400000000>;
1296			opp-microvolt = <850000 850000 1000000>;
1297		};
1298		opp-600000000 {
1299			opp-hz = /bits/ 64 <600000000>;
1300			opp-microvolt = <900000 900000 1000000>;
1301			opp-microvolt-L0 = <900000 900000 1000000>;
1302			opp-microvolt-L1 = <875000 875000 1000000>;
1303			opp-microvolt-L2 = <850000 850000 1000000>;
1304			opp-microvolt-L3 = <850000 850000 1000000>;
1305		};
1306		opp-700000000 {
1307			opp-hz = /bits/ 64 <700000000>;
1308			opp-microvolt = <950000 950000 1000000>;
1309			opp-microvolt-L0 = <950000 950000 1000000>;
1310			opp-microvolt-L1 = <925000 925000 1000000>;
1311			opp-microvolt-L2 = <900000 900000 1000000>;
1312			opp-microvolt-L3 = <875000 875000 1000000>;
1313		};
1314		opp-800000000 {
1315			opp-hz = /bits/ 64 <800000000>;
1316			opp-microvolt = <1000000 1000000 1000000>;
1317			opp-microvolt-L0 = <1000000 1000000 1000000>;
1318			opp-microvolt-L1 = <975000 975000 1000000>;
1319			opp-microvolt-L2 = <950000 950000 1000000>;
1320			opp-microvolt-L3 = <925000 925000 1000000>;
1321		};
1322	};
1323
1324	pvtm@fde80000 {
1325		compatible = "rockchip,rk3568-gpu-pvtm";
1326		reg = <0x0 0xfde80000 0x0 0x100>;
1327		#address-cells = <1>;
1328		#size-cells = <0>;
1329		pvtm@1 {
1330			reg = <1>;
1331			clocks = <&cru CLK_GPU_PVTM>, <&cru PCLK_GPU_PVTM>;
1332			clock-names = "clk", "pclk";
1333			resets = <&cru SRST_GPU_PVTM>, <&cru SRST_P_GPU_PVTM>;
1334			reset-names = "rts", "rst-p";
1335			thermal-zone = "gpu-thermal";
1336		};
1337	};
1338
1339	pvtm@fde90000 {
1340		compatible = "rockchip,rk3568-npu-pvtm";
1341		reg = <0x0 0xfde90000 0x0 0x100>;
1342		#address-cells = <1>;
1343		#size-cells = <0>;
1344		pvtm@2 {
1345			reg = <2>;
1346			clocks = <&cru CLK_NPU_PVTM>, <&cru PCLK_NPU_PVTM>,
1347				 <&cru HCLK_NPU_PRE>;
1348			clock-names = "clk", "pclk", "hclk";
1349			resets = <&cru SRST_NPU_PVTM>, <&cru SRST_P_NPU_PVTM>;
1350			reset-names = "rts", "rst-p";
1351			thermal-zone = "soc-thermal";
1352		};
1353	};
1354
1355	vdpu: vdpu@fdea0400 {
1356		compatible = "rockchip,vpu-decoder-v2";
1357		reg = <0x0 0xfdea0400 0x0 0x400>;
1358		interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
1359		interrupt-names = "irq_dec";
1360		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
1361		clock-names = "aclk_vcodec", "hclk_vcodec";
1362		resets = <&cru SRST_A_VPU>, <&cru SRST_H_VPU>;
1363		reset-names = "video_a", "video_h";
1364		iommus = <&vdpu_mmu>;
1365		power-domains = <&power RK3568_PD_VPU>;
1366		rockchip,srv = <&mpp_srv>;
1367		rockchip,taskqueue-node = <0>;
1368		rockchip,resetgroup-node = <0>;
1369		status = "disabled";
1370	};
1371
1372	vdpu_mmu: iommu@fdea0800 {
1373		compatible = "rockchip,iommu-v2";
1374		reg = <0x0 0xfdea0800 0x0 0x40>;
1375		interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1376		interrupt-names = "vdpu_mmu";
1377		clock-names = "aclk", "iface";
1378		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
1379		power-domains = <&power RK3568_PD_VPU>;
1380		#iommu-cells = <0>;
1381		status = "disabled";
1382	};
1383
1384	rk_rga: rk_rga@fdeb0000 {
1385		compatible = "rockchip,rga2";
1386		reg = <0x0 0xfdeb0000 0x0 0x1000>;
1387		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1388		clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru CLK_RGA_CORE>;
1389		clock-names = "aclk_rga", "hclk_rga", "clk_rga";
1390		power-domains = <&power RK3568_PD_RGA>;
1391		status = "disabled";
1392	};
1393
1394	ebc: ebc@fdec0000 {
1395		compatible = "rockchip,rk3568-ebc-tcon";
1396		reg = <0x0 0xfdec0000 0x0 0x5000>;
1397		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
1398		clocks = <&cru HCLK_EBC>, <&cru DCLK_EBC>;
1399		clock-names = "hclk", "dclk";
1400		power-domains = <&power RK3568_PD_RGA>;
1401		rockchip,grf = <&grf>;
1402		pinctrl-names = "default";
1403		pinctrl-0 = <&ebc_pins>;
1404		status = "disabled";
1405	};
1406
1407	jpegd: jpegd@fded0000 {
1408		compatible = "rockchip,rkv-jpeg-decoder-v1";
1409		reg = <0x0 0xfded0000 0x0 0x400>;
1410		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1411		clocks = <&cru ACLK_JDEC>, <&cru HCLK_JDEC>;
1412		clock-names = "aclk_vcodec", "hclk_vcodec";
1413		rockchip,disable-auto-freq;
1414		resets = <&cru SRST_A_JDEC>, <&cru SRST_H_JDEC>;
1415		reset-names = "video_a", "video_h";
1416		iommus = <&jpegd_mmu>;
1417		rockchip,srv = <&mpp_srv>;
1418		rockchip,taskqueue-node = <1>;
1419		rockchip,resetgroup-node = <1>;
1420		power-domains = <&power RK3568_PD_RGA>;
1421		status = "disabled";
1422	};
1423
1424	jpegd_mmu: iommu@fded0480 {
1425		compatible = "rockchip,iommu-v2";
1426		reg = <0x0 0xfded0480 0x0 0x40>;
1427		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1428		interrupt-names = "jpegd_mmu";
1429		clock-names = "aclk", "iface";
1430		clocks = <&cru ACLK_JDEC>, <&cru HCLK_JDEC>;
1431		power-domains = <&power RK3568_PD_RGA>;
1432		#iommu-cells = <0>;
1433		status = "disabled";
1434	};
1435
1436	vepu: vepu@fdee0000 {
1437		compatible = "rockchip,vpu-encoder-v2";
1438		reg = <0x0 0xfdee0000 0x0 0x400>;
1439		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
1440		clocks = <&cru ACLK_JENC>, <&cru HCLK_JENC>;
1441		clock-names = "aclk_vcodec", "hclk_vcodec";
1442		rockchip,disable-auto-freq;
1443		resets = <&cru SRST_A_JENC>, <&cru SRST_H_JENC>;
1444		reset-names = "video_a", "video_h";
1445		iommus = <&vepu_mmu>;
1446		rockchip,srv = <&mpp_srv>;
1447		rockchip,taskqueue-node = <2>;
1448		rockchip,resetgroup-node = <2>;
1449		power-domains = <&power RK3568_PD_RGA>;
1450		status = "disabled";
1451	};
1452
1453	vepu_mmu: iommu@fdee0800 {
1454		compatible = "rockchip,iommu-v2";
1455		reg = <0x0 0xfdee0800 0x0 0x40>;
1456		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
1457		interrupt-names = "vepu_mmu";
1458		clock-names = "aclk", "iface";
1459		clocks = <&cru ACLK_JENC>, <&cru HCLK_JENC>;
1460		power-domains = <&power RK3568_PD_RGA>;
1461		#iommu-cells = <0>;
1462		status = "disabled";
1463	};
1464
1465	iep: iep@fdef0000 {
1466		compatible = "rockchip,iep-v2";
1467		reg = <0x0 0xfdef0000 0x0 0x500>;
1468		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
1469		clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>, <&cru CLK_IEP_CORE>;
1470		clock-names = "aclk", "hclk", "sclk";
1471		resets = <&cru SRST_A_IEP>, <&cru SRST_H_IEP>,
1472			<&cru SRST_IEP_CORE>;
1473		reset-names = "rst_a", "rst_h", "rst_s";
1474		power-domains = <&power RK3568_PD_RGA>;
1475		rockchip,srv = <&mpp_srv>;
1476		rockchip,taskqueue-node = <5>;
1477		rockchip,resetgroup-node = <5>;
1478		iommus = <&iep_mmu>;
1479		status = "disabled";
1480	};
1481
1482	iep_mmu: iommu@fdef0800 {
1483		compatible = "rockchip,iommu-v2";
1484		reg = <0x0 0xfdef0800 0x0 0x100>;
1485		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
1486		interrupt-names = "iep_mmu";
1487		clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>;
1488		clock-names = "aclk", "iface";
1489		#iommu-cells = <0>;
1490		power-domains = <&power RK3568_PD_RGA>;
1491		//rockchip,disable-device-link-resume;
1492		status = "disabled";
1493	};
1494
1495	eink: eink@fdf00000 {
1496		compatible = "rockchip,rk3568-eink-tcon";
1497		reg = <0x0 0xfdf00000 0x0 0x74>;
1498		interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
1499		clocks = <&cru PCLK_EINK>, <&cru HCLK_EINK>;
1500		clock-names = "pclk", "hclk";
1501		status = "disabled";
1502	};
1503
1504	rkvenc: rkvenc@fdf40000 {
1505		compatible = "rockchip,rkv-encoder-v1";
1506		reg = <0x0 0xfdf40000 0x0 0x400>;
1507		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1508		interrupt-names = "irq_enc";
1509		clocks = <&cru ACLK_RKVENC>, <&cru HCLK_RKVENC>,
1510			<&cru CLK_RKVENC_CORE>;
1511		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
1512		rockchip,normal-rates = <297000000>, <0>, <297000000>;
1513		resets = <&cru SRST_A_RKVENC>, <&cru SRST_H_RKVENC>,
1514			<&cru SRST_RKVENC_CORE>;
1515		reset-names = "video_a", "video_h", "video_core";
1516		assigned-clocks = <&cru ACLK_RKVENC>, <&cru CLK_RKVENC_CORE>;
1517		assigned-clock-rates = <297000000>, <297000000>;
1518		iommus = <&rkvenc_mmu>;
1519		node-name = "rkvenc";
1520		rockchip,srv = <&mpp_srv>;
1521		rockchip,taskqueue-node = <3>;
1522		rockchip,resetgroup-node = <3>;
1523		power-domains = <&power RK3568_PD_RKVENC>;
1524		operating-points-v2 = <&rkvenc_opp_table>;
1525		status = "disabled";
1526	};
1527
1528	rkvenc_opp_table: rkvenc-opp-table {
1529		compatible = "operating-points-v2";
1530
1531		nvmem-cells = <&core_pvtm>;
1532		nvmem-cell-names = "pvtm";
1533		rockchip,pvtm-voltage-sel = <
1534			0        84000   0
1535			84001    91000   1
1536			91001    100000  2
1537		>;
1538		rockchip,pvtm-ch = <0 5>;
1539
1540		opp-297000000 {
1541			opp-hz = /bits/ 64 <297000000>;
1542			opp-microvolt = <900000>;
1543			opp-microvolt-L0 = <900000>;
1544			opp-microvolt-L1 = <875000>;
1545			opp-microvolt-L2 = <875000>;
1546		};
1547		opp-400000000 {
1548			opp-hz = /bits/ 64 <400000000>;
1549			opp-microvolt = <950000>;
1550			opp-microvolt-L0 = <950000>;
1551			opp-microvolt-L1 = <925000>;
1552			opp-microvolt-L2 = <900000>;
1553		};
1554	};
1555
1556	rkvenc_mmu: iommu@fdf40f00 {
1557		compatible = "rockchip,iommu-v2";
1558		reg = <0x0 0xfdf40f00 0x0 0x40>, <0x0 0xfdf40f40 0x0 0x40>;
1559		interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
1560			<GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
1561		interrupt-names = "rkvenc_mmu0", "rkvenc_mmu1";
1562		clocks = <&cru ACLK_RKVENC>, <&cru HCLK_RKVENC>;
1563		clock-names = "aclk", "iface";
1564		rockchip,disable-mmu-reset;
1565		rockchip,enable-cmd-retry;
1566		#iommu-cells = <0>;
1567		power-domains = <&power RK3568_PD_RKVENC>;
1568		status = "disabled";
1569	};
1570
1571	rkvdec: rkvdec@fdf80200 {
1572		compatible = "rockchip,rkv-decoder-rk3568", "rockchip,rkv-decoder-v2";
1573		reg = <0x0 0xfdf80200 0x0 0x400>, <0x0 0xfdf80100 0x0 0x100>;
1574		reg-names = "regs", "link";
1575		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1576		interrupt-names = "irq_dec";
1577		clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>,
1578			 <&cru CLK_RKVDEC_CA>, <&cru CLK_RKVDEC_CORE>,
1579			 <&cru CLK_RKVDEC_HEVC_CA>;
1580		clock-names = "aclk_vcodec", "hclk_vcodec","clk_cabac",
1581			      "clk_core", "clk_hevc_cabac";
1582		rockchip,normal-rates = <297000000>, <0>, <297000000>,
1583					<297000000>, <600000000>;
1584		rockchip,advanced-rates = <396000000>, <0>, <396000000>,
1585					<396000000>, <600000000>;
1586		rockchip,default-max-load = <2088960>;
1587		resets = <&cru SRST_A_RKVDEC>, <&cru SRST_H_RKVDEC>,
1588			 <&cru SRST_RKVDEC_CA>, <&cru SRST_RKVDEC_CORE>,
1589			 <&cru SRST_RKVDEC_HEVC_CA>;
1590		assigned-clocks = <&cru ACLK_RKVDEC>, <&cru CLK_RKVDEC_CA>,
1591				  <&cru CLK_RKVDEC_CORE>, <&cru CLK_RKVDEC_HEVC_CA>;
1592		assigned-clock-rates = <297000000>, <297000000>, <297000000>, <297000000>;
1593		reset-names = "video_a", "video_h", "video_cabac",
1594			      "video_core", "video_hevc_cabac";
1595		power-domains = <&power RK3568_PD_RKVDEC>;
1596		operating-points-v2 = <&rkvdec_opp_table>;
1597		vdec-supply = <&vdd_logic>;
1598		iommus = <&rkvdec_mmu>;
1599		rockchip,srv = <&mpp_srv>;
1600		rockchip,taskqueue-node = <4>;
1601		rockchip,resetgroup-node = <4>;
1602		rockchip,sram = <&rkvdec_sram>;
1603		/* rcb_iova: start and size */
1604		rockchip,rcb-iova = <0x10000000 65536>;
1605		rockchip,rcb-min-width = <512>;
1606		rockchip,task-capacity = <16>;
1607		status = "disabled";
1608	};
1609
1610	rkvdec_opp_table: rkvdec-opp-table {
1611		compatible = "operating-points-v2";
1612
1613		nvmem-cells = <&log_leakage>, <&core_pvtm>;
1614		nvmem-cell-names = "leakage", "pvtm";
1615		rockchip,leakage-voltage-sel = <
1616			1   80    0
1617			81  254   1
1618		>;
1619		rockchip,pvtm-voltage-sel = <
1620			0        84000   0
1621			84001    100000  1
1622		>;
1623		rockchip,pvtm-ch = <0 5>;
1624
1625		opp-297000000 {
1626			opp-hz = /bits/ 64 <297000000>;
1627			opp-microvolt = <900000>;
1628			opp-microvolt-L0 = <900000>;
1629			opp-microvolt-L1 = <875000>;
1630		};
1631		opp-400000000 {
1632			opp-hz = /bits/ 64 <400000000>;
1633			opp-microvolt = <900000>;
1634		};
1635	};
1636
1637	rkvdec_mmu: iommu@fdf80800 {
1638		compatible = "rockchip,iommu-v2";
1639		reg = <0x0 0xfdf80800 0x0 0x40>, <0x0 0xfdf80840 0x0 0x40>;
1640		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
1641		interrupt-names = "rkvdec_mmu";
1642		clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>;
1643		clock-names = "aclk", "iface";
1644		power-domains = <&power RK3568_PD_RKVDEC>;
1645		#iommu-cells = <0>;
1646		status = "disabled";
1647	};
1648
1649	mipi_csi2_hw: mipi-csi2-hw@fdfb0000 {
1650		compatible = "rockchip,rk3568-mipi-csi2-hw";
1651		reg = <0x0 0xfdfb0000 0x0 0x10000>;
1652		reg-names = "csihost_regs";
1653		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1654			     <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1655		interrupt-names = "csi-intr1", "csi-intr2";
1656		clocks = <&cru PCLK_CSI2HOST1>;
1657		clock-names = "pclk_csi2host";
1658		resets = <&cru SRST_P_CSI2HOST1>;
1659		reset-names = "srst_csihost_p";
1660		status = "disabled";
1661	};
1662
1663	rkcif: rkcif@fdfe0000 {
1664		compatible = "rockchip,rk3568-cif";
1665		reg = <0x0 0xfdfe0000 0x0 0x8000>;
1666		reg-names = "cif_regs";
1667		interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1668		interrupt-names = "cif-intr";
1669
1670		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>,
1671			 <&cru DCLK_VICAP>, <&cru ICLK_VICAP_G>;
1672		clock-names = "aclk_cif", "hclk_cif",
1673			      "dclk_cif", "iclk_cif_g";
1674		resets = <&cru SRST_A_VICAP>, <&cru SRST_H_VICAP>,
1675			 <&cru SRST_D_VICAP>, <&cru SRST_P_VICAP>,
1676			 <&cru SRST_I_VICAP>;
1677		reset-names = "rst_cif_a", "rst_cif_h",
1678			      "rst_cif_d", "rst_cif_p",
1679			      "rst_cif_i";
1680		assigned-clocks = <&cru DCLK_VICAP>;
1681		assigned-clock-rates = <300000000>;
1682		power-domains = <&power RK3568_PD_VI>;
1683		rockchip,grf = <&grf>;
1684		iommus = <&rkcif_mmu>;
1685		status = "disabled";
1686	};
1687
1688	rkcif_mmu: iommu@fdfe0800 {
1689		compatible = "rockchip,iommu-v2";
1690		reg = <0x0 0xfdfe0800 0x0 0x100>;
1691		interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1692		interrupt-names = "cif_mmu";
1693		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>;
1694		clock-names = "aclk", "iface";
1695		power-domains = <&power RK3568_PD_VI>;
1696		rockchip,disable-mmu-reset;
1697		#iommu-cells = <0>;
1698		status = "disabled";
1699	};
1700
1701	rkcif_dvp: rkcif_dvp {
1702		compatible = "rockchip,rkcif-dvp";
1703		rockchip,hw = <&rkcif>;
1704		status = "disabled";
1705	};
1706
1707	rkcif_dvp_sditf: rkcif_dvp_sditf {
1708		compatible = "rockchip,rkcif-sditf";
1709		rockchip,cif = <&rkcif_dvp>;
1710		status = "disabled";
1711	};
1712
1713	rkcif_mipi_lvds: rkcif_mipi_lvds {
1714		compatible = "rockchip,rkcif-mipi-lvds";
1715		rockchip,hw = <&rkcif>;
1716		status = "disabled";
1717	};
1718
1719	rkcif_mipi_lvds_sditf: rkcif_mipi_lvds_sditf {
1720		compatible = "rockchip,rkcif-sditf";
1721		rockchip,cif = <&rkcif_mipi_lvds>;
1722		status = "disabled";
1723	};
1724
1725	rkisp: rkisp@fdff0000 {
1726		compatible = "rockchip,rk3568-rkisp";
1727		reg = <0x0 0xfdff0000 0x0 0x10000>;
1728		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
1729			     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
1730			     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
1731		interrupt-names = "mipi_irq", "mi_irq", "isp_irq";
1732		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>, <&cru CLK_ISP>;
1733		clock-names = "aclk_isp", "hclk_isp", "clk_isp";
1734		resets = <&cru SRST_ISP>, <&cru SRST_H_ISP>;
1735		reset-names = "isp", "isp-h";
1736		rockchip,grf = <&grf>;
1737		power-domains = <&power RK3568_PD_VI>;
1738		iommus = <&rkisp_mmu>;
1739		rockchip,iq-feature = /bits/ 64 <0x1BFBFFFE67FF>;
1740		status = "disabled";
1741	};
1742
1743	rkisp_mmu: iommu@fdff1a00 {
1744		compatible = "rockchip,iommu-v2";
1745		reg = <0x0 0xfdff1a00 0x0 0x100>;
1746		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
1747		interrupt-names = "isp_mmu";
1748		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
1749		clock-names = "aclk", "iface";
1750		power-domains = <&power RK3568_PD_VI>;
1751		#iommu-cells = <0>;
1752		rockchip,disable-mmu-reset;
1753		status = "disabled";
1754	};
1755
1756	rkisp_vir0: rkisp-vir0 {
1757		compatible = "rockchip,rkisp-vir";
1758		rockchip,hw = <&rkisp>;
1759		status = "disabled";
1760	};
1761
1762	rkisp_vir1: rkisp-vir1 {
1763		compatible = "rockchip,rkisp-vir";
1764		rockchip,hw = <&rkisp>;
1765		status = "disabled";
1766	};
1767
1768	gmac_uio1: uio@fe010000 {
1769		compatible = "rockchip,uio-gmac";
1770		reg = <0x0 0xfe010000 0x0 0x10000>;
1771		rockchip,ethernet = <&gmac1>;
1772		status = "disabled";
1773	};
1774
1775	gmac0: ethernet@fe2a0000 {
1776		compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a";
1777		reg = <0x0 0xfe2a0000 0x0 0x10000>;
1778		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
1779			     <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
1780		interrupt-names = "macirq", "eth_wake_irq";
1781		rockchip,grf = <&grf>;
1782		clocks = <&cru SCLK_GMAC0>, <&cru SCLK_GMAC0_RX_TX>,
1783			 <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_MAC0_REFOUT>,
1784			 <&cru ACLK_GMAC0>, <&cru PCLK_GMAC0>,
1785			 <&cru SCLK_GMAC0_RX_TX>, <&cru CLK_GMAC0_PTP_REF>,
1786			 <&cru PCLK_XPCS>, <&cru CLK_XPCS_EEE>;
1787		clock-names = "stmmaceth", "mac_clk_rx",
1788			      "mac_clk_tx", "clk_mac_refout",
1789			      "aclk_mac", "pclk_mac",
1790			      "clk_mac_speed", "ptp_ref",
1791			      "pclk_xpcs", "clk_xpcs_eee";
1792		resets = <&cru SRST_A_GMAC0>;
1793		reset-names = "stmmaceth";
1794
1795		snps,mixed-burst;
1796		snps,tso;
1797
1798		snps,axi-config = <&gmac0_stmmac_axi_setup>;
1799		snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
1800		snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
1801		status = "disabled";
1802
1803		mdio0: mdio {
1804			compatible = "snps,dwmac-mdio";
1805			#address-cells = <0x1>;
1806			#size-cells = <0x0>;
1807		};
1808
1809		gmac0_stmmac_axi_setup: stmmac-axi-config {
1810			snps,wr_osr_lmt = <4>;
1811			snps,rd_osr_lmt = <8>;
1812			snps,blen = <0 0 0 0 16 8 4>;
1813		};
1814
1815		gmac0_mtl_rx_setup: rx-queues-config {
1816			snps,rx-queues-to-use = <1>;
1817			queue0 {};
1818		};
1819
1820		gmac0_mtl_tx_setup: tx-queues-config {
1821			snps,tx-queues-to-use = <1>;
1822			queue0 {};
1823		};
1824	};
1825
1826	gmac1: ethernet@fe010000 {
1827		compatible = "rockchip,rk3568-gmac", "snps,dwmac-4.20a";
1828		reg = <0x0 0xfe010000 0x0 0x10000>;
1829		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
1830			     <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1831		interrupt-names = "macirq", "eth_wake_irq";
1832		rockchip,grf = <&grf>;
1833		clocks = <&cru SCLK_GMAC1>, <&cru SCLK_GMAC1_RX_TX>,
1834			 <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_MAC1_REFOUT>,
1835			 <&cru ACLK_GMAC1>, <&cru PCLK_GMAC1>,
1836			 <&cru SCLK_GMAC1_RX_TX>, <&cru CLK_GMAC1_PTP_REF>,
1837			 <&cru PCLK_XPCS>, <&cru CLK_XPCS_EEE>;
1838		clock-names = "stmmaceth", "mac_clk_rx",
1839			      "mac_clk_tx", "clk_mac_refout",
1840			      "aclk_mac", "pclk_mac",
1841			      "clk_mac_speed", "ptp_ref",
1842			      "pclk_xpcs", "clk_xpcs_eee";
1843		resets = <&cru SRST_A_GMAC1>;
1844		reset-names = "stmmaceth";
1845
1846		snps,mixed-burst;
1847		snps,tso;
1848
1849		snps,axi-config = <&gmac1_stmmac_axi_setup>;
1850		snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
1851		snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
1852		status = "disabled";
1853
1854		mdio1: mdio {
1855			compatible = "snps,dwmac-mdio";
1856			#address-cells = <0x1>;
1857			#size-cells = <0x0>;
1858		};
1859
1860		gmac1_stmmac_axi_setup: stmmac-axi-config {
1861			snps,wr_osr_lmt = <4>;
1862			snps,rd_osr_lmt = <8>;
1863			snps,blen = <0 0 0 0 16 8 4>;
1864		};
1865
1866		gmac1_mtl_rx_setup: rx-queues-config {
1867			snps,rx-queues-to-use = <1>;
1868			queue0 {};
1869		};
1870
1871		gmac1_mtl_tx_setup: tx-queues-config {
1872			snps,tx-queues-to-use = <1>;
1873			queue0 {};
1874		};
1875	};
1876
1877	vop: vop@fe040000 {
1878		compatible = "rockchip,rk3568-vop";
1879		reg = <0x0 0xfe040000 0x0 0x3000>, <0x0 0xfe044000 0x0 0x1000>;
1880		reg-names = "regs", "gamma_lut";
1881		rockchip,grf = <&grf>;
1882		interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
1883		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>, <&cru DCLK_VOP0>, <&cru DCLK_VOP1>, <&cru DCLK_VOP2>;
1884		clock-names = "aclk_vop", "hclk_vop", "dclk_vp0", "dclk_vp1", "dclk_vp2";
1885		iommus = <&vop_mmu>;
1886		power-domains = <&power RK3568_PD_VO>;
1887		status = "disabled";
1888
1889		vop_out: ports {
1890			#address-cells = <1>;
1891			#size-cells = <0>;
1892
1893			vp0: port@0 {
1894				#address-cells = <1>;
1895				#size-cells = <0>;
1896				reg = <0>;
1897
1898				vp0_out_dsi0: endpoint@0 {
1899					reg = <0>;
1900					remote-endpoint = <&dsi0_in_vp0>;
1901				};
1902
1903				vp0_out_dsi1: endpoint@1 {
1904					reg = <1>;
1905					remote-endpoint = <&dsi1_in_vp0>;
1906				};
1907
1908				vp0_out_edp: endpoint@2 {
1909					reg = <2>;
1910					remote-endpoint = <&edp_in_vp0>;
1911				};
1912
1913				vp0_out_hdmi: endpoint@3 {
1914					reg = <3>;
1915					remote-endpoint = <&hdmi_in_vp0>;
1916				};
1917			};
1918
1919			vp1: port@1 {
1920				#address-cells = <1>;
1921				#size-cells = <0>;
1922				reg = <1>;
1923
1924				vp1_out_dsi0: endpoint@0 {
1925					reg = <0>;
1926					remote-endpoint = <&dsi0_in_vp1>;
1927				};
1928
1929				vp1_out_dsi1: endpoint@1 {
1930					reg = <1>;
1931					remote-endpoint = <&dsi1_in_vp1>;
1932				};
1933
1934				vp1_out_edp: endpoint@2 {
1935					reg = <2>;
1936					remote-endpoint = <&edp_in_vp1>;
1937				};
1938
1939				vp1_out_hdmi: endpoint@3 {
1940					reg = <3>;
1941					remote-endpoint = <&hdmi_in_vp1>;
1942				};
1943
1944				vp1_out_lvds: endpoint@4 {
1945					reg = <4>;
1946					remote-endpoint = <&lvds_in_vp1>;
1947				};
1948			};
1949
1950			vp2: port@2 {
1951				#address-cells = <1>;
1952				#size-cells = <0>;
1953
1954				reg = <2>;
1955
1956				vp2_out_lvds: endpoint@0 {
1957					reg = <0>;
1958					remote-endpoint = <&lvds_in_vp2>;
1959				};
1960
1961				vp2_out_rgb: endpoint@1 {
1962					reg = <1>;
1963					remote-endpoint = <&rgb_in_vp2>;
1964				};
1965			};
1966		};
1967	};
1968
1969	vop_mmu: iommu@fe043e00 {
1970		compatible = "rockchip,iommu-v2";
1971		reg = <0x0 0xfe043e00 0x0 0x100>, <0x0 0xfe043f00 0x0 0x100>;
1972		interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
1973		interrupt-names = "vop_mmu";
1974		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
1975		clock-names = "aclk", "iface";
1976		#iommu-cells = <0>;
1977		rockchip,disable-device-link-resume;
1978		status = "disabled";
1979	};
1980
1981	dsi0: dsi@fe060000 {
1982		compatible = "rockchip,rk3568-mipi-dsi";
1983		reg = <0x0 0xfe060000 0x0 0x10000>;
1984		interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
1985		clocks = <&cru PCLK_DSITX_0>, <&cru HCLK_VO>;
1986		clock-names = "pclk", "hclk";
1987		resets = <&cru SRST_P_DSITX_0>;
1988		reset-names = "apb";
1989		phys = <&video_phy0>;
1990		phy-names = "dphy";
1991		power-domains = <&power RK3568_PD_VO>;
1992		rockchip,grf = <&grf>;
1993		#address-cells = <1>;
1994		#size-cells = <0>;
1995		status = "disabled";
1996
1997		ports {
1998			#address-cells = <1>;
1999			#size-cells = <0>;
2000
2001			dsi0_in: port@0 {
2002				reg = <0>;
2003				#address-cells = <1>;
2004				#size-cells = <0>;
2005
2006				dsi0_in_vp0: endpoint@0 {
2007					reg = <0>;
2008					remote-endpoint = <&vp0_out_dsi0>;
2009					status = "disabled";
2010				};
2011
2012				dsi0_in_vp1: endpoint@1 {
2013					reg = <1>;
2014					remote-endpoint = <&vp1_out_dsi0>;
2015					status = "disabled";
2016				};
2017			};
2018		};
2019	};
2020
2021	dsi1: dsi@fe070000 {
2022		compatible = "rockchip,rk3568-mipi-dsi";
2023		reg = <0x0 0xfe070000 0x0 0x10000>;
2024		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
2025		clocks = <&cru PCLK_DSITX_1>, <&cru HCLK_VO>;
2026		clock-names = "pclk", "hclk";
2027		resets = <&cru SRST_P_DSITX_1>;
2028		reset-names = "apb";
2029		phys = <&video_phy1>;
2030		phy-names = "dphy";
2031		power-domains = <&power RK3568_PD_VO>;
2032		rockchip,grf = <&grf>;
2033		#address-cells = <1>;
2034		#size-cells = <0>;
2035		status = "disabled";
2036
2037		ports {
2038			#address-cells = <1>;
2039			#size-cells = <0>;
2040
2041			dsi1_in: port@0 {
2042				reg = <0>;
2043				#address-cells = <1>;
2044				#size-cells = <0>;
2045
2046				dsi1_in_vp0: endpoint@0 {
2047					reg = <0>;
2048					remote-endpoint = <&vp0_out_dsi1>;
2049					status = "disabled";
2050				};
2051
2052				dsi1_in_vp1: endpoint@1 {
2053					reg = <1>;
2054					remote-endpoint = <&vp1_out_dsi1>;
2055					status = "disabled";
2056				};
2057			};
2058		};
2059	};
2060
2061	hdmi: hdmi@fe0a0000 {
2062		compatible = "rockchip,rk3568-dw-hdmi";
2063		reg = <0x0 0xfe0a0000 0x0 0x20000>;
2064		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
2065		clocks = <&cru PCLK_HDMI_HOST>,
2066			 <&cru CLK_HDMI_SFR>,
2067			 <&cru CLK_HDMI_CEC>,
2068			 <&pmucru PLL_HPLL>,
2069			 <&cru HCLK_VOP>;
2070		clock-names = "iahb", "isfr", "cec", "ref", "hclk";
2071		power-domains = <&power RK3568_PD_VO>;
2072		reg-io-width = <4>;
2073		rockchip,grf = <&grf>;
2074		#sound-dai-cells = <0>;
2075		pinctrl-names = "default";
2076		pinctrl-0 = <&hdmitx_scl &hdmitx_sda &hdmitxm0_cec>;
2077		status = "disabled";
2078
2079		ports {
2080			#address-cells = <1>;
2081			#size-cells = <0>;
2082
2083			port@0 {
2084				reg = <0>;
2085				#address-cells = <1>;
2086				#size-cells = <0>;
2087
2088				hdmi_in_vp0: endpoint@0 {
2089					reg = <0>;
2090					remote-endpoint = <&vp0_out_hdmi>;
2091					status = "disabled";
2092				};
2093
2094				hdmi_in_vp1: endpoint@1 {
2095					reg = <1>;
2096					remote-endpoint = <&vp1_out_hdmi>;
2097					status = "disabled";
2098				};
2099			};
2100		};
2101	};
2102
2103	edp: edp@fe0c0000 {
2104		compatible = "rockchip,rk3568-edp";
2105		reg = <0x0 0xfe0c0000 0x0 0x10000>;
2106		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
2107		clocks = <&pmucru XIN_OSC0_EDPPHY_G>, <&cru PCLK_EDP_CTRL>,
2108			 <&cru CLK_EDP_200M>, <&cru HCLK_VO>;
2109		clock-names = "dp", "pclk", "spdif", "hclk";
2110		resets = <&cru SRST_EDP_24M>, <&cru SRST_P_EDP_CTRL>;
2111		reset-names = "dp", "apb";
2112		phys = <&edp_phy>;
2113		phy-names = "dp";
2114		power-domains = <&power RK3568_PD_VO>;
2115		status = "disabled";
2116
2117		ports {
2118			#address-cells = <1>;
2119			#size-cells = <0>;
2120
2121			edp_in: port@0 {
2122				reg = <0>;
2123				#address-cells = <1>;
2124				#size-cells = <0>;
2125
2126				edp_in_vp0: endpoint@0 {
2127					reg = <0>;
2128					remote-endpoint = <&vp0_out_edp>;
2129					status = "disabled";
2130				};
2131
2132				edp_in_vp1: endpoint@1 {
2133					reg = <1>;
2134					remote-endpoint = <&vp1_out_edp>;
2135					status = "disabled";
2136				};
2137			};
2138		};
2139	};
2140
2141	nocp_cpu: nocp-cpu@fe102000 {
2142		compatible = "rockchip,rk3568-nocp";
2143		reg = <0x0 0xfe102000 0x0 0x400>;
2144	};
2145
2146	nocp_gpu_vpu_rga_venc: nocp-gpu-vpu-rga-venc@fe102400 {
2147		compatible = "rockchip,rk3568-nocp";
2148		reg = <0x0 0xfe102400 0x0 0x400>;
2149	};
2150
2151	nocp_npu_vdec: nocp-vdec@fe102800 {
2152		compatible = "rockchip,rk3568-nocp";
2153		reg = <0x0 0xfe102800 0x0 0x400>;
2154	};
2155
2156	nocp_vi_usb_peri_pipe: nocp-vi-usb-peri-pipe@fe102c00 {
2157		compatible = "rockchip,rk3568-nocp";
2158		reg = <0x0 0xfe102c00 0x0 0x400>;
2159	};
2160
2161	nocp_vo: nocp-vo@fe103000 {
2162		compatible = "rockchip,rk3568-nocp";
2163		reg = <0x0 0xfe103000 0x0 0x400>;
2164	};
2165
2166	qos_gpu: qos@fe128000 {
2167		compatible = "syscon";
2168		reg = <0x0 0xfe128000 0x0 0x20>;
2169	};
2170
2171	qos_rkvenc_rd_m0: qos@fe138080 {
2172		compatible = "syscon";
2173		reg = <0x0 0xfe138080 0x0 0x20>;
2174	};
2175
2176	qos_rkvenc_rd_m1: qos@fe138100 {
2177		compatible = "syscon";
2178		reg = <0x0 0xfe138100 0x0 0x20>;
2179	};
2180
2181	qos_rkvenc_wr_m0: qos@fe138180 {
2182		compatible = "syscon";
2183		reg = <0x0 0xfe138180 0x0 0x20>;
2184	};
2185
2186	qos_isp: qos@fe148000 {
2187		compatible = "syscon";
2188		reg = <0x0 0xfe148000 0x0 0x20>;
2189	};
2190
2191	qos_vicap0: qos@fe148080 {
2192		compatible = "syscon";
2193		reg = <0x0 0xfe148080 0x0 0x20>;
2194	};
2195
2196	qos_vicap1: qos@fe148100 {
2197		compatible = "syscon";
2198		reg = <0x0 0xfe148100 0x0 0x20>;
2199	};
2200
2201	qos_vpu: qos@fe150000 {
2202		compatible = "syscon";
2203		reg = <0x0 0xfe150000 0x0 0x20>;
2204	};
2205
2206	qos_ebc: qos@fe158000 {
2207		compatible = "syscon";
2208		reg = <0x0 0xfe158000 0x0 0x20>;
2209	};
2210
2211	qos_iep: qos@fe158100 {
2212		compatible = "syscon";
2213		reg = <0x0 0xfe158100 0x0 0x20>;
2214	};
2215
2216	qos_jpeg_dec: qos@fe158180 {
2217		compatible = "syscon";
2218		reg = <0x0 0xfe158180 0x0 0x20>;
2219	};
2220
2221	qos_jpeg_enc: qos@fe158200 {
2222		compatible = "syscon";
2223		reg = <0x0 0xfe158200 0x0 0x20>;
2224	};
2225
2226	qos_rga_rd: qos@fe158280 {
2227		compatible = "syscon";
2228		reg = <0x0 0xfe158280 0x0 0x20>;
2229	};
2230
2231	qos_rga_wr: qos@fe158300 {
2232		compatible = "syscon";
2233		reg = <0x0 0xfe158300 0x0 0x20>;
2234	};
2235
2236	qos_npu: qos@fe180000 {
2237		compatible = "syscon";
2238		reg = <0x0 0xfe180000 0x0 0x20>;
2239	};
2240
2241	qos_pcie2x1: qos@fe190000 {
2242		compatible = "syscon";
2243		reg = <0x0 0xfe190000 0x0 0x20>;
2244	};
2245
2246	qos_pcie3x1: qos@fe190080 {
2247		compatible = "syscon";
2248		reg = <0x0 0xfe190080 0x0 0x20>;
2249	};
2250
2251	qos_pcie3x2: qos@fe190100 {
2252		compatible = "syscon";
2253		reg = <0x0 0xfe190100 0x0 0x20>;
2254	};
2255
2256	qos_sata0: qos@fe190200 {
2257		compatible = "syscon";
2258		reg = <0x0 0xfe190200 0x0 0x20>;
2259	};
2260
2261	qos_sata1: qos@fe190280 {
2262		compatible = "syscon";
2263		reg = <0x0 0xfe190280 0x0 0x20>;
2264	};
2265
2266	qos_sata2: qos@fe190300 {
2267		compatible = "syscon";
2268		reg = <0x0 0xfe190300 0x0 0x20>;
2269	};
2270
2271	qos_usb3_0: qos@fe190380 {
2272		compatible = "syscon";
2273		reg = <0x0 0xfe190380 0x0 0x20>;
2274	};
2275
2276	qos_usb3_1: qos@fe190400 {
2277		compatible = "syscon";
2278		reg = <0x0 0xfe190400 0x0 0x20>;
2279	};
2280
2281	qos_rkvdec: qos@fe198000 {
2282		compatible = "syscon";
2283		reg = <0x0 0xfe198000 0x0 0x20>;
2284	};
2285
2286	qos_hdcp: qos@fe1a8000 {
2287		compatible = "syscon";
2288		reg = <0x0 0xfe1a8000 0x0 0x20>;
2289	};
2290
2291	qos_vop_m0: qos@fe1a8080 {
2292		compatible = "syscon";
2293		reg = <0x0 0xfe1a8080 0x0 0x20>;
2294	};
2295
2296	qos_vop_m1: qos@fe1a8100 {
2297		compatible = "syscon";
2298		reg = <0x0 0xfe1a8100 0x0 0x20>;
2299	};
2300
2301	sdmmc2: dwmmc@fe000000 {
2302		compatible = "rockchip,rk3568-dw-mshc",
2303			     "rockchip,rk3288-dw-mshc";
2304		reg = <0x0 0xfe000000 0x0 0x4000>;
2305		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2306		max-frequency = <150000000>;
2307		clocks = <&cru HCLK_SDMMC2>, <&cru CLK_SDMMC2>,
2308			 <&cru SCLK_SDMMC2_DRV>, <&cru SCLK_SDMMC2_SAMPLE>;
2309		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
2310		fifo-depth = <0x100>;
2311		resets = <&cru SRST_SDMMC2>;
2312		reset-names = "reset";
2313		status = "disabled";
2314	};
2315
2316	dfi: dfi@fe230000 {
2317		reg = <0x00 0xfe230000 0x00 0x400>;
2318		compatible = "rockchip,rk3568-dfi";
2319		rockchip,pmugrf = <&pmugrf>;
2320		status = "disabled";
2321	};
2322
2323	dmc: dmc {
2324		compatible = "rockchip,rk3568-dmc";
2325		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
2326		interrupt-names = "complete";
2327		devfreq-events = <&dfi>, <&nocp_cpu>;
2328		clocks = <&scmi_clk 3>;
2329		clock-names = "dmc_clk";
2330		operating-points-v2 = <&dmc_opp_table>;
2331		vop-bw-dmc-freq = <
2332		/* min_bw(MB/s) max_bw(MB/s) freq(KHz) */
2333			0	286	324000
2334			287	99999	528000
2335		>;
2336		vop-frame-bw-dmc-freq = <
2337		/* min_bw(MB/s) max_bw(MB/s) freq(KHz) */
2338			0	620	324000
2339			621	99999	780000
2340		>;
2341		cpu-bw-dmc-freq = <
2342		/* min_bw(MB/s) max_bw(MB/s) freq(KHz) */
2343			0	350	324000
2344			351	400	528000
2345			401	99999	780000
2346		>;
2347		upthreshold = <40>;
2348		downdifferential = <20>;
2349		system-status-level = <
2350			/*system status         freq level*/
2351			SYS_STATUS_NORMAL       DMC_FREQ_LEVEL_MID_HIGH
2352			SYS_STATUS_REBOOT       DMC_FREQ_LEVEL_HIGH
2353			SYS_STATUS_SUSPEND      DMC_FREQ_LEVEL_LOW
2354			SYS_STATUS_VIDEO_4K     DMC_FREQ_LEVEL_MID_HIGH
2355			SYS_STATUS_VIDEO_4K_10B DMC_FREQ_LEVEL_MID_HIGH
2356			SYS_STATUS_BOOST        DMC_FREQ_LEVEL_HIGH
2357			SYS_STATUS_ISP          DMC_FREQ_LEVEL_HIGH
2358			SYS_STATUS_PERFORMANCE  DMC_FREQ_LEVEL_HIGH
2359			SYS_STATUS_DUALVIEW     DMC_FREQ_LEVEL_HIGH
2360		>;
2361		auto-min-freq = <324000>;
2362		auto-freq-en = <1>;
2363		#cooling-cells = <2>;
2364		status = "disabled";
2365	};
2366
2367	dmc_fsp: dmc-fsp {
2368		compatible = "rockchip,rk3568-dmc-fsp";
2369
2370		debug_print_level = <0>;
2371		ddr3_params = <&ddr3_params>;
2372		ddr4_params = <&ddr4_params>;
2373		lpddr3_params = <&lpddr3_params>;
2374		lpddr4_params = <&lpddr4_params>;
2375		lpddr4x_params = <&lpddr4x_params>;
2376
2377		status = "okay";
2378	};
2379
2380	dmc_opp_table: dmc-opp-table {
2381		compatible = "operating-points-v2";
2382
2383		mbist-vmin = <825000 900000 950000>;
2384		nvmem-cells = <&log_leakage>, <&core_pvtm>, <&mbist_vmin>, <&dmc_opp_info>;
2385		nvmem-cell-names = "leakage", "pvtm", "mbist-vmin", "opp-info";
2386		rockchip,max-volt = <1000000>;
2387		rockchip,temp-hysteresis = <5000>;
2388		rockchip,low-temp = <0>;
2389		rockchip,low-temp-adjust-volt = <
2390			/* MHz    MHz    uV */
2391			   0      1560   75000
2392		>;
2393		rockchip,leakage-voltage-sel = <
2394			1   80    0
2395			81  254   1
2396		>;
2397		rockchip,pvtm-voltage-sel = <
2398			0        84000   0
2399			84001    100000  1
2400		>;
2401		rockchip,pvtm-ch = <0 5>;
2402
2403		opp-1560000000 {
2404			opp-hz = /bits/ 64 <1560000000>;
2405			opp-microvolt = <900000 900000 1000000>;
2406			opp-microvolt-L0 = <900000 900000 1000000>;
2407			opp-microvolt-L1 = <875000 875000 1000000>;
2408		};
2409	};
2410
2411	pcie2x1: pcie@fe260000 {
2412		compatible = "rockchip,rk3568-pcie", "snps,dw-pcie";
2413		#address-cells = <3>;
2414		#size-cells = <2>;
2415		bus-range = <0x0 0xf>;
2416		clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
2417			 <&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
2418			 <&cru CLK_PCIE20_AUX_NDFT>;
2419		clock-names = "aclk_mst", "aclk_slv",
2420			      "aclk_dbi", "pclk", "aux";
2421		device_type = "pci";
2422		interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
2423			     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
2424			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
2425			     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
2426			     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
2427		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
2428		#interrupt-cells = <1>;
2429		interrupt-map-mask = <0 0 0 7>;
2430		interrupt-map = <0 0 0 1 &pcie2x1_intc 0>,
2431				<0 0 0 2 &pcie2x1_intc 1>,
2432				<0 0 0 3 &pcie2x1_intc 2>,
2433				<0 0 0 4 &pcie2x1_intc 3>;
2434		linux,pci-domain = <0>;
2435		num-ib-windows = <6>;
2436		num-viewport = <8>;
2437		num-ob-windows = <2>;
2438		max-link-speed = <2>;
2439		msi-map = <0x0 &its 0x0 0x1000>;
2440		num-lanes = <1>;
2441		phys = <&combphy2_psq PHY_TYPE_PCIE>;
2442		phy-names = "pcie-phy";
2443		power-domains = <&power RK3568_PD_PIPE>;
2444		ranges = <0x00000800 0x0 0xf4000000 0x0 0xf4000000 0x0 0x100000
2445			  0x81000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x100000
2446			  0x82000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x1e00000
2447			  0xc3000000 0x3 0x00000000 0x3 0x00000000 0x0 0x40000000>;
2448		reg = <0x3 0xc0000000 0x0 0x400000>,
2449		      <0x0 0xfe260000 0x0 0x10000>;
2450		reg-names = "pcie-dbi", "pcie-apb";
2451		resets = <&cru SRST_PCIE20_POWERUP>;
2452		reset-names = "pipe";
2453		status = "disabled";
2454
2455		pcie2x1_intc: legacy-interrupt-controller {
2456			interrupt-controller;
2457			#address-cells = <0>;
2458			#interrupt-cells = <1>;
2459			interrupt-parent = <&gic>;
2460			interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
2461		};
2462	};
2463
2464	pcie3x1: pcie@fe270000 {
2465		compatible = "rockchip,rk3568-pcie", "snps,dw-pcie";
2466		#address-cells = <3>;
2467		#size-cells = <2>;
2468		bus-range = <0x10 0x1f>;
2469		clocks = <&cru ACLK_PCIE30X1_MST>, <&cru ACLK_PCIE30X1_SLV>,
2470			 <&cru ACLK_PCIE30X1_DBI>, <&cru PCLK_PCIE30X1>,
2471			 <&cru CLK_PCIE30X1_AUX_NDFT>;
2472		clock-names = "aclk_mst", "aclk_slv",
2473			      "aclk_dbi", "pclk", "aux";
2474		device_type = "pci";
2475		interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
2476			     <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
2477			     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
2478			     <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
2479			     <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
2480		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
2481		#interrupt-cells = <1>;
2482		interrupt-map-mask = <0 0 0 7>;
2483		interrupt-map = <0 0 0 1 &pcie3x1_intc 0>,
2484				<0 0 0 2 &pcie3x1_intc 1>,
2485				<0 0 0 3 &pcie3x1_intc 2>,
2486				<0 0 0 4 &pcie3x1_intc 3>;
2487		linux,pci-domain = <1>;
2488		num-ib-windows = <6>;
2489		num-ob-windows = <2>;
2490		num-viewport = <8>;
2491		max-link-speed = <3>;
2492		msi-map = <0x1000 &its 0x1000 0x1000>;
2493		num-lanes = <1>;
2494		phys = <&pcie30phy>;
2495		phy-names = "pcie-phy";
2496		power-domains = <&power RK3568_PD_PIPE>;
2497		ranges = <0x00000800 0x0 0xf2000000 0x0 0xf2000000 0x0 0x100000
2498			  0x81000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x100000
2499			  0x82000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x1e00000
2500			  0xc3000000 0x3 0x40000000 0x3 0x40000000 0x0 0x40000000>;
2501		reg = <0x3 0xc0400000 0x0 0x400000>,
2502		      <0x0 0xfe270000 0x0 0x10000>;
2503		reg-names = "pcie-dbi", "pcie-apb";
2504		resets = <&cru SRST_PCIE30X1_POWERUP>;
2505		reset-names = "pipe";
2506		/* rockchip,bifurcation; lane1 when using 1+1 */
2507		status = "disabled";
2508
2509		pcie3x1_intc: legacy-interrupt-controller {
2510			interrupt-controller;
2511			#address-cells = <0>;
2512			#interrupt-cells = <1>;
2513			interrupt-parent = <&gic>;
2514			interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
2515		};
2516	};
2517
2518	pcie3x2: pcie@fe280000 {
2519		compatible = "rockchip,rk3568-pcie", "snps,dw-pcie";
2520		#address-cells = <3>;
2521		#size-cells = <2>;
2522		bus-range = <0x20 0x2f>;
2523		clocks = <&cru ACLK_PCIE30X2_MST>, <&cru ACLK_PCIE30X2_SLV>,
2524			 <&cru ACLK_PCIE30X2_DBI>, <&cru PCLK_PCIE30X2>,
2525			 <&cru CLK_PCIE30X2_AUX_NDFT>;
2526		clock-names = "aclk_mst", "aclk_slv",
2527			      "aclk_dbi", "pclk", "aux";
2528		device_type = "pci";
2529		interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
2530			     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
2531			     <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
2532			     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
2533			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
2534		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
2535		#interrupt-cells = <1>;
2536		interrupt-map-mask = <0 0 0 7>;
2537		interrupt-map = <0 0 0 1 &pcie3x2_intc 0>,
2538				<0 0 0 2 &pcie3x2_intc 1>,
2539				<0 0 0 3 &pcie3x2_intc 2>,
2540				<0 0 0 4 &pcie3x2_intc 3>;
2541		linux,pci-domain = <2>;
2542		num-ib-windows = <6>;
2543		num-viewport = <8>;
2544		num-ob-windows = <2>;
2545		max-link-speed = <3>;
2546		msi-map = <0x2000 &its 0x2000 0x1000>;
2547		num-lanes = <2>;
2548		phys = <&pcie30phy>;
2549		phy-names = "pcie-phy";
2550		power-domains = <&power RK3568_PD_PIPE>;
2551		ranges = <0x00000800 0x0 0xf0000000 0x0 0xf0000000 0x0 0x100000
2552			  0x81000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x100000
2553			  0x82000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x1e00000
2554			  0xc3000000 0x3 0x80000000 0x3 0x80000000 0x0 0x40000000>;
2555		reg = <0x3 0xc0800000 0x0 0x400000>,
2556		      <0x0 0xfe280000 0x0 0x10000>;
2557		reg-names = "pcie-dbi", "pcie-apb";
2558		resets = <&cru SRST_PCIE30X2_POWERUP>;
2559		reset-names = "pipe";
2560		/* rockchip,bifurcation; lane0 when using 1+1 */
2561		status = "disabled";
2562
2563		pcie3x2_intc: legacy-interrupt-controller {
2564			interrupt-controller;
2565			#address-cells = <0>;
2566			#interrupt-cells = <1>;
2567			interrupt-parent = <&gic>;
2568			interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>;
2569		};
2570	};
2571
2572	gmac_uio0: uio@fe2a0000 {
2573		compatible = "rockchip,uio-gmac";
2574		reg = <0x0 0xfe2a0000 0x0 0x10000>;
2575		rockchip,ethernet = <&gmac0>;
2576		status = "disabled";
2577	};
2578
2579	sdmmc0: dwmmc@fe2b0000 {
2580		compatible = "rockchip,rk3568-dw-mshc",
2581			     "rockchip,rk3288-dw-mshc";
2582		reg = <0x0 0xfe2b0000 0x0 0x4000>;
2583		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2584		max-frequency = <150000000>;
2585		clocks = <&cru HCLK_SDMMC0>, <&cru CLK_SDMMC0>,
2586			 <&cru SCLK_SDMMC0_DRV>, <&cru SCLK_SDMMC0_SAMPLE>;
2587		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
2588		fifo-depth = <0x100>;
2589		resets = <&cru SRST_SDMMC0>;
2590		reset-names = "reset";
2591		status = "disabled";
2592	};
2593
2594	sdmmc1: dwmmc@fe2c0000 {
2595		compatible = "rockchip,rk3568-dw-mshc",
2596			     "rockchip,rk3288-dw-mshc";
2597		reg = <0x0 0xfe2c0000 0x0 0x4000>;
2598		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
2599		max-frequency = <150000000>;
2600		clocks = <&cru HCLK_SDMMC1>, <&cru CLK_SDMMC1>,
2601			 <&cru SCLK_SDMMC1_DRV>, <&cru SCLK_SDMMC1_SAMPLE>;
2602		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
2603		fifo-depth = <0x100>;
2604		resets = <&cru SRST_SDMMC1>;
2605		reset-names = "reset";
2606		status = "disabled";
2607	};
2608
2609	sfc: spi@fe300000 {
2610		compatible = "rockchip,sfc";
2611		reg = <0x0 0xfe300000 0x0 0x4000>;
2612		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
2613		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
2614		clock-names = "clk_sfc", "hclk_sfc";
2615		assigned-clocks = <&cru SCLK_SFC>;
2616		assigned-clock-rates = <100000000>;
2617		#address-cells = <1>;
2618		#size-cells = <0>;
2619		status = "disabled";
2620	};
2621
2622	sdhci: sdhci@fe310000 {
2623		compatible = "rockchip,rk3568-dwcmshc", "rockchip,dwcmshc-sdhci";
2624		reg = <0x0 0xfe310000 0x0 0x10000>;
2625		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
2626		assigned-clocks = <&cru BCLK_EMMC>, <&cru TCLK_EMMC>,
2627				  <&cru CCLK_EMMC>;
2628		assigned-clock-rates = <200000000>, <24000000>, <200000000>;
2629		clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
2630			 <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
2631			 <&cru TCLK_EMMC>;
2632		clock-names = "core", "bus", "axi", "block", "timer";
2633		resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,
2634			 <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,
2635			 <&cru SRST_T_EMMC>;
2636		reset-names = "core", "bus", "axi", "block", "timer";
2637		status = "disabled";
2638	};
2639
2640	nandc0: nandc@fe330000 {
2641		compatible = "rockchip,rk-nandc-v9";
2642		reg = <0x0 0xfe330000 0x0 0x4000>;
2643		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
2644		nandc_id = <0>;
2645		clocks = <&cru NCLK_NANDC>, <&cru HCLK_NANDC>;
2646		clock-names = "clk_nandc", "hclk_nandc";
2647		status = "disabled";
2648	};
2649
2650	crypto: crypto@fe380000 {
2651		compatible = "rockchip,rk3568-crypto";
2652		reg = <0x0 0xfe380000 0x0 0x4000>;
2653		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
2654		clocks = <&cru ACLK_CRYPTO_NS>, <&cru HCLK_CRYPTO_NS>,
2655			<&cru CLK_CRYPTO_NS_CORE>, <&cru CLK_CRYPTO_NS_PKA>;
2656		clock-names = "aclk", "hclk", "sclk", "apb_pclk";
2657		assigned-clocks = <&cru CLK_CRYPTO_NS_CORE>;
2658		assigned-clock-rates = <200000000>;
2659		resets = <&cru SRST_CRYPTO_NS_CORE>;
2660		reset-names = "crypto-rst";
2661		status = "disabled";
2662	};
2663
2664	rng: rng@fe388000 {
2665		compatible = "rockchip,cryptov2-rng";
2666		reg = <0x0 0xfe388000 0x0 0x2000>;
2667		clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>;
2668		clock-names = "clk_trng", "hclk_trng";
2669		resets = <&cru SRST_TRNG_NS>;
2670		reset-names = "reset";
2671		status = "disabled";
2672	};
2673
2674	otp: otp@fe38c000 {
2675		compatible = "rockchip,rk3568-otp";
2676		reg = <0x0 0xfe38c000 0x0 0x4000>;
2677		#address-cells = <1>;
2678		#size-cells = <1>;
2679		clocks = <&cru CLK_OTPC_NS_USR>, <&cru CLK_OTPC_NS_SBPI>,
2680			 <&cru PCLK_OTPC_NS>, <&cru PCLK_OTPPHY>;
2681		clock-names = "usr", "sbpi", "apb", "phy";
2682		resets = <&cru SRST_OTPPHY>;
2683		reset-names = "otp_phy";
2684
2685		/* Data cells */
2686		cpu_code: cpu-code@2 {
2687			reg = <0x02 0x2>;
2688		};
2689		otp_cpu_version: cpu-version@8 {
2690			reg = <0x08 0x1>;
2691			bits = <3 3>;
2692		};
2693		mbist_vmin: mbist-vmin@9 {
2694			reg = <0x09 0x1>;
2695			bits = <0 4>;
2696		};
2697		otp_id: id@a {
2698			reg = <0x0a 0x10>;
2699		};
2700		cpu_leakage: cpu-leakage@1a {
2701			reg = <0x1a 0x1>;
2702		};
2703		log_leakage: log-leakage@1b {
2704			reg = <0x1b 0x1>;
2705		};
2706		npu_leakage: npu-leakage@1c {
2707			reg = <0x1c 0x1>;
2708		};
2709		gpu_leakage: gpu-leakage@1d {
2710			reg = <0x1d 0x1>;
2711		};
2712		core_pvtm:core-pvtm@2a {
2713			reg = <0x2a 0x2>;
2714		};
2715		cpu_tsadc_trim_l: cpu-tsadc-trim-l@2e {
2716			reg = <0x2e 0x1>;
2717		};
2718		cpu_tsadc_trim_h: cpu-tsadc-trim-h@2f {
2719			reg = <0x2f 0x1>;
2720			bits = <0 4>;
2721		};
2722		gpu_tsadc_trim_l: npu-tsadc-trim-l@30 {
2723			reg = <0x30 0x1>;
2724		};
2725		gpu_tsadc_trim_h: npu-tsadc-trim-h@31 {
2726			reg = <0x31 0x1>;
2727			bits = <0 4>;
2728		};
2729		tsadc_trim_base_frac: tsadc-trim-base-frac@31 {
2730			reg = <0x31 0x1>;
2731			bits = <4 4>;
2732		};
2733		tsadc_trim_base: tsadc-trim-base@32 {
2734			reg = <0x32 0x1>;
2735		};
2736		cpu_opp_info: cpu-opp-info@36 {
2737			reg = <0x36 0x6>;
2738		};
2739		gpu_opp_info: gpu-opp-info@3c {
2740			reg = <0x3c 0x6>;
2741		};
2742		npu_opp_info: npu-opp-info@42 {
2743			reg = <0x42 0x6>;
2744		};
2745		dmc_opp_info: dmc-opp-info@48 {
2746			reg = <0x48 0x6>;
2747		};
2748	};
2749
2750	i2s0_8ch: i2s@fe400000 {
2751		compatible = "rockchip,rk3568-i2s-tdm";
2752		reg = <0x0 0xfe400000 0x0 0x1000>;
2753		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
2754		clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
2755		clock-names = "mclk_tx", "mclk_rx", "hclk";
2756		dmas = <&dmac1 0>;
2757		dma-names = "tx";
2758		resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
2759		reset-names = "tx-m", "rx-m";
2760		rockchip,cru = <&cru>;
2761		rockchip,grf = <&grf>;
2762		rockchip,playback-only;
2763		#sound-dai-cells = <0>;
2764		status = "disabled";
2765	};
2766
2767	i2s1_8ch: i2s@fe410000 {
2768		compatible = "rockchip,rk3568-i2s-tdm";
2769		reg = <0x0 0xfe410000 0x0 0x1000>;
2770		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
2771		clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
2772		clock-names = "mclk_tx", "mclk_rx", "hclk";
2773		dmas = <&dmac1 2>, <&dmac1 3>;
2774		dma-names = "tx", "rx";
2775		resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
2776		reset-names = "tx-m", "rx-m";
2777		rockchip,cru = <&cru>;
2778		rockchip,grf = <&grf>;
2779		#sound-dai-cells = <0>;
2780		pinctrl-names = "default";
2781		pinctrl-0 = <&i2s1m0_sclktx
2782			     &i2s1m0_sclkrx
2783			     &i2s1m0_lrcktx
2784			     &i2s1m0_lrckrx
2785			     &i2s1m0_sdi0
2786			     &i2s1m0_sdi1
2787			     &i2s1m0_sdi2
2788			     &i2s1m0_sdi3
2789			     &i2s1m0_sdo0
2790			     &i2s1m0_sdo1
2791			     &i2s1m0_sdo2
2792			     &i2s1m0_sdo3>;
2793		status = "disabled";
2794	};
2795
2796	i2s2_2ch: i2s@fe420000 {
2797		compatible = "rockchip,rk3568-i2s-tdm";
2798		reg = <0x0 0xfe420000 0x0 0x1000>;
2799		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
2800		clocks = <&cru MCLK_I2S2_2CH>, <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
2801		clock-names = "mclk_tx", "mclk_rx", "hclk";
2802		dmas = <&dmac1 4>, <&dmac1 5>;
2803		dma-names = "tx", "rx";
2804		rockchip,cru = <&cru>;
2805		rockchip,grf = <&grf>;
2806		rockchip,clk-trcm = <1>;
2807		#sound-dai-cells = <0>;
2808		pinctrl-names = "default";
2809		pinctrl-0 = <&i2s2m0_sclktx
2810			     &i2s2m0_lrcktx
2811			     &i2s2m0_sdi
2812			     &i2s2m0_sdo>;
2813		status = "disabled";
2814	};
2815
2816	i2s3_2ch: i2s@fe430000 {
2817		compatible = "rockchip,rk3568-i2s-tdm";
2818		reg = <0x0 0xfe430000 0x0 0x1000>;
2819		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
2820		clocks = <&cru MCLK_I2S3_2CH_TX>, <&cru MCLK_I2S3_2CH_RX>, <&cru HCLK_I2S3_2CH>;
2821		clock-names = "mclk_tx", "mclk_rx", "hclk";
2822		dmas = <&dmac1 6>, <&dmac1 7>;
2823		dma-names = "tx", "rx";
2824		resets = <&cru SRST_M_I2S3_2CH_TX>, <&cru SRST_M_I2S3_2CH_RX>;
2825		reset-names = "tx-m", "rx-m";
2826		rockchip,cru = <&cru>;
2827		rockchip,grf = <&grf>;
2828		rockchip,clk-trcm = <1>;
2829		#sound-dai-cells = <0>;
2830		pinctrl-names = "default";
2831		pinctrl-0 = <&i2s3m0_sclk
2832			     &i2s3m0_lrck
2833			     &i2s3m0_sdi
2834			     &i2s3m0_sdo>;
2835		status = "disabled";
2836	};
2837
2838	pdm: pdm@fe440000 {
2839		compatible = "rockchip,rk3568-pdm", "rockchip,pdm";
2840		reg = <0x0 0xfe440000 0x0 0x1000>;
2841		clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;
2842		clock-names = "pdm_clk", "pdm_hclk";
2843		dmas = <&dmac1 9>;
2844		dma-names = "rx";
2845		pinctrl-names = "default";
2846		pinctrl-0 = <&pdmm0_clk
2847			     &pdmm0_clk1
2848			     &pdmm0_sdi0
2849			     &pdmm0_sdi1
2850			     &pdmm0_sdi2
2851			     &pdmm0_sdi3>;
2852		#sound-dai-cells = <0>;
2853		status = "disabled";
2854	};
2855
2856	vad: vad@fe450000 {
2857		compatible = "rockchip,rk3568-vad";
2858		reg = <0x0 0xfe450000 0x0 0x10000>;
2859		reg-names = "vad";
2860		clocks = <&cru HCLK_VAD>;
2861		clock-names = "hclk";
2862		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
2863		rockchip,audio-src = <0>;
2864		rockchip,det-channel = <0>;
2865		rockchip,mode = <0>;
2866		#sound-dai-cells = <0>;
2867		status = "disabled";
2868	};
2869
2870	spdif_8ch: spdif@fe460000 {
2871		compatible = "rockchip,rk3568-spdif";
2872		reg = <0x0 0xfe460000 0x0 0x1000>;
2873		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
2874		dmas = <&dmac1 1>;
2875		dma-names = "tx";
2876		clock-names = "mclk", "hclk";
2877		clocks = <&cru MCLK_SPDIF_8CH>, <&cru HCLK_SPDIF_8CH>;
2878		#sound-dai-cells = <0>;
2879		pinctrl-names = "default";
2880		pinctrl-0 = <&spdifm0_tx>;
2881		status = "disabled";
2882	};
2883
2884	audpwm: audpwm@fe470000 {
2885		compatible = "rockchip,rk3568-audio-pwm", "rockchip,audio-pwm-v1";
2886		reg = <0x0 0xfe470000 0x0 0x1000>;
2887		clocks = <&cru SCLK_AUDPWM>, <&cru HCLK_AUDPWM>;
2888		clock-names = "clk", "hclk";
2889		dmas = <&dmac1 8>;
2890		dma-names = "tx";
2891		#sound-dai-cells = <0>;
2892		rockchip,sample-width-bits = <11>;
2893		rockchip,interpolat-points = <1>;
2894		status = "disabled";
2895	};
2896
2897	dig_acodec: codec-digital@fe478000 {
2898		compatible = "rockchip,rk3568-codec-digital", "rockchip,codec-digital-v1";
2899		reg = <0x0 0xfe478000 0x0 0x1000>;
2900		clocks = <&cru CLK_ACDCDIG_ADC>, <&cru CLK_ACDCDIG_DAC>,
2901			 <&cru CLK_ACDCDIG_I2C>, <&cru HCLK_ACDCDIG>;
2902		clock-names = "adc", "dac", "i2c", "pclk";
2903		pinctrl-names = "default";
2904		pinctrl-0 = <&acodec_pins>;
2905		resets = <&cru SRST_ACDCDIG>;
2906		reset-names = "reset" ;
2907		rockchip,grf = <&grf>;
2908		#sound-dai-cells = <0>;
2909		status = "disabled";
2910	};
2911
2912	dmac0: dmac@fe530000 {
2913		compatible = "arm,pl330", "arm,primecell";
2914		reg = <0x0 0xfe530000 0x0 0x4000>;
2915		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
2916			     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
2917		clocks = <&cru ACLK_BUS>;
2918		clock-names = "apb_pclk";
2919		#dma-cells = <1>;
2920		arm,pl330-periph-burst;
2921	};
2922
2923	dmac1: dmac@fe550000 {
2924		compatible = "arm,pl330", "arm,primecell";
2925		reg = <0x0 0xfe550000 0x0 0x4000>;
2926		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
2927			     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
2928		clocks = <&cru ACLK_BUS>;
2929		clock-names = "apb_pclk";
2930		#dma-cells = <1>;
2931		arm,pl330-periph-burst;
2932	};
2933
2934	scr: rkscr@fe560000 {
2935		compatible = "rockchip-scr";
2936		reg = <0x0 0xfe560000 0x0 0x10000>;
2937		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2938		pinctrl-names = "default";
2939		pinctrl-0 = <&scr_pins>;
2940		clocks = <&cru PCLK_SCR>;
2941		clock-names = "g_pclk_sim_card";
2942		status = "disabled";
2943	};
2944
2945	can0: can@fe570000 {
2946		compatible = "forlinx,rk3568-can-2.0";				// Can also use rockchip,rk3568-can-2.0 with rockchip_canfd.o
2947		reg = <0x0 0xfe570000 0x0 0x1000>;					// Default uses forlinx,rk3568-can-2.0 with forlinx_canfd.lo
2948		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;		// Forlinx optimized the problem of ID and data mismatch
2949		clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;			// by manic
2950		clock-names = "baudclk", "apb_pclk";
2951		resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
2952		reset-names = "can", "can-apb";
2953		tx-fifo-depth = <1>;
2954		rx-fifo-depth = <6>;
2955		rockchip,tx-invalid-info = <0x40 0x0 0x0 0x0>;
2956		status = "disabled";
2957	};
2958
2959	can1: can@fe580000 {
2960		compatible = "forlinx,rk3568-can-2.0";
2961		reg = <0x0 0xfe580000 0x0 0x1000>;
2962		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
2963		clocks = <&cru CLK_CAN1>, <&cru PCLK_CAN1>;
2964		clock-names = "baudclk", "apb_pclk";
2965		resets = <&cru SRST_CAN1>, <&cru SRST_P_CAN1>;
2966		reset-names = "can", "can-apb";
2967		tx-fifo-depth = <1>;
2968		rx-fifo-depth = <6>;
2969		rockchip,tx-invalid-info = <0x40 0x0 0x0 0x0>;
2970		status = "disabled";
2971	};
2972
2973	can2: can@fe590000 {
2974		compatible = "forlinx,rk3568-can-2.0";
2975		reg = <0x0 0xfe590000 0x0 0x1000>;
2976		interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
2977		clocks = <&cru CLK_CAN2>, <&cru PCLK_CAN2>;
2978		clock-names = "baudclk", "apb_pclk";
2979		resets = <&cru SRST_CAN2>, <&cru SRST_P_CAN2>;
2980		reset-names = "can", "can-apb";
2981		tx-fifo-depth = <1>;
2982		rx-fifo-depth = <6>;
2983		rockchip,tx-invalid-info = <0x40 0x0 0x0 0x0>;
2984		status = "disabled";
2985	};
2986
2987	i2c1: i2c@fe5a0000 {
2988		compatible = "rockchip,rk3399-i2c";
2989		reg = <0x0 0xfe5a0000 0x0 0x1000>;
2990		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
2991		clock-names = "i2c", "pclk";
2992		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
2993		pinctrl-names = "default";
2994		pinctrl-0 = <&i2c1_xfer>;
2995		#address-cells = <1>;
2996		#size-cells = <0>;
2997		status = "disabled";
2998	};
2999
3000	i2c2: i2c@fe5b0000 {
3001		compatible = "rockchip,rk3399-i2c";
3002		reg = <0x0 0xfe5b0000 0x0 0x1000>;
3003		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
3004		clock-names = "i2c", "pclk";
3005		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
3006		pinctrl-names = "default";
3007		pinctrl-0 = <&i2c2m0_xfer>;
3008		#address-cells = <1>;
3009		#size-cells = <0>;
3010		status = "disabled";
3011	};
3012
3013	i2c3: i2c@fe5c0000 {
3014		compatible = "rockchip,rk3399-i2c";
3015		reg = <0x0 0xfe5c0000 0x0 0x1000>;
3016		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
3017		clock-names = "i2c", "pclk";
3018		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
3019		pinctrl-names = "default";
3020		pinctrl-0 = <&i2c3m0_xfer>;
3021		#address-cells = <1>;
3022		#size-cells = <0>;
3023		status = "disabled";
3024	};
3025
3026	i2c4: i2c@fe5d0000 {
3027		compatible = "rockchip,rk3399-i2c";
3028		reg = <0x0 0xfe5d0000 0x0 0x1000>;
3029		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
3030		clock-names = "i2c", "pclk";
3031		interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
3032		pinctrl-names = "default";
3033		pinctrl-0 = <&i2c4m0_xfer>;
3034		#address-cells = <1>;
3035		#size-cells = <0>;
3036		status = "disabled";
3037	};
3038
3039	i2c5: i2c@fe5e0000 {
3040		compatible = "rockchip,rk3399-i2c";
3041		reg = <0x0 0xfe5e0000 0x0 0x1000>;
3042		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
3043		clock-names = "i2c", "pclk";
3044		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
3045		pinctrl-names = "default";
3046		pinctrl-0 = <&i2c5m0_xfer>;
3047		#address-cells = <1>;
3048		#size-cells = <0>;
3049		status = "disabled";
3050	};
3051
3052	rktimer: timer@fe5f0000 {
3053		compatible = "rockchip,rk3568-timer", "rockchip,rk3288-timer";
3054		reg = <0x0 0xfe5f0000 0x0 0x1000>;
3055		interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
3056		clocks = <&cru PCLK_TIMER>, <&cru CLK_TIMER0>;
3057		clock-names = "pclk", "timer";
3058	};
3059
3060	wdt: watchdog@fe600000 {
3061		compatible = "snps,dw-wdt";
3062		reg = <0x0 0xfe600000 0x0 0x100>;
3063		clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
3064		clock-names = "tclk", "pclk";
3065		interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
3066		status = "okay";
3067	};
3068
3069	spi0: spi@fe610000 {
3070		compatible = "rockchip,rk3066-spi";
3071		reg = <0x0 0xfe610000 0x0 0x1000>;
3072		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
3073		#address-cells = <1>;
3074		#size-cells = <0>;
3075		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
3076		clock-names = "spiclk", "apb_pclk";
3077		dmas = <&dmac0 20>, <&dmac0 21>;
3078		dma-names = "tx", "rx";
3079		pinctrl-names = "default", "high_speed";
3080		pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
3081		pinctrl-1 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins_hs>;
3082		num-cs = <2>;
3083		status = "disabled";
3084	};
3085
3086	spi1: spi@fe620000 {
3087		compatible = "rockchip,rk3066-spi";
3088		reg = <0x0 0xfe620000 0x0 0x1000>;
3089		interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
3090		#address-cells = <1>;
3091		#size-cells = <0>;
3092		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
3093		clock-names = "spiclk", "apb_pclk";
3094		dmas = <&dmac0 22>, <&dmac0 23>;
3095		dma-names = "tx", "rx";
3096		pinctrl-names = "default", "high_speed";
3097		pinctrl-0 = <&spi1m0_cs0 &spi1m0_cs1 &spi1m0_pins>;
3098		pinctrl-1 = <&spi1m0_cs0 &spi1m0_cs1 &spi1m0_pins_hs>;
3099		num-cs = <2>;
3100		status = "disabled";
3101	};
3102
3103	spi2: spi@fe630000 {
3104		compatible = "rockchip,rk3066-spi";
3105		reg = <0x0 0xfe630000 0x0 0x1000>;
3106		interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
3107		#address-cells = <1>;
3108		#size-cells = <0>;
3109		clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
3110		clock-names = "spiclk", "apb_pclk";
3111		dmas = <&dmac0 24>, <&dmac0 25>;
3112		dma-names = "tx", "rx";
3113		pinctrl-names = "default", "high_speed";
3114		pinctrl-0 = <&spi2m0_cs0 &spi2m0_cs1 &spi2m0_pins>;
3115		pinctrl-1 = <&spi2m0_cs0 &spi2m0_cs1 &spi2m0_pins_hs>;
3116		num-cs = <2>;
3117		status = "disabled";
3118	};
3119
3120	spi3: spi@fe640000 {
3121		compatible = "rockchip,rk3066-spi";
3122		reg = <0x0 0xfe640000 0x0 0x1000>;
3123		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
3124		#address-cells = <1>;
3125		#size-cells = <0>;
3126		clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
3127		clock-names = "spiclk", "apb_pclk";
3128		dmas = <&dmac0 26>, <&dmac0 27>;
3129		dma-names = "tx", "rx";
3130		pinctrl-names = "default", "high_speed";
3131		pinctrl-0 = <&spi3m0_cs0 &spi3m0_cs1 &spi3m0_pins>;
3132		pinctrl-1 = <&spi3m0_cs0 &spi3m0_cs1 &spi3m0_pins_hs>;
3133		num-cs = <2>;
3134		status = "disabled";
3135	};
3136
3137	uart1: serial@fe650000 {
3138		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3139		reg = <0x0 0xfe650000 0x0 0x100>;
3140		interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
3141		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
3142		clock-names = "baudclk", "apb_pclk";
3143		reg-shift = <2>;
3144		reg-io-width = <4>;
3145		dmas = <&dmac0 2>, <&dmac0 3>;
3146		pinctrl-names = "default";
3147		pinctrl-0 = <&uart1m0_xfer>;
3148		status = "disabled";
3149	};
3150
3151	uart2: serial@fe660000 {
3152		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3153		reg = <0x0 0xfe660000 0x0 0x100>;
3154		interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
3155		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
3156		clock-names = "baudclk", "apb_pclk";
3157		reg-shift = <2>;
3158		reg-io-width = <4>;
3159		dmas = <&dmac0 4>, <&dmac0 5>;
3160		pinctrl-names = "default";
3161		pinctrl-0 = <&uart2m0_xfer>;
3162		status = "disabled";
3163	};
3164
3165	uart3: serial@fe670000 {
3166		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3167		reg = <0x0 0xfe670000 0x0 0x100>;
3168		interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
3169		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
3170		clock-names = "baudclk", "apb_pclk";
3171		reg-shift = <2>;
3172		reg-io-width = <4>;
3173		dmas = <&dmac0 6>, <&dmac0 7>;
3174		pinctrl-names = "default";
3175		pinctrl-0 = <&uart3m0_xfer>;
3176		status = "disabled";
3177	};
3178
3179	uart4: serial@fe680000 {
3180		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3181		reg = <0x0 0xfe680000 0x0 0x100>;
3182		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
3183		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
3184		clock-names = "baudclk", "apb_pclk";
3185		reg-shift = <2>;
3186		reg-io-width = <4>;
3187		dmas = <&dmac0 8>, <&dmac0 9>;
3188		pinctrl-names = "default";
3189		pinctrl-0 = <&uart4m0_xfer>;
3190		status = "disabled";
3191	};
3192
3193	uart5: serial@fe690000 {
3194		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3195		reg = <0x0 0xfe690000 0x0 0x100>;
3196		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
3197		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
3198		clock-names = "baudclk", "apb_pclk";
3199		reg-shift = <2>;
3200		reg-io-width = <4>;
3201		dmas = <&dmac0 10>, <&dmac0 11>;
3202		pinctrl-names = "default";
3203		pinctrl-0 = <&uart5m0_xfer>;
3204		status = "disabled";
3205	};
3206
3207	uart6: serial@fe6a0000 {
3208		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3209		reg = <0x0 0xfe6a0000 0x0 0x100>;
3210		interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
3211		clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
3212		clock-names = "baudclk", "apb_pclk";
3213		reg-shift = <2>;
3214		reg-io-width = <4>;
3215		dmas = <&dmac0 12>, <&dmac0 13>;
3216		pinctrl-names = "default";
3217		pinctrl-0 = <&uart6m0_xfer>;
3218		status = "disabled";
3219	};
3220
3221	uart7: serial@fe6b0000 {
3222		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3223		reg = <0x0 0xfe6b0000 0x0 0x100>;
3224		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
3225		clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
3226		clock-names = "baudclk", "apb_pclk";
3227		reg-shift = <2>;
3228		reg-io-width = <4>;
3229		dmas = <&dmac0 14>, <&dmac0 15>;
3230		pinctrl-names = "default";
3231		pinctrl-0 = <&uart7m0_xfer>;
3232		status = "disabled";
3233	};
3234
3235	uart8: serial@fe6c0000 {
3236		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3237		reg = <0x0 0xfe6c0000 0x0 0x100>;
3238		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
3239		clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
3240		clock-names = "baudclk", "apb_pclk";
3241		reg-shift = <2>;
3242		reg-io-width = <4>;
3243		dmas = <&dmac0 16>, <&dmac0 17>;
3244		pinctrl-names = "default";
3245		pinctrl-0 = <&uart8m0_xfer>;
3246		status = "disabled";
3247	};
3248
3249	uart9: serial@fe6d0000 {
3250		compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
3251		reg = <0x0 0xfe6d0000 0x0 0x100>;
3252		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
3253		clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
3254		clock-names = "baudclk", "apb_pclk";
3255		reg-shift = <2>;
3256		reg-io-width = <4>;
3257		dmas = <&dmac0 18>, <&dmac0 19>;
3258		pinctrl-names = "default";
3259		pinctrl-0 = <&uart9m0_xfer>;
3260		status = "disabled";
3261	};
3262
3263	pwm4: pwm@fe6e0000 {
3264		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3265		reg = <0x0 0xfe6e0000 0x0 0x10>;
3266		#pwm-cells = <3>;
3267		pinctrl-names = "active";
3268		pinctrl-0 = <&pwm4_pins>;
3269		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
3270		clock-names = "pwm", "pclk";
3271		status = "disabled";
3272	};
3273
3274	pwm5: pwm@fe6e0010 {
3275		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3276		reg = <0x0 0xfe6e0010 0x0 0x10>;
3277		#pwm-cells = <3>;
3278		pinctrl-names = "active";
3279		pinctrl-0 = <&pwm5_pins>;
3280		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
3281		clock-names = "pwm", "pclk";
3282		status = "disabled";
3283	};
3284
3285	pwm6: pwm@fe6e0020 {
3286		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3287		reg = <0x0 0xfe6e0020 0x0 0x10>;
3288		#pwm-cells = <3>;
3289		pinctrl-names = "active";
3290		pinctrl-0 = <&pwm6_pins>;
3291		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
3292		clock-names = "pwm", "pclk";
3293		status = "disabled";
3294	};
3295
3296	pwm7: pwm@fe6e0030 {
3297		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3298		reg = <0x0 0xfe6e0030 0x0 0x10>;
3299		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
3300			     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
3301		#pwm-cells = <3>;
3302		pinctrl-names = "active";
3303		pinctrl-0 = <&pwm7_pins>;
3304		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
3305		clock-names = "pwm", "pclk";
3306		status = "disabled";
3307	};
3308
3309	pwm8: pwm@fe6f0000 {
3310		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3311		reg = <0x0 0xfe6f0000 0x0 0x10>;
3312		#pwm-cells = <3>;
3313		pinctrl-names = "active";
3314		pinctrl-0 = <&pwm8m0_pins>;
3315		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
3316		clock-names = "pwm", "pclk";
3317		status = "disabled";
3318	};
3319
3320	pwm9: pwm@fe6f0010 {
3321		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3322		reg = <0x0 0xfe6f0010 0x0 0x10>;
3323		#pwm-cells = <3>;
3324		pinctrl-names = "active";
3325		pinctrl-0 = <&pwm9m0_pins>;
3326		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
3327		clock-names = "pwm", "pclk";
3328		status = "disabled";
3329	};
3330
3331	pwm10: pwm@fe6f0020 {
3332		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3333		reg = <0x0 0xfe6f0020 0x0 0x10>;
3334		#pwm-cells = <3>;
3335		pinctrl-names = "active";
3336		pinctrl-0 = <&pwm10m0_pins>;
3337		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
3338		clock-names = "pwm", "pclk";
3339		status = "disabled";
3340	};
3341
3342	pwm11: pwm@fe6f0030 {
3343		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3344		reg = <0x0 0xfe6f0030 0x0 0x10>;
3345		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
3346			     <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
3347		#pwm-cells = <3>;
3348		pinctrl-names = "active";
3349		pinctrl-0 = <&pwm11m0_pins>;
3350		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
3351		clock-names = "pwm", "pclk";
3352		status = "disabled";
3353	};
3354
3355	pwm12: pwm@fe700000 {
3356		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3357		reg = <0x0 0xfe700000 0x0 0x10>;
3358		#pwm-cells = <3>;
3359		pinctrl-names = "active";
3360		pinctrl-0 = <&pwm12m0_pins>;
3361		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
3362		clock-names = "pwm", "pclk";
3363		status = "disabled";
3364	};
3365
3366	pwm13: pwm@fe700010 {
3367		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3368		reg = <0x0 0xfe700010 0x0 0x10>;
3369		#pwm-cells = <3>;
3370		pinctrl-names = "active";
3371		pinctrl-0 = <&pwm13m0_pins>;
3372		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
3373		clock-names = "pwm", "pclk";
3374		status = "disabled";
3375	};
3376
3377	pwm14: pwm@fe700020 {
3378		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3379		reg = <0x0 0xfe700020 0x0 0x10>;
3380		#pwm-cells = <3>;
3381		pinctrl-names = "active";
3382		pinctrl-0 = <&pwm14m0_pins>;
3383		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
3384		clock-names = "pwm", "pclk";
3385		status = "disabled";
3386	};
3387
3388	pwm15: pwm@fe700030 {
3389		compatible = "rockchip,rk3568-pwm", "rockchip,rk3328-pwm";
3390		reg = <0x0 0xfe700030 0x0 0x10>;
3391		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
3392			     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
3393		#pwm-cells = <3>;
3394		pinctrl-names = "active";
3395		pinctrl-0 = <&pwm15m0_pins>;
3396		clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
3397		clock-names = "pwm", "pclk";
3398		status = "disabled";
3399	};
3400
3401	tsadc: tsadc@fe710000 {
3402		compatible = "rockchip,rk3568-tsadc";
3403		reg = <0x0 0xfe710000 0x0 0x100>;
3404		interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
3405		rockchip,grf = <&grf>;
3406		clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
3407		clock-names = "tsadc", "apb_pclk";
3408		assigned-clocks = <&cru CLK_TSADC_TSEN>, <&cru CLK_TSADC>;
3409		assigned-clock-rates = <17000000>, <700000>;
3410		resets = <&cru SRST_TSADC>, <&cru SRST_P_TSADC>,
3411			 <&cru SRST_TSADCPHY>;
3412		reset-names = "tsadc", "tsadc-apb", "tsadc-phy";
3413		#thermal-sensor-cells = <1>;
3414		nvmem-cells = <&tsadc_trim_base>, <&tsadc_trim_base_frac>;
3415		nvmem-cell-names = "trim_base", "trim_base_frac";
3416		rockchip,hw-tshut-temp = <125000>;
3417		rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
3418		rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
3419		pinctrl-names = "gpio", "otpout";
3420		pinctrl-0 = <&tsadc_gpio_func>;
3421		pinctrl-1 = <&tsadc_shutorg>;
3422		#address-cells = <1>;
3423		#size-cells = <0>;
3424		status = "disabled";
3425
3426		tsadc@0 {
3427			reg = <0>;
3428			nvmem-cells = <&cpu_tsadc_trim_l>, <&cpu_tsadc_trim_h>;
3429			nvmem-cell-names = "trim_l", "trim_h";
3430		};
3431		tsadc@1 {
3432			reg = <1>;
3433			nvmem-cells = <&gpu_tsadc_trim_l>, <&gpu_tsadc_trim_h>;
3434			nvmem-cell-names = "trim_l", "trim_h";
3435		};
3436	};
3437
3438	saradc: saradc@fe720000 {
3439		compatible = "rockchip,rk3568-saradc", "rockchip,rk3399-saradc";
3440		reg = <0x0 0xfe720000 0x0 0x100>;
3441		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
3442		#io-channel-cells = <1>;
3443		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
3444		clock-names = "saradc", "apb_pclk";
3445		resets = <&cru SRST_P_SARADC>;
3446		reset-names = "saradc-apb";
3447		status = "disabled";
3448	};
3449
3450	mailbox: mailbox@fe780000 {
3451		compatible = "rockchip,rk3568-mailbox",
3452			     "rockchip,rk3368-mailbox";
3453		reg = <0x0 0xfe780000 0x0 0x1000>;
3454		interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
3455			     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
3456			     <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
3457			     <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
3458		clocks = <&cru PCLK_MAILBOX>;
3459		clock-names = "pclk_mailbox";
3460		#mbox-cells = <1>;
3461		status = "disabled";
3462	};
3463
3464	combphy0_us: phy@fe820000 {
3465		compatible = "rockchip,rk3568-naneng-combphy";
3466		reg = <0x0 0xfe820000 0x0 0x100>;
3467		#phy-cells = <1>;
3468		clocks = <&pmucru CLK_PCIEPHY0_REF>, <&cru PCLK_PIPEPHY0>,
3469			 <&cru PCLK_PIPE>;
3470		clock-names = "refclk", "apbclk", "pipe_clk";
3471		assigned-clocks = <&pmucru CLK_PCIEPHY0_REF>;
3472		assigned-clock-rates = <100000000>;
3473		resets = <&cru SRST_P_PIPEPHY0>, <&cru SRST_PIPEPHY0>;
3474		reset-names = "combphy-apb", "combphy";
3475		rockchip,pipe-grf = <&pipegrf>;
3476		rockchip,pipe-phy-grf = <&pipe_phy_grf0>;
3477		status = "disabled";
3478	};
3479
3480	combphy1_usq: phy@fe830000 {
3481		compatible = "rockchip,rk3568-naneng-combphy";
3482		reg = <0x0 0xfe830000 0x0 0x100>;
3483		#phy-cells = <1>;
3484		clocks = <&pmucru CLK_PCIEPHY1_REF>, <&cru PCLK_PIPEPHY1>,
3485			 <&cru PCLK_PIPE>;
3486		clock-names = "refclk", "apbclk", "pipe_clk";
3487		assigned-clocks = <&pmucru CLK_PCIEPHY1_REF>;
3488		assigned-clock-rates = <100000000>;
3489		resets = <&cru SRST_P_PIPEPHY1>, <&cru SRST_PIPEPHY1>;
3490		reset-names = "combphy-apb", "combphy";
3491		rockchip,pipe-grf = <&pipegrf>;
3492		rockchip,pipe-phy-grf = <&pipe_phy_grf1>;
3493		status = "disabled";
3494	};
3495
3496	combphy2_psq: phy@fe840000 {
3497		compatible = "rockchip,rk3568-naneng-combphy";
3498		reg = <0x0 0xfe840000 0x0 0x100>;
3499		#phy-cells = <1>;
3500		clocks = <&pmucru CLK_PCIEPHY2_REF>, <&cru PCLK_PIPEPHY2>,
3501			 <&cru PCLK_PIPE>;
3502		clock-names = "refclk", "apbclk", "pipe_clk";
3503		assigned-clocks = <&pmucru CLK_PCIEPHY2_REF>;
3504		assigned-clock-rates = <100000000>;
3505		resets = <&cru SRST_P_PIPEPHY2>, <&cru SRST_PIPEPHY2>;
3506		reset-names = "combphy-apb", "combphy";
3507		rockchip,pipe-grf = <&pipegrf>;
3508		rockchip,pipe-phy-grf = <&pipe_phy_grf2>;
3509		status = "disabled";
3510	};
3511
3512	video_phy0: phy@fe850000 {
3513		compatible = "rockchip,rk3568-dsi-dphy", "rockchip,rk3568-video-phy";
3514		reg = <0x0 0xfe850000  0x0 0x10000>,
3515		      <0x0 0xfe060000 0x0 0x10000>;
3516		reg-names = "phy", "host";
3517		clocks = <&pmucru CLK_MIPIDSIPHY0_REF>,
3518			 <&cru PCLK_MIPIDSIPHY0>, <&cru PCLK_DSITX_0>;
3519		clock-names = "ref", "pclk", "pclk_host";
3520		#clock-cells = <0>;
3521		resets = <&cru SRST_P_MIPIDSIPHY0>;
3522		reset-names = "apb";
3523		power-domains = <&power RK3568_PD_VO>;
3524		#phy-cells = <0>;
3525		status = "disabled";
3526	};
3527
3528	video_phy1: phy@fe860000 {
3529		compatible = "rockchip,rk3568-dsi-dphy", "rockchip,rk3568-video-phy";
3530		reg = <0x0 0xfe860000  0x0 0x10000>,
3531		      <0x0 0xfe070000 0x0 0x10000>;
3532		reg-names = "phy", "host";
3533		clocks = <&pmucru CLK_MIPIDSIPHY1_REF>,
3534			 <&cru PCLK_MIPIDSIPHY1>, <&cru PCLK_DSITX_1>;
3535		clock-names = "ref", "pclk", "pclk_host";
3536		#clock-cells = <0>;
3537		resets = <&cru SRST_P_MIPIDSIPHY1>;
3538		reset-names = "apb";
3539		power-domains = <&power RK3568_PD_VO>;
3540		#phy-cells = <0>;
3541		status = "disabled";
3542	};
3543
3544	csi2_dphy_hw: csi2-dphy-hw@fe870000 {
3545		compatible = "rockchip,rk3568-csi2-dphy-hw";
3546		reg = <0x0 0xfe870000 0x0 0x1000>;
3547		clocks = <&cru PCLK_MIPICSIPHY>;
3548		clock-names = "pclk";
3549		rockchip,grf = <&grf>;
3550		status = "disabled";
3551	};
3552
3553	/*
3554	 * csi2_dphy0: used for csi2 dphy full mode,
3555		       is mutually exclusive with
3556		       csi2_dphy1 and csi2_dphy2
3557	 * csi2_dphy1: used for csi2 dphy split mode,
3558		       physical lanes use lane0 and lane1,
3559		       can be used with csi2_dphy2  parallel
3560	 * csi2_dphy2: used for csi2 dphy split mode,
3561		       physical lanes use lane2 and lane3,
3562		       can be used with csi2_dphy1  parallel
3563	 */
3564	csi2_dphy0: csi2-dphy0 {
3565		compatible = "rockchip,rk3568-csi2-dphy";
3566		rockchip,hw = <&csi2_dphy_hw>;
3567		status = "disabled";
3568	};
3569
3570	csi2_dphy1: csi2-dphy1 {
3571		compatible = "rockchip,rk3568-csi2-dphy";
3572		rockchip,hw = <&csi2_dphy_hw>;
3573		status = "disabled";
3574	};
3575
3576	csi2_dphy2: csi2-dphy2 {
3577		compatible = "rockchip,rk3568-csi2-dphy";
3578		rockchip,hw = <&csi2_dphy_hw>;
3579		status = "disabled";
3580	};
3581
3582	usb2phy0: usb2-phy@fe8a0000 {
3583		compatible = "rockchip,rk3568-usb2phy";
3584		reg = <0x0 0xfe8a0000 0x0 0x10000>;
3585		interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
3586		clocks = <&pmucru CLK_USBPHY0_REF>;
3587		clock-names = "phyclk";
3588		#clock-cells = <0>;
3589		assigned-clocks = <&cru USB480M>;
3590		assigned-clock-parents = <&usb2phy0>;
3591		clock-output-names = "usb480m_phy";
3592		rockchip,usbgrf = <&usb2phy0_grf>;
3593		status = "disabled";
3594
3595		u2phy0_host: host-port {
3596			#phy-cells = <0>;
3597			status = "disabled";
3598		};
3599
3600		u2phy0_otg: otg-port {
3601			#phy-cells = <0>;
3602			status = "disabled";
3603		};
3604	};
3605
3606	usb2phy1: usb2-phy@fe8b0000 {
3607		compatible = "rockchip,rk3568-usb2phy";
3608		reg = <0x0 0xfe8b0000 0x0 0x10000>;
3609		interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
3610		clocks = <&pmucru CLK_USBPHY1_REF>;
3611		clock-names = "phyclk";
3612		#clock-cells = <0>;
3613		rockchip,usbgrf = <&usb2phy1_grf>;
3614		status = "disabled";
3615
3616		u2phy1_host: host-port {
3617			#phy-cells = <0>;
3618			status = "disabled";
3619		};
3620
3621		u2phy1_otg: otg-port {
3622			#phy-cells = <0>;
3623			status = "disabled";
3624		};
3625	};
3626
3627	pcie30phy: phy@fe8c0000 {
3628		compatible = "rockchip,rk3568-pcie3-phy";
3629		reg = <0x0 0xfe8c0000 0x0 0x20000>;
3630		#phy-cells = <0>;
3631		clocks = <&pmucru CLK_PCIE30PHY_REF_M>, <&pmucru CLK_PCIE30PHY_REF_N>,
3632			 <&cru PCLK_PCIE30PHY>;
3633		clock-names = "refclk_m", "refclk_n", "pclk";
3634		resets = <&cru SRST_PCIE30PHY>;
3635		reset-names = "phy";
3636		rockchip,phy-grf = <&pcie30_phy_grf>;
3637		status = "disabled";
3638	};
3639
3640	pinctrl: pinctrl {
3641		compatible = "rockchip,rk3568-pinctrl";
3642		rockchip,grf = <&grf>;
3643		rockchip,pmu = <&pmugrf>;
3644		#address-cells = <2>;
3645		#size-cells = <2>;
3646		ranges;
3647
3648		gpio0: gpio0@fdd60000 {
3649			compatible = "rockchip,gpio-bank";
3650			reg = <0x0 0xfdd60000 0x0 0x100>;
3651			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
3652			clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
3653
3654			gpio-controller;
3655			#gpio-cells = <2>;
3656			interrupt-controller;
3657			#interrupt-cells = <2>;
3658		};
3659
3660		gpio1: gpio1@fe740000 {
3661			compatible = "rockchip,gpio-bank";
3662			reg = <0x0 0xfe740000 0x0 0x100>;
3663			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
3664			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
3665
3666			gpio-controller;
3667			#gpio-cells = <2>;
3668			interrupt-controller;
3669			#interrupt-cells = <2>;
3670		};
3671
3672		gpio2: gpio2@fe750000 {
3673			compatible = "rockchip,gpio-bank";
3674			reg = <0x0 0xfe750000 0x0 0x100>;
3675			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
3676			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
3677
3678			gpio-controller;
3679			#gpio-cells = <2>;
3680			interrupt-controller;
3681			#interrupt-cells = <2>;
3682		};
3683
3684		gpio3: gpio3@fe760000 {
3685			compatible = "rockchip,gpio-bank";
3686			reg = <0x0 0xfe760000 0x0 0x100>;
3687			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
3688			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
3689
3690			gpio-controller;
3691			#gpio-cells = <2>;
3692			interrupt-controller;
3693			#interrupt-cells = <2>;
3694		};
3695
3696		gpio4: gpio4@fe770000 {
3697			compatible = "rockchip,gpio-bank";
3698			reg = <0x0 0xfe770000 0x0 0x100>;
3699			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
3700			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
3701
3702			gpio-controller;
3703			#gpio-cells = <2>;
3704			interrupt-controller;
3705			#interrupt-cells = <2>;
3706		};
3707	};
3708};
3709
3710#include "rk3568-pinctrl.dtsi"
3711