xref: /rk3399_rockchip-uboot/arch/arm/dts/rv1126.dtsi (revision a1daefc8e61099cd3e2c89eba707e5fa507c749b)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
4 */
5
6#include <dt-bindings/clock/rv1126-cru.h>
7#include <dt-bindings/power/rv1126-power.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/soc/rockchip-system-status.h>
13#include "rv1126-dram-default-timing.dtsi"
14
15/ {
16	#address-cells = <1>;
17	#size-cells = <1>;
18
19	compatible = "rockchip,rv1126";
20
21	interrupt-parent = <&gic>;
22
23	aliases {
24		i2c0 = &i2c0;
25		i2c1 = &i2c1;
26		i2c2 = &i2c2;
27		i2c3 = &i2c3;
28		i2c4 = &i2c4;
29		i2c5 = &i2c5;
30		serial0 = &uart0;
31		serial1 = &uart1;
32		serial2 = &uart2;
33		serial3 = &uart3;
34		serial4 = &uart4;
35		serial5 = &uart5;
36		spi0 = &spi0;
37		spi1 = &spi1;
38		dphy0 = &csi_dphy0;
39		dphy1 = &csi_dphy1;
40	};
41
42	cpus {
43		#address-cells = <1>;
44		#size-cells = <0>;
45
46		cpu0: cpu@f00 {
47			device_type = "cpu";
48			compatible = "arm,cortex-a7";
49			reg = <0xf00>;
50			enable-method = "psci";
51			clocks = <&cru ARMCLK>;
52			operating-points-v2 = <&cpu0_opp_table>;
53		};
54
55		cpu1: cpu@f01 {
56			device_type = "cpu";
57			compatible = "arm,cortex-a7";
58			reg = <0xf01>;
59			enable-method = "psci";
60			clocks = <&cru ARMCLK>;
61			operating-points-v2 = <&cpu0_opp_table>;
62		};
63
64		cpu2: cpu@f02 {
65			device_type = "cpu";
66			compatible = "arm,cortex-a7";
67			reg = <0xf02>;
68			enable-method = "psci";
69			clocks = <&cru ARMCLK>;
70			operating-points-v2 = <&cpu0_opp_table>;
71		};
72
73		cpu3: cpu@f03 {
74			device_type = "cpu";
75			compatible = "arm,cortex-a7";
76			reg = <0xf03>;
77			enable-method = "psci";
78			clocks = <&cru ARMCLK>;
79			operating-points-v2 = <&cpu0_opp_table>;
80		};
81	};
82
83	cpu0_opp_table: cpu0-opp-table {
84		compatible = "operating-points-v2";
85		opp-shared;
86
87		opp-408000000 {
88			opp-hz = /bits/ 64 <408000000>;
89			opp-microvolt = <800000 800000 945000>;
90			clock-latency-ns = <40000>;
91			opp-suspend;
92		};
93		opp-600000000 {
94			opp-hz = /bits/ 64 <600000000>;
95			opp-microvolt = <800000 800000 945000>;
96			clock-latency-ns = <40000>;
97		};
98		opp-816000000 {
99			opp-hz = /bits/ 64 <816000000>;
100			opp-microvolt = <800000 800000 945000>;
101			clock-latency-ns = <40000>;
102		};
103		opp-1008000000 {
104			opp-hz = /bits/ 64 <1008000000>;
105			opp-microvolt = <800000 800000 945000>;
106			clock-latency-ns = <40000>;
107		};
108	};
109
110	arm-pmu {
111		compatible = "arm,cortex-a7-pmu";
112		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
113			     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
114			     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
115			     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
116		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
117	};
118
119	display_subsystem: display-subsystem {
120		compatible = "rockchip,display-subsystem";
121		ports = <&vop_out>;
122		status = "disabled";
123
124		route {
125			route_dsi: route-dsi {
126				status = "disabled";
127				logo,uboot = "logo.bmp";
128				logo,kernel = "logo_kernel.bmp";
129				logo,mode = "center";
130				charge_logo,mode = "center";
131				connect = <&vop_out_dsi>;
132			};
133
134			route_rgb: route-rgb {
135				status = "disabled";
136				logo,uboot = "logo.bmp";
137				logo,kernel = "logo_kernel.bmp";
138				logo,mode = "center";
139				charge_logo,mode = "center";
140				connect = <&vop_out_rgb>;
141			};
142		};
143	};
144
145	fiq_debugger: fiq-debugger {
146		compatible = "rockchip,fiq-debugger";
147		rockchip,serial-id = <2>;
148		rockchip,wake-irq = <0>;
149		rockchip,irq-mode-enable = <0>;
150		rockchip,baudrate = <1500000>;  /* Only 115200 and 1500000 */
151		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
152		status = "disabled";
153	};
154
155	mpp_srv: mpp-srv {
156		compatible = "rockchip,mpp-service";
157		rockchip,taskqueue-count = <3>;
158		rockchip,resetgroup-count = <3>;
159		status = "disabled";
160	};
161
162	psci {
163		compatible = "arm,psci-1.0";
164		method = "smc";
165	};
166
167	rgb: rgb {
168		compatible = "rockchip,rv1126-rgb";
169		status = "disabled";
170
171		ports {
172			#address-cells = <1>;
173			#size-cells = <0>;
174
175			port@0 {
176				reg = <0>;
177				#address-cells = <1>;
178				#size-cells = <0>;
179
180				rgb_in_vop: endpoint@0 {
181					reg = <0>;
182					remote-endpoint = <&vop_out_rgb>;
183				};
184			};
185
186		};
187	};
188
189	timer {
190		compatible = "arm,armv7-timer";
191		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
192			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
193			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
194			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
195		clock-frequency = <24000000>;
196	};
197
198	xin24m: oscillator {
199		compatible = "fixed-clock";
200		clock-frequency = <24000000>;
201		clock-output-names = "xin24m";
202		#clock-cells = <0>;
203	};
204
205	grf: syscon@fe000000 {
206		compatible = "rockchip,rv1126-grf", "syscon";
207		reg = <0xfe000000 0x20000>;
208	};
209
210	pmugrf: syscon@fe020000 {
211		compatible = "rockchip,rv1126-pmugrf", "syscon";
212		reg = <0xfe020000 0x1000>;
213
214		pmu_io_domains: io-domains {
215			compatible = "rockchip,rv1126-pmu-io-voltage-domain";
216		};
217	};
218
219	qos_usb_host: qos@fe810008 {
220		compatible = "syscon";
221		reg = <0xfe810008 0x20>;
222	};
223
224	qos_usb_otg: qos@fe810088 {
225		compatible = "syscon";
226		reg = <0xfe810088 0x20>;
227	};
228
229	qos_npu: qos@fe850008 {
230		compatible = "syscon";
231		reg = <0xfe850008 0x20>;
232	};
233
234	qos_emmc: qos@fe860008 {
235		compatible = "syscon";
236		reg = <0xfe860008 0x20>;
237	};
238
239	qos_nandc: qos@fe860088 {
240		compatible = "syscon";
241		reg = <0xe860088 0x20>;
242	};
243
244	qos_sfc: qos@fe860208 {
245		compatible = "syscon";
246		reg = <0xfe860208 0x20>;
247	};
248
249	qos_sdmmc: qos@fe868008 {
250		compatible = "syscon";
251		reg = <0xfe868008  0x20>;
252	};
253
254	qos_sdio: qos@fe86c008 {
255		compatible = "syscon";
256		reg = <0xfe86c008 0x20>;
257	};
258
259	qos_vepu_rd0: qos@fe870008 {
260		compatible = "syscon";
261		reg = <0xfe870008 0x20>;
262	};
263
264	qos_vepu_rd1: qos@fe870088 {
265		compatible = "syscon";
266		reg = <0xfe870088 0x20>;
267	};
268
269	qos_vepu_wr: qos@fe870108 {
270		compatible = "syscon";
271		reg = <0xfe870108 0x20>;
272	};
273
274	qos_ispp_m0: qos@fe880018 {
275		compatible = "syscon";
276		reg = <0xfe880018 0x20>;
277	};
278
279	qos_ispp_m1: qos@fe880098 {
280		compatible = "syscon";
281		reg = <0xfe880098 0x20>;
282	};
283
284	qos_isp: qos@fe890008 {
285		compatible = "syscon";
286		reg = <0xfe890008 0x20>;
287	};
288
289	qos_cif_lite: qos@fe890088 {
290		compatible = "syscon";
291		reg = <0xfe890088 0x20>;
292	};
293
294	qos_cif: qos@fe890108 {
295		compatible = "syscon";
296		reg = <0xfe890108 0x20>;
297	};
298
299	qos_iep: qos@fe8a0008 {
300		compatible = "syscon";
301		reg = <0xfe8a0008 0x20>;
302	};
303
304	qos_rga_rd: qos@fe8a0088 {
305		compatible = "syscon";
306		reg = <0xfe8a0088 0x20>;
307	};
308
309	qos_rga_wr: qos@fe8a0108 {
310		compatible = "syscon";
311		reg = <0xfe8a0108 0x20>;
312	};
313
314	qos_vop: qos@fe8a0188 {
315		compatible = "syscon";
316		reg = <0xfe8a0188 0x20>;
317	};
318
319	qos_vdpu: qos@fe8b0008 {
320		compatible = "syscon";
321		reg = <0xfe8b0008 0x20>;
322	};
323
324	gic: interrupt-controller@feff0000 {
325		compatible = "arm,gic-400";
326		interrupt-controller;
327		#interrupt-cells = <3>;
328		#address-cells = <0>;
329
330		reg = <0xfeff1000 0x1000>,
331		      <0xfeff2000 0x2000>,
332		      <0xfeff4000 0x2000>,
333		      <0xfeff6000 0x2000>;
334		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
335	};
336
337	pvtm@ff040000 {
338		compatible = "rockchip,rv1126-cpu-pvtm";
339		reg = <0xff040000 0x100>;
340		clocks = <&cru CLK_CPUPVTM>, <&cru PCLK_CPUPVTM>;
341		clock-names = "clk", "pclk";
342		resets = <&cru SRST_CPUPVTM>, <&cru SRST_CPUPVTM_P>;
343		reset-names = "clk", "pclk";
344	};
345
346	pmu: power-management@ff3e0000 {
347		compatible = "rockchip,rv1126-pmu", "syscon";
348		reg = <0xff3e0000 0x1000>;
349
350		power: power-controller {
351			compatible = "rockchip,rv1126-power-controller";
352			#power-domain-cells = <1>;
353			#address-cells = <1>;
354			#size-cells = <0>;
355			status = "disabled";
356
357			/* These power domains are grouped by VD_NPU */
358			pd_npu@RV1126_PD_NPU {
359				reg = <RV1126_PD_NPU>;
360				clocks = <&cru ACLK_NPU>,
361					 <&cru HCLK_NPU>,
362					 <&cru PCLK_PDNPU>,
363					 <&cru CLK_CORE_NPU>;
364				pm_qos = <&qos_npu>;
365			};
366			/* These power domains are grouped by VD_VEPU */
367			pd_vepu@RV1126_PD_VEPU {
368				reg = <RV1126_PD_VEPU>;
369				clocks = <&cru ACLK_VENC>,
370					 <&cru HCLK_VENC>,
371					 <&cru CLK_VENC_CORE>;
372				pm_qos = <&qos_vepu_rd0>,
373					 <&qos_vepu_rd1>,
374					 <&qos_vepu_wr>;
375			};
376			/* These power domains are grouped by VD_LOGIC */
377			pd_vi@RV1126_PD_VI {
378				reg = <RV1126_PD_VI>;
379				clocks = <&cru ACLK_ISP>,
380					 <&cru HCLK_ISP>,
381					 <&cru CLK_ISP>,
382					 <&cru ACLK_CIF>,
383					 <&cru HCLK_CIF>,
384					 <&cru DCLK_CIF>,
385					 <&cru CLK_CIF_OUT>,
386					 <&cru CLK_MIPICSI_OUT>,
387					 <&cru PCLK_CSIHOST>,
388					 <&cru ACLK_CIFLITE>,
389					 <&cru HCLK_CIFLITE>,
390					 <&cru DCLK_CIFLITE>;
391				pm_qos = <&qos_isp>,
392					 <&qos_cif_lite>,
393					 <&qos_cif>;
394			};
395			pd_vo@RV1126_PD_VO {
396				reg = <RV1126_PD_VO>;
397				clocks = <&cru ACLK_RGA>,
398					 <&cru HCLK_RGA>,
399					 <&cru CLK_RGA_CORE>,
400					 <&cru ACLK_VOP>,
401					 <&cru HCLK_VOP>,
402					 <&cru DCLK_VOP>,
403					 <&cru PCLK_DSIHOST>,
404					 <&cru ACLK_IEP>,
405					 <&cru HCLK_IEP>,
406					 <&cru CLK_IEP_CORE>;
407				pm_qos = <&qos_rga_rd>, <&qos_rga_wr>,
408					 <&qos_vop>, <&qos_iep>;
409			};
410			pd_ispp@RV1126_PD_ISPP {
411				reg = <RV1126_PD_ISPP>;
412				clocks = <&cru ACLK_ISPP>,
413					 <&cru HCLK_ISPP>,
414					 <&cru CLK_ISPP>;
415				pm_qos = <&qos_ispp_m0>,
416					 <&qos_ispp_m1>;
417			};
418			pd_vdpu@RV1126_PD_VDPU {
419				reg = <RV1126_PD_VDPU>;
420				clocks = <&cru ACLK_VDEC>,
421					 <&cru HCLK_VDEC>,
422					 <&cru CLK_VDEC_CORE>,
423					 <&cru CLK_VDEC_CA>,
424					 <&cru CLK_VDEC_HEVC_CA>,
425					 <&cru ACLK_JPEG>,
426					 <&cru HCLK_JPEG>;
427				pm_qos = <&qos_vdpu>;
428			};
429			pd_nvm@RV1126_PD_NVM {
430				reg = <RV1126_PD_NVM>;
431				clocks = <&cru HCLK_EMMC>,
432					 <&cru CLK_EMMC>,
433					 <&cru HCLK_NANDC>,
434					 <&cru CLK_NANDC>,
435					 <&cru HCLK_SFC>,
436					 <&cru HCLK_SFCXIP>,
437					 <&cru SCLK_SFC>;
438				pm_qos = <&qos_emmc>,
439					 <&qos_nandc>,
440					 <&qos_sfc>,
441					 <&qos_sdmmc>;
442			};
443			pd_sdio@RV1126_PD_SDIO {
444				reg = <RV1126_PD_SDIO>;
445				clocks = <&cru HCLK_SDIO>,
446					 <&cru CLK_SDIO>;
447				pm_qos = <&qos_sdio>;
448			};
449			pd_usb@RV1126_PD_USB {
450				reg = <RV1126_PD_USB>;
451				clocks = <&cru HCLK_USBHOST>,
452					 <&cru HCLK_USBHOST_ARB>,
453					 <&cru CLK_USBHOST_UTMI_OHCI>,
454					 <&cru ACLK_USBOTG>,
455					 <&cru CLK_USBOTG_REF>;
456				pm_qos = <&qos_usb_host>,
457					 <&qos_usb_otg>;
458			};
459		};
460	};
461
462	i2c0: i2c@ff3f0000 {
463		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
464		reg = <0xff3f0000 0x1000>;
465		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
466		#address-cells = <1>;
467		#size-cells = <0>;
468		clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
469		clock-names = "i2c", "pclk";
470		pinctrl-names = "default";
471		pinctrl-0 = <&i2c0_xfer>;
472		status = "disabled";
473	};
474
475	i2c2: i2c@ff400000 {
476		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
477		reg = <0xff400000 0x1000>;
478		interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
479		#address-cells = <1>;
480		#size-cells = <0>;
481		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
482		clock-names = "i2c", "pclk";
483		pinctrl-names = "default";
484		pinctrl-0 = <&i2c2_xfer>;
485		status = "disabled";
486	};
487
488	amba {
489		compatible = "simple-bus";
490		#address-cells = <1>;
491		#size-cells = <1>;
492		ranges;
493
494		dmac: dma-controller@ff4e0000 {
495			compatible = "arm,pl330", "arm,primecell";
496			reg = <0xff4e0000 0x4000>;
497			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
498				     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
499			#dma-cells = <1>;
500			clocks = <&cru ACLK_DMAC>;
501			clock-names = "apb_pclk";
502		};
503	};
504
505	uart1: serial@ff410000 {
506		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
507		reg = <0xff410000 0x100>;
508		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
509		reg-shift = <2>;
510		reg-io-width = <4>;
511		dmas = <&dmac 7>, <&dmac 6>;
512		clock-frequency = <24000000>;
513		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
514		clock-names = "baudclk", "apb_pclk";
515		pinctrl-names = "default";
516		pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
517		status = "disabled";
518	};
519
520	pwm0: pwm@ff430000 {
521		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
522		reg = <0xff430000 0x10>;
523		#pwm-cells = <3>;
524		pinctrl-names = "active";
525		pinctrl-0 = <&pwm0m0_pins>;
526		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
527		clock-names = "pwm", "pclk";
528		status = "disabled";
529	};
530
531	pwm1: pwm@ff430010 {
532		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
533		reg = <0xff430010 0x10>;
534		#pwm-cells = <3>;
535		pinctrl-names = "active";
536		pinctrl-0 = <&pwm1m0_pins>;
537		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
538		clock-names = "pwm", "pclk";
539		status = "disabled";
540	};
541
542	pwm2: pwm@ff430020 {
543		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
544		reg = <0xff430020 0x10>;
545		#pwm-cells = <3>;
546		pinctrl-names = "active";
547		pinctrl-0 = <&pwm2m0_pins>;
548		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
549		clock-names = "pwm", "pclk";
550		status = "disabled";
551	};
552
553	pwm3: pwm@ff430030 {
554		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
555		reg = <0xff430030 0x10>;
556		#pwm-cells = <3>;
557		pinctrl-names = "active";
558		pinctrl-0 = <&pwm3m0_pins>;
559		clocks = <&cru CLK_PWM0>, <&cru PCLK_PWM0>;
560		clock-names = "pwm", "pclk";
561		status = "disabled";
562	};
563
564	pwm4: pwm@ff440000 {
565		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
566		reg = <0xff440000 0x10>;
567		#pwm-cells = <3>;
568		pinctrl-names = "active";
569		pinctrl-0 = <&pwm4m0_pins>;
570		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
571		clock-names = "pwm", "pclk";
572		status = "disabled";
573	};
574
575	pwm5: pwm@ff440010 {
576		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
577		reg = <0xff440010 0x10>;
578		#pwm-cells = <3>;
579		pinctrl-names = "active";
580		pinctrl-0 = <&pwm5m0_pins>;
581		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
582		clock-names = "pwm", "pclk";
583		status = "disabled";
584	};
585
586	pwm6: pwm@ff440020 {
587		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
588		reg = <0xff440020 0x10>;
589		#pwm-cells = <3>;
590		pinctrl-names = "active";
591		pinctrl-0 = <&pwm6m0_pins>;
592		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
593		clock-names = "pwm", "pclk";
594		status = "disabled";
595	};
596
597	pwm7: pwm@ff440030 {
598		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
599		reg = <0xff440030 0x10>;
600		#pwm-cells = <3>;
601		pinctrl-names = "active";
602		pinctrl-0 = <&pwm7m0_pins>;
603		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
604		clock-names = "pwm", "pclk";
605		status = "disabled";
606	};
607
608	spi0: spi@ff450000 {
609		compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi";
610		reg = <0xff450000 0x1000>;
611		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
612		#address-cells = <1>;
613		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
614		clock-names = "spiclk", "apb_pclk";
615		dmas = <&dmac 1>, <&dmac 0>;
616		dma-names = "tx", "rx";
617		pinctrl-names = "default", "high_speed";
618		pinctrl-0 = <&spi0m0_clk &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso &spi0m0_mosi>;
619		pinctrl-1 = <&spi0m0_clk_hs &spi0m0_cs0n &spi0m0_cs1n &spi0m0_miso_hs &spi0m0_mosi_hs>;
620		status = "disabled";
621	};
622
623	pvtm@ff470000 {
624		compatible = "rockchip,rv1126-pmu-pvtm";
625		reg = <0xff470000 0x100>;
626		clocks = <&pmucru CLK_PMUPVTM>, <&pmucru PCLK_PMUPVTM>;
627		clock-names = "clk", "pclk";
628		resets = <&cru SRST_PMUPVTM>, <&cru SRST_PMUPVTM_P>;
629		reset-names = "clk", "pclk";
630	};
631
632	pmucru: clock-controller@ff480000 {
633		compatible = "rockchip,rv1126-pmucru";
634		reg = <0xff480000 0x1000>;
635		rockchip,grf = <&grf>;
636		#clock-cells = <1>;
637		#reset-cells = <1>;
638	};
639
640	cru: clock-controller@ff490000 {
641		compatible = "rockchip,rv1126-cru";
642		reg = <0xff490000 0x1000>;
643		rockchip,grf = <&grf>;
644		#clock-cells = <1>;
645		#reset-cells = <1>;
646
647		assigned-clocks =
648			<&pmucru CLK_RTC32K>, <&pmucru PLL_GPLL>,
649			<&pmucru PCLK_PDPMU>, <&cru PLL_CPLL>,
650			<&cru PLL_HPLL>, <&cru ARMCLK>,
651			<&cru ACLK_PDBUS>, <&cru HCLK_PDBUS>,
652			<&cru PCLK_PDBUS>, <&cru ACLK_PDPHP>,
653			<&cru HCLK_PDPHP>, <&cru HCLK_PDAUDIO>,
654			<&cru HCLK_PDCORE_NIU>;
655		assigned-clock-rates =
656			<32768>, <1188000000>,
657			<100000000>, <1000000000>,
658			<1600000000>, <600000000>,
659			<500000000>, <200000000>,
660			<100000000>, <300000000>,
661			<200000000>, <150000000>,
662			<200000000>;
663		assigned-clock-parents =
664			<&pmucru CLK_OSC0_DIV32K>;
665	};
666
667	csi_dphy0: csi-dphy@ff4b0000 {
668		compatible = "rockchip,rv1126-csi-dphy";
669		reg = <0xff4b0000 0x8000>;
670		clocks = <&cru PCLK_CSIPHY0>;
671		clock-names = "pclk";
672		rockchip,grf = <&grf>;
673		status = "disabled";
674	};
675
676	csi_dphy1: csi-dphy@ff4b8000 {
677		compatible = "rockchip,rv1126-csi-dphy";
678		reg = <0xff4b8000 0x8000>;
679		clocks = <&cru PCLK_CSIPHY1>;
680		clock-names = "pclk";
681		rockchip,grf = <&grf>;
682		status = "disabled";
683	};
684
685	u2phy0: usb2-phy@ff4c0000 {
686		compatible = "rockchip,rv1126-usb2phy";
687		reg = <0xff4c0000 0x8000>;
688		clocks = <&cru CLK_USBPHY_OTG_REF>, <&cru PCLK_USBPHY_OTG>;
689		clock-names = "phyclk", "pclk";
690		resets = <&cru SRST_USBPHYPOR_OTG>, <&cru SRST_USBPHY_OTG_P>;
691		reset-names = "u2phy", "u2phy-apb";
692		#clock-cells = <0>;
693		clock-output-names = "usb480m_phy0";
694		status = "disabled";
695
696		u2phy_otg: otg-port {
697			#phy-cells = <0>;
698			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
699				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
700				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
701				     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
702			interrupt-names = "otg-bvalid", "otg-id",
703					  "linestate", "disconnect";
704			status = "disabled";
705		};
706	};
707
708	u2phy1: usb2-phy@ff4c8000 {
709		compatible = "rockchip,rv1126-usb2phy";
710		reg = <0xff4c8000 0x8000>;
711		clocks = <&cru CLK_USBPHY_HOST_REF>, <&cru PCLK_USBPHY_HOST>;
712		clock-names = "phyclk", "pclk";
713		resets = <&cru SRST_USBPHYPOR_HOST>, <&cru SRST_USBPHY_HOST_P>;
714		reset-names = "u2phy", "u2phy-apb";
715		#clock-cells = <0>;
716		clock-output-names = "usb480m_phy1";
717		status = "disabled";
718
719		u2phy_host: host-port {
720			#phy-cells = <0>;
721			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
722				     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
723			interrupt-names = "linestate", "disconnect";
724			status = "disabled";
725		};
726	};
727
728	mipi_dphy: mipi-dphy@ff4d0000 {
729		compatible = "rockchip,rv1126-mipi-dphy", "rockchip,rk1808-mipi-dphy";
730		reg = <0xff4d0000 0x500>;
731		clocks = <&cru CLK_MIPIDSIPHY_REF>, <&cru PCLK_DSIPHY>;
732		clock-names = "ref", "pclk";
733		clock-output-names = "mipi_dphy_pll";
734		#clock-cells = <0>;
735		resets = <&cru SRST_DSIPHY_P>;
736		reset-names = "apb";
737		#phy-cells = <0>;
738		rockchip,grf = <&grf>;
739		status = "disabled";
740	};
741
742	crypto: crypto@ff500000 {
743		compatible = "rockchip,rv1126-crypto";
744		reg = <0xff500000 0x10000>;
745		clock-names = "sclk_crypto", "sclk_crypto_apk";
746		clocks = <&cru CLK_CRYPTO_CORE>, <&cru CLK_CRYPTO_PKA>;
747		clock-frequency = <200000000>, <300000000>;
748		status = "disabled";
749	};
750
751	i2c1: i2c@ff510000 {
752		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
753		reg = <0xff510000 0x1000>;
754		interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
755		#address-cells = <1>;
756		#size-cells = <0>;
757		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
758		clock-names = "i2c", "pclk";
759		pinctrl-names = "default";
760		pinctrl-0 = <&i2c1_xfer>;
761		status = "disabled";
762	};
763
764	i2c3: i2c@ff520000 {
765		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
766		reg = <0xff520000 0x1000>;
767		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
768		#address-cells = <1>;
769		#size-cells = <0>;
770		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
771		clock-names = "i2c", "pclk";
772		pinctrl-names = "default";
773		pinctrl-0 = <&i2c3m0_xfer>;
774		status = "disabled";
775	};
776
777	i2c4: i2c@ff530000 {
778		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
779		reg = <0xff530000 0x1000>;
780		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
781		#address-cells = <1>;
782		#size-cells = <0>;
783		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
784		clock-names = "i2c", "pclk";
785		pinctrl-names = "default";
786		pinctrl-0 = <&i2c4m0_xfer>;
787		status = "disabled";
788	};
789
790	i2c5: i2c@ff540000 {
791		compatible = "rockchip,rv1126-i2c", "rockchip,rk3399-i2c";
792		reg = <0xff540000 0x1000>;
793		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
794		#address-cells = <1>;
795		#size-cells = <0>;
796		clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
797		clock-names = "i2c", "pclk";
798		pinctrl-names = "default";
799		pinctrl-0 = <&i2c5m0_xfer>;
800		status = "disabled";
801	};
802
803	pwm8: pwm@ff550000 {
804		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
805		reg = <0xff550000 0x10>;
806		#pwm-cells = <3>;
807		pinctrl-names = "active";
808		pinctrl-0 = <&pwm8m0_pins>;
809		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
810		clock-names = "pwm", "pclk";
811		status = "disabled";
812	};
813
814	pwm9: pwm@ff550010 {
815		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
816		reg = <0xff550010 0x10>;
817		#pwm-cells = <3>;
818		pinctrl-names = "active";
819		pinctrl-0 = <&pwm9m0_pins>;
820		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
821		clock-names = "pwm", "pclk";
822		status = "disabled";
823	};
824
825	pwm10: pwm@ff550020 {
826		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
827		reg = <0xff550020 0x10>;
828		#pwm-cells = <3>;
829		pinctrl-names = "active";
830		pinctrl-0 = <&pwm10m0_pins>;
831		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
832		clock-names = "pwm", "pclk";
833		status = "disabled";
834	};
835
836	pwm11: pwm@ff550030 {
837		compatible = "rockchip,rv1126-pwm", "rockchip,rk3328-pwm";
838		reg = <0xff550030 0x10>;
839		#pwm-cells = <3>;
840		pinctrl-names = "active";
841		pinctrl-0 = <&pwm11m0_pins>;
842		clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
843		clock-names = "pwm", "pclk";
844		status = "disabled";
845	};
846
847	uart0: serial@ff560000 {
848		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
849		reg = <0xff560000 0x100>;
850		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
851		reg-shift = <2>;
852		reg-io-width = <4>;
853		dmas = <&dmac 5>, <&dmac 4>;
854		clock-frequency = <24000000>;
855		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
856		clock-names = "baudclk", "apb_pclk";
857		pinctrl-names = "default";
858		pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>;
859		status = "disabled";
860	};
861
862	uart2: serial@ff570000 {
863		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
864		reg = <0xff570000 0x100>;
865		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
866		reg-shift = <2>;
867		reg-io-width = <4>;
868		dmas = <&dmac 9>, <&dmac 8>;
869		clock-frequency = <24000000>;
870		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
871		clock-names = "baudclk", "apb_pclk";
872		pinctrl-names = "default";
873		pinctrl-0 = <&uart2m1_xfer>;
874		status = "disabled";
875	};
876
877	uart3: serial@ff580000 {
878		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
879		reg = <0xff580000 0x100>;
880		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
881		reg-shift = <2>;
882		reg-io-width = <4>;
883		dmas = <&dmac 11>, <&dmac 10>;
884		clock-frequency = <24000000>;
885		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
886		clock-names = "baudclk", "apb_pclk";
887		pinctrl-names = "default";
888		pinctrl-0 = <&uart3m0_xfer &uart3m0_ctsn &uart3m0_rtsn>;
889		status = "disabled";
890	};
891
892	uart4: serial@ff590000 {
893		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
894		reg = <0xff590000 0x100>;
895		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
896		reg-shift = <2>;
897		reg-io-width = <4>;
898		dmas = <&dmac 13>, <&dmac 12>;
899		clock-frequency = <24000000>;
900		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
901		clock-names = "baudclk", "apb_pclk";
902		pinctrl-names = "default";
903		pinctrl-0 = <&uart4m0_xfer &uart4m0_ctsn &uart4m0_rtsn>;
904		status = "disabled";
905	};
906
907	uart5: serial@ff5a0000 {
908		compatible = "rockchip,rv1126-uart", "snps,dw-apb-uart";
909		reg = <0xff5a0000 0x100>;
910		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
911		reg-shift = <2>;
912		reg-io-width = <4>;
913		dmas = <&dmac 15>, <&dmac 14>;
914		clock-frequency = <24000000>;
915		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
916		clock-names = "baudclk", "apb_pclk";
917		pinctrl-names = "default";
918		pinctrl-0 = <&uart5m0_xfer &uart5m0_ctsn &uart5m0_rtsn>;
919		status = "disabled";
920	};
921
922	spi1: spi@ff5b0000 {
923		compatible = "rockchip,rv1126-spi", "rockchip,rk3066-spi";
924		reg = <0xff5b0000 0x1000>;
925		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
926		#address-cells = <1>;
927		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
928		clock-names = "spiclk", "apb_pclk";
929		dmas = <&dmac 3>, <&dmac 2>;
930		dma-names = "tx", "rx";
931		pinctrl-names = "default", "high_speed";
932		pinctrl-0 = <&spi1m0_clk &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso &spi1m0_mosi>;
933		pinctrl-1 = <&spi1m0_clk_hs &spi1m0_cs0n &spi1m0_cs1n &spi1m0_miso_hs &spi1m0_mosi_hs>;
934		status = "disabled";
935	};
936
937	otp: otp@ff5c0000 {
938		compatible = "rockchip,rv1126-otp";
939		reg = <0xff5c0000 0x1000>;
940		#address-cells = <1>;
941		#size-cells = <1>;
942		clocks = <&cru CLK_OTP>, <&cru PCLK_OTP>;
943		clock-names = "otp", "apb_pclk";
944		status = "disabled";
945
946		/* Data cells */
947		otp_id: id@7 {
948			reg = <0x07 0x10>;
949		};
950		cpu_leakage: cpu-leakage@17 {
951			reg = <0x17 0x1>;
952		};
953		logic_leakage: logic-leakage@18 {
954			reg = <0x18 0x1>;
955		};
956		npu_leakage: npu-leakage@19 {
957			reg = <0x19 0x1>;
958		};
959	};
960
961	secure_otp: secure_otp@0xff5d0000 {
962		compatible = "rockchip,rv1126-secure-otp";
963		reg = <0xff5d0000 0x4000>;
964		secure_conf = <0xfe0a0008>;
965	};
966
967	saradc: saradc@ff5e0000 {
968		compatible = "rockchip,rk3399-saradc";
969		reg = <0xff5e0000 0x100>;
970		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
971		#io-channel-cells = <1>;
972		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
973		clock-names = "saradc", "apb_pclk";
974		resets = <&cru SRST_SARADC_P>;
975		reset-names = "saradc-apb";
976		status = "disabled";
977	};
978
979	cpu_tsadc: tsadc@ff5f0000 {
980		compatible = "rockchip,rv1126-tsadc";
981		reg = <0xff5f0000 0x100>;
982		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
983		assigned-clocks = <&cru CLK_CPU_TSADC>;
984		assigned-clock-rates = <600000>;
985		clocks = <&cru CLK_CPU_TSADC>, <&cru PCLK_CPU_TSADC>,
986			 <&cru CLK_CPU_TSADCPHY>;
987		clock-names = "tsadc", "apb_pclk", "phy_clk";
988		resets = <&cru SRST_CPU_TSADC_P>, <&cru SRST_CPU_TSADC>,
989			 <&cru SRST_CPU_TSADCPHY>;
990		reset-names = "tsadc-apb", "tsadc", "tsadc-phy";
991		rockchip,hw-tshut-temp = <120000>;
992		#thermal-sensor-cells = <1>;
993		status = "disabled";
994	};
995
996	npu_tsadc: tsadc@ff5f8000 {
997		compatible = "rockchip,rv1126-tsadc";
998		reg = <0xff5f8000 0x100>;
999		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1000		assigned-clocks = <&cru CLK_NPU_TSADC>;
1001		assigned-clock-rates = <600000>;
1002		clocks = <&cru CLK_NPU_TSADC>, <&cru PCLK_NPU_TSADC>,
1003			 <&cru CLK_NPU_TSADCPHY>;
1004		clock-names = "tsadc", "apb_pclk", "phy_clk";
1005		resets = <&cru SRST_NPU_TSADC_P>, <&cru SRST_NPU_TSADC>,
1006			 <&cru SRST_NPU_TSADCPHY>;
1007		reset-names = "tsadc-apb", "tsadc", "tsadc-phy";
1008		rockchip,hw-tshut-temp = <120000>;
1009		#thermal-sensor-cells = <1>;
1010		status = "disabled";
1011	};
1012
1013	can: can@ff610000 {
1014		compatible = "rockchip,can-1.0";
1015		reg = <0xff610000 0x100>;
1016		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1017		assigned-clocks = <&cru CLK_CAN>;
1018		assigned-clock-rates = <100000000>;
1019		clocks = <&cru CLK_CAN>, <&cru PCLK_CAN>;
1020		clock-names = "baudclk", "apb_pclk";
1021		resets = <&cru SRST_CAN>, <&cru SRST_CAN_P>;
1022		reset-names = "can", "can-apb";
1023		status = "disabled";
1024	};
1025
1026	wdt: watchdog@ff680000 {
1027		compatible = "rockchip,rv1126-wdt", "snps,dw-wdt";
1028		reg = <0xff680000 0x100>;
1029		clocks = <&cru PCLK_WDT>;
1030		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1031		status = "disabled";
1032	};
1033
1034	mailbox: mailbox@ff6a0000 {
1035		compatible = "rockchip,rv1126-mailbox",
1036			     "rockchip,rk3368-mailbox";
1037		reg = <0xff6a0000 0x1000>;
1038		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1039		clocks = <&cru PCLK_MAILBOX>;
1040		clock-names = "pclk_mailbox";
1041		#mbox-cells = <1>;
1042		status = "disabled";
1043	};
1044
1045	hw_decompress: decompress@ff6c0000 {
1046		compatible = "rockchip,hw-decompress";
1047		reg = <0xff6c0000 0x10000>;
1048		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1049		clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>;
1050		clock-names = "aclk", "dclk", "pclk";
1051		soft-reset-addr = <0xff490314>;
1052		status = "disabled";
1053	};
1054
1055	i2s0_8ch: i2s@ff800000 {
1056		compatible = "rockchip,rv1126-i2s-tdm";
1057		reg = <0xff800000 0x1000>;
1058		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
1059		clocks = <&cru MCLK_I2S0_TX>, <&cru MCLK_I2S0_RX>, <&cru HCLK_I2S0>;
1060		clock-names = "mclk_tx", "mclk_rx", "hclk";
1061		dmas = <&dmac 20>, <&dmac 19>;
1062		dma-names = "tx", "rx";
1063		resets = <&cru SRST_I2S0_TX_M>, <&cru SRST_I2S0_RX_M>;
1064		reset-names = "tx-m", "rx-m";
1065		rockchip,cru = <&cru>;
1066		rockchip,grf = <&grf>;
1067		pinctrl-names = "default";
1068		pinctrl-0 = <&i2s0m0_sclk_tx
1069			     &i2s0m0_sclk_rx
1070			     &i2s0m0_lrck_tx
1071			     &i2s0m0_lrck_rx
1072			     &i2s0m0_sdi0
1073			     &i2s0m0_sdo0
1074			     &i2s0m0_sdo1_sdi3
1075			     &i2s0m0_sdo2_sdi2
1076			     &i2s0m0_sdo3_sdi1>;
1077		status = "disabled";
1078	};
1079
1080	i2s1_2ch: i2s@ff810000 {
1081		compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s";
1082		reg = <0xff810000 0x1000>;
1083		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1084		clocks = <&cru MCLK_I2S1>, <&cru HCLK_I2S1>;
1085		clock-names = "i2s_clk", "i2s_hclk";
1086		dmas = <&dmac 22>, <&dmac 21>;
1087		dma-names = "tx", "rx";
1088		pinctrl-names = "default";
1089		pinctrl-0 = <&i2s1m0_sclk
1090			     &i2s1m0_lrck
1091			     &i2s1m0_sdi
1092			     &i2s1m0_sdo>;
1093		status = "disabled";
1094	};
1095
1096	i2s2_2ch: i2s@ff820000 {
1097		compatible = "rockchip,rv1126-i2s", "rockchip,rk3066-i2s";
1098		reg = <0xff820000 0x1000>;
1099		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1100		clocks = <&cru MCLK_I2S2>, <&cru HCLK_I2S2>;
1101		clock-names = "i2s_clk", "i2s_hclk";
1102		dmas = <&dmac 24>, <&dmac 23>;
1103		dma-names = "tx", "rx";
1104		pinctrl-names = "default";
1105		pinctrl-0 = <&i2s2m0_sclk
1106			     &i2s2m0_lrck
1107			     &i2s2m0_sdi
1108			     &i2s2m0_sdo>;
1109		status = "disabled";
1110	};
1111
1112	pdm: pdm@ff830000 {
1113		compatible = "rockchip,rv1126-pdm", "rockchip,pdm";
1114		reg = <0xff830000 0x1000>;
1115		clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;
1116		clock-names = "pdm_clk", "pdm_hclk";
1117		dmas = <&dmac 25>;
1118		dma-names = "rx";
1119		pinctrl-names = "default";
1120		pinctrl-0 = <&pdmm0_clk
1121			     &pdmm0_clk1
1122			     &pdmm0_sdi0
1123			     &pdmm0_sdi1
1124			     &pdmm0_sdi2
1125			     &pdmm0_sdi3>;
1126		status = "disabled";
1127	};
1128
1129	audpwm: audpwm@ff840000 {
1130		compatible = "rockchip,rv1126-audio-pwm", "rockchip,audio-pwm-v1";
1131		reg = <0xff840000 0x1000>;
1132		clocks = <&cru SCLK_AUDPWM>, <&cru HCLK_AUDPWM>;
1133		clock-names = "clk", "hclk";
1134		dmas = <&dmac 26>;
1135		dma-names = "tx";
1136		pinctrl-names = "default";
1137		pinctrl-0 = <&audpwmm0_pins>;
1138		rockchip,sample-width-bits = <11>;
1139		rockchip,interpolat-points = <1>;
1140		status = "disabled";
1141	};
1142
1143	dfi: dfi@ff9c0000 {
1144		reg = <0xff9c0000 0x400>;
1145		compatible = "rockchip,rv1126-dfi";
1146		rockchip,pmugrf = <&pmugrf>;
1147		status = "disabled";
1148	};
1149
1150	dmc: dmc {
1151		compatible = "rockchip,rv1126-dmc";
1152		devfreq-events = <&dfi>;
1153		clocks = <&cru SCLK_DDRCLK>;
1154		clock-names = "dmc_clk";
1155		operating-points-v2 = <&dmc_opp_table>;
1156		ddr_timing = <&ddr_timing>;
1157		upthreshold = <40>;
1158		downdifferential = <20>;
1159		system-status-freq = <
1160			/*system status         freq(KHz)*/
1161			SYS_STATUS_NORMAL       924000
1162			SYS_STATUS_REBOOT       450000
1163			SYS_STATUS_SUSPEND      328000
1164			SYS_STATUS_VIDEO_1080P  924000
1165			SYS_STATUS_BOOST        924000
1166			SYS_STATUS_ISP          924000
1167			SYS_STATUS_PERFORMANCE  924000
1168		>;
1169		auto-min-freq = <328000>;
1170		auto-freq-en = <0>;
1171		#cooling-cells = <2>;
1172		status = "disabled";
1173	};
1174
1175	dmc_opp_table: dmc-opp-table {
1176		compatible = "operating-points-v2";
1177
1178		opp-328000000 {
1179			opp-hz = /bits/ 64 <328000000>;
1180			opp-microvolt = <800000>;
1181		};
1182		opp-450000000 {
1183			opp-hz = /bits/ 64 <450000000>;
1184			opp-microvolt = <800000>;
1185		};
1186		opp-664000000 {
1187			opp-hz = /bits/ 64 <664000000>;
1188			opp-microvolt = <800000>;
1189		};
1190		opp-924000000 {
1191			opp-hz = /bits/ 64 <924000000>;
1192			opp-microvolt = <800000>;
1193		};
1194		opp-1056000000 {
1195			opp-hz = /bits/ 64 <1056000000>;
1196			opp-microvolt = <800000>;
1197			status = "disabled";
1198		};
1199	};
1200
1201	vop: vop@ffb00000 {
1202		compatible = "rockchip,rv1126-vop";
1203		reg = <0xffb00000 0x200>, <0xffb00a00 0x400>;
1204		reg-names = "regs", "gamma_lut";
1205		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
1206		clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>;
1207		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1208		iommus = <&vop_mmu>;
1209		status = "disabled";
1210
1211		vop_out: port {
1212			#address-cells = <1>;
1213			#size-cells = <0>;
1214
1215			vop_out_rgb: endpoint@0 {
1216				reg = <0>;
1217				remote-endpoint = <&rgb_in_vop>;
1218			};
1219
1220			vop_out_dsi: endpoint@1 {
1221				reg = <1>;
1222				remote-endpoint = <&dsi_in_vop>;
1223			};
1224		};
1225	};
1226
1227	vop_mmu: iommu@ffb00f00 {
1228		compatible = "rockchip,iommu";
1229		reg = <0xffb00f00 0x100>;
1230		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
1231		interrupt-names = "vop_mmu";
1232		clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
1233		clock-names = "aclk", "iface";
1234		#iommu-cells = <0>;
1235		rockchip,disable-device-link-resume;
1236		status = "disabled";
1237	};
1238
1239	dsi: dsi@ffb30000 {
1240		compatible = "rockchip,rv1126-mipi-dsi";
1241		reg = <0xffb30000 0x500>;
1242		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
1243		clocks = <&cru PCLK_DSIHOST>, <&mipi_dphy>;
1244		clock-names = "pclk", "hs_clk";
1245		resets = <&cru SRST_DSIHOST_P>;
1246		reset-names = "apb";
1247		phys = <&mipi_dphy>;
1248		phy-names = "mipi_dphy";
1249		rockchip,grf = <&grf>;
1250		#address-cells = <1>;
1251		#size-cells = <0>;
1252		status = "disabled";
1253
1254		ports {
1255			port {
1256				dsi_in_vop: endpoint {
1257					remote-endpoint = <&vop_out_dsi>;
1258				};
1259			};
1260		};
1261	};
1262
1263	rkisp: rkisp@ffb50000 {
1264		compatible = "rockchip,rv1126-rkisp";
1265		reg = <0xffb50000 0x10000>;
1266		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
1267			     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
1268			     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
1269		interrupt-names = "isp_irq", "mi_irq", "mipi_irq";
1270		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>,
1271			 <&cru CLK_ISP>;
1272		clock-names = "aclk_isp", "hclk_isp", "clk_isp";
1273		power-domains = <&power RV1126_PD_VI>;
1274		iommus = <&rkisp_mmu>;
1275		status = "disabled";
1276	};
1277
1278	rkisp_mmu: iommu@ffb51a00 {
1279		compatible = "rockchip,iommu";
1280		reg = <0xffb51a00 0x100>;
1281		interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
1282		interrupt-names = "isp_mmu";
1283		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
1284		clock-names = "aclk", "iface";
1285		power-domains = <&power RV1126_PD_VI>;
1286		#iommu-cells = <0>;
1287		rockchip,disable-mmu-reset;
1288		status = "disabled";
1289	};
1290
1291	rkispp: rkispp@ffb60000 {
1292		compatible = "rockchip,rv1126-rkispp";
1293		reg = <0xffb60000 0x20000>;
1294		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
1295			     <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
1296		interrupt-names = "ispp_irq", "fec_irq";
1297		clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>,
1298			 <&cru CLK_ISPP>;
1299		clock-names = "aclk_ispp", "hclk_ispp", "clk_ispp";
1300		power-domains = <&power RV1126_PD_ISPP>;
1301		iommus = <&rkispp_mmu>;
1302		status = "disabled";
1303	};
1304
1305	rkispp_mmu: iommu@ffb60e00 {
1306		compatible = "rockchip,iommu";
1307		reg = <0xffb60e00 0x40>, <0xffb60e40 0x40>, <0xffb60f00 0x40>;
1308		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1309			     <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
1310			     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
1311		interrupt-names = "ispp_mmu0_r", "ispp_mmu0_w", "ispp_mmu1";
1312		clocks = <&cru ACLK_ISPP>, <&cru HCLK_ISPP>;
1313		clock-names = "aclk", "iface";
1314		power-domains = <&power RV1126_PD_ISPP>;
1315		#iommu-cells = <0>;
1316		rockchip,disable-mmu-reset;
1317		status = "disabled";
1318	};
1319
1320	rkvenc: rkvenc@ffbb0000 {
1321		compatible = "rockchip,rkv-encoder-v1";
1322		reg = <0xffbb0000 0x400>;
1323		interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
1324		interrupt-names = "irq_enc";
1325		clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>,
1326			<&cru CLK_VENC_CORE>;
1327		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
1328		resets = <&cru SRST_VENC_A>, <&cru SRST_VENC_H>,
1329			<&cru SRST_VENC_CORE>;
1330		reset-names = "video_a", "video_h", "video_core";
1331		iommus = <&rkvenc_mmu>;
1332		node-name = "rkvenc";
1333		rockchip,srv = <&mpp_srv>;
1334		rockchip,taskqueue-node = <2>;
1335		rockchip,resetgroup-node = <2>;
1336		power-domains = <&power RV1126_PD_VEPU>;
1337		status = "disabled";
1338	};
1339
1340	rkvenc_mmu: iommu@ffbb0f00 {
1341		compatible = "rockchip,iommu";
1342		reg = <0xffbb0f00 0x40>, <0xffbb0f40 0x40>;
1343		interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1344			<GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1345		interrupt-names = "rkvenc_mmu0", "rkvenc_mmu1";
1346		clocks = <&cru ACLK_VENC>, <&cru HCLK_VENC>;
1347		clock-names = "aclk", "iface";
1348		rockchip,disable-mmu-reset;
1349		#iommu-cells = <0>;
1350		power-domains = <&power RV1126_PD_VEPU>;
1351		status = "disabled";
1352	};
1353
1354	pvtm@ffc00000 {
1355		compatible = "rockchip,rv1126-npu-pvtm";
1356		reg = <0xffc00000 0x100>;
1357		clocks = <&cru CLK_NPUPVTM>, <&cru PCLK_NPUPVTM>;
1358		clock-names = "clk", "pclk";
1359		resets = <&cru SRST_NPUPVTM>, <&cru SRST_NPUPVTM_P>;
1360		reset-names = "clk", "pclk";
1361	};
1362
1363	gmac: ethernet@ffc40000 {
1364		compatible = "rockchip,rv1126-gmac", "snps,dwmac-4.20a";
1365		reg = <0xffc40000 0x0ffff>;
1366		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1367			     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1368		interrupt-names = "macirq", "eth_wake_irq";
1369		rockchip,grf = <&grf>;
1370		clocks = <&cru CLK_GMAC_SRC>, <&cru CLK_GMAC_TX_RX>,
1371			 <&cru CLK_GMAC_TX_RX>, <&cru CLK_GMAC_REF>,
1372			 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>,
1373			 <&cru RGMII_MODE_CLK>, <&cru CLK_GMAC_PTPREF>;
1374		clock-names = "stmmaceth", "mac_clk_rx",
1375			      "mac_clk_tx", "clk_mac_refout",
1376			      "aclk_mac", "pclk_mac",
1377			      "clk_mac_speed", "ptp_ref";
1378		resets = <&cru SRST_GMAC_A>;
1379		reset-names = "stmmaceth";
1380
1381		snps,mixed-burst;
1382		snps,tso;
1383
1384		snps,axi-config = <&stmmac_axi_setup>;
1385		snps,mtl-rx-config = <&mtl_rx_setup>;
1386		snps,mtl-tx-config = <&mtl_tx_setup>;
1387		status = "disabled";
1388
1389		mdio: mdio {
1390			compatible = "snps,dwmac-mdio";
1391			#address-cells = <0x1>;
1392			#size-cells = <0x0>;
1393		};
1394
1395		stmmac_axi_setup: stmmac-axi-config {
1396			snps,wr_osr_lmt = <4>;
1397			snps,rd_osr_lmt = <8>;
1398			snps,blen = <0 0 0 0 16 8 4>;
1399		};
1400
1401		mtl_rx_setup: rx-queues-config {
1402			snps,rx-queues-to-use = <1>;
1403			queue0 {};
1404		};
1405
1406		mtl_tx_setup: tx-queues-config {
1407			snps,tx-queues-to-use = <1>;
1408			queue0 {};
1409		};
1410	};
1411
1412	emmc: dwmmc@ffc50000 {
1413		compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc";
1414		reg = <0xffc50000 0x4000>;
1415		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
1416		clocks = <&cru HCLK_EMMC>, <&cru CLK_EMMC>,
1417			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
1418		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1419		fifo-depth = <0x100>;
1420		max-frequency = <200000000>;
1421		status = "disabled";
1422	};
1423
1424	sdmmc: dwmmc@ffc60000 {
1425		compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc";
1426		reg = <0xffc60000 0x4000>;
1427		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
1428		clocks = <&cru HCLK_SDMMC>, <&cru CLK_SDMMC>,
1429			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
1430		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1431		fifo-depth = <0x100>;
1432		max-frequency = <100000000>;
1433		pinctrl-names = "default";
1434		pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_det &sdmmc1_bus4>;
1435		status = "disabled";
1436	};
1437
1438	sdio: dwmmc@ffc70000 {
1439		compatible = "rockchip,rv1126-dw-mshc", "rockchip,rk3288-dw-mshc";
1440		reg = <0xffc70000 0x4000>;
1441		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
1442		clocks = <&cru HCLK_SDIO>, <&cru CLK_SDIO>,
1443			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
1444		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1445		fifo-depth = <0x100>;
1446		max-frequency = <150000000>;
1447		pinctrl-names = "default";
1448		pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_bus4>;
1449		status = "disabled";
1450	};
1451
1452	nandc: nandc@ffc80000 {
1453		compatible = "rockchip,rk-nandc";
1454		reg = <0xffc80000 0x4000>;
1455		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1456		nandc_id = <0>;
1457		clocks = <&cru CLK_NANDC>, <&cru HCLK_NANDC>;
1458		clock-names = "clk_nandc", "hclk_nandc";
1459		status = "disabled";
1460	};
1461
1462	sfc: sfc@ffc90000  {
1463		compatible = "rockchip,sfc";
1464		reg = <0xffc90000 0x4000>;
1465		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1466		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
1467		clock-names = "clk_sfc", "hclk_sfc";
1468		assigned-clocks = <&cru SCLK_SFC>;
1469		assigned-clock-rates = <80000000>;
1470		status = "disabled";
1471	};
1472
1473	usbdrd: usb0 {
1474		compatible = "rockchip,rv1126-dwc3", "rockchip,rk3399-dwc3";
1475		#address-cells = <1>;
1476		#size-cells = <1>;
1477		ranges;
1478		clocks = <&cru CLK_USBOTG_REF>, <&cru ACLK_USBOTG>;
1479		clock-names = "ref_clk", "bus_clk";
1480		status = "disabled";
1481
1482		usbdrd_dwc3: dwc3@ffd00000 {
1483			compatible = "snps,dwc3";
1484			reg = <0xffd00000 0x100000>;
1485			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1486			dr_mode = "otg";
1487			maximum-speed = "high-speed";
1488			phys = <&u2phy_otg>;
1489			phy-names = "usb2-phy";
1490			phy_type = "utmi_wide";
1491			power-domains = <&power RV1126_PD_USB>;
1492			resets = <&cru SRST_USBOTG_A>;
1493			reset-names = "usb3-otg";
1494			snps,dis_enblslpm_quirk;
1495			snps,dis-u2-freeclk-exists-quirk;
1496			snps,dis_u2_susphy_quirk;
1497			snps,dis-del-phy-power-chg-quirk;
1498			snps,tx-ipgap-linecheck-dis-quirk;
1499			snps,xhci-trb-ent-quirk;
1500			status = "disabled";
1501		};
1502	};
1503
1504	usb_host0_ehci: usb@ffe00000 {
1505		compatible = "generic-ehci";
1506		reg = <0xffe00000 0x20000>;
1507		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1508		clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>,
1509			 <&u2phy1>;
1510		clock-names = "usbhost", "arbiter", "utmi";
1511		phys = <&u2phy_host>;
1512		phy-names = "usb";
1513		power-domains = <&power RV1126_PD_USB>;
1514		status = "disabled";
1515	};
1516
1517	usb_host0_ohci: usb@ffe10000 {
1518		compatible = "generic-ohci";
1519		reg = <0xffe20000 0x20000>;
1520		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1521		clocks = <&cru HCLK_USBHOST>, <&cru HCLK_USBHOST_ARB>,
1522			 <&u2phy1>;
1523		clock-names = "usbhost", "arbiter", "utmi";
1524		phys = <&u2phy_host>;
1525		phy-names = "usb";
1526		power-domains = <&power RV1126_PD_USB>;
1527		status = "disabled";
1528	};
1529
1530	pinctrl: pinctrl {
1531		compatible = "rockchip,rv1126-pinctrl";
1532		rockchip,grf = <&grf>;
1533		rockchip,pmu = <&pmugrf>;
1534		#address-cells = <1>;
1535		#size-cells = <1>;
1536		ranges;
1537
1538		gpio0: gpio0@ff460000 {
1539			compatible = "rockchip,gpio-bank";
1540			reg = <0xff460000 0x100>;
1541			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
1542			clocks = <&pmucru PCLK_GPIO0>;
1543
1544			gpio-controller;
1545			#gpio-cells = <2>;
1546
1547			interrupt-controller;
1548			#interrupt-cells = <2>;
1549		};
1550
1551		gpio1: gpio1@ff620000 {
1552			compatible = "rockchip,gpio-bank";
1553			reg = <0xff620000 0x100>;
1554			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1555			clocks = <&cru PCLK_GPIO1>;
1556
1557			gpio-controller;
1558			#gpio-cells = <2>;
1559
1560			interrupt-controller;
1561			#interrupt-cells = <2>;
1562		};
1563
1564		gpio2: gpio2@ff630000 {
1565			compatible = "rockchip,gpio-bank";
1566			reg = <0xff630000 0x100>;
1567			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
1568			clocks = <&cru PCLK_GPIO2>;
1569
1570			gpio-controller;
1571			#gpio-cells = <2>;
1572
1573			interrupt-controller;
1574			#interrupt-cells = <2>;
1575		};
1576
1577		gpio3: gpio3@ff640000 {
1578			compatible = "rockchip,gpio-bank";
1579			reg = <0xff640000 0x100>;
1580			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1581			clocks = <&cru PCLK_GPIO3>;
1582
1583			gpio-controller;
1584			#gpio-cells = <2>;
1585
1586			interrupt-controller;
1587			#interrupt-cells = <2>;
1588		};
1589
1590		gpio4: gpio4@ff650000 {
1591			compatible = "rockchip,gpio-bank";
1592			reg = <0xff650000 0x100>;
1593			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
1594			clocks = <&cru PCLK_GPIO4>;
1595
1596			gpio-controller;
1597			#gpio-cells = <2>;
1598
1599			interrupt-controller;
1600			#interrupt-cells = <2>;
1601		};
1602	};
1603};
1604
1605#include "rv1126-pinctrl.dtsi"
1606
1607