xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/rv1106.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
4 */
5#include <dt-bindings/clock/rv1106-cru.h>
6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/pinctrl/rockchip.h>
10#include <dt-bindings/soc/rockchip,boot-mode.h>
11#include <dt-bindings/soc/rockchip-system-status.h>
12#include <dt-bindings/thermal/thermal.h>
13
14/ {
15	#address-cells = <1>;
16	#size-cells = <1>;
17
18	compatible = "rockchip,rv1106";
19
20	interrupt-parent = <&gic>;
21
22	aliases {
23		csi2dphy0 = &csi2_dphy0;
24		csi2dphy1 = &csi2_dphy1;
25		csi2dphy2 = &csi2_dphy2;
26		ethernet0 = &gmac;
27		gpio0 = &gpio0;
28		gpio1 = &gpio1;
29		gpio2 = &gpio2;
30		gpio3 = &gpio3;
31		gpio4 = &gpio4;
32		i2c0 = &i2c0;
33		i2c1 = &i2c1;
34		i2c2 = &i2c2;
35		i2c3 = &i2c3;
36		i2c4 = &i2c4;
37		mmc0 = &emmc;
38		mmc1 = &sdmmc;
39		mmc2 = &sdio;
40		pwm0 = &pwm0;
41		pwm1 = &pwm1;
42		pwm2 = &pwm2;
43		pwm3 = &pwm3;
44		pwm4 = &pwm4;
45		pwm5 = &pwm5;
46		pwm6 = &pwm6;
47		pwm7 = &pwm7;
48		pwm8 = &pwm8;
49		pwm9 = &pwm9;
50		pwm10 = &pwm10;
51		pwm11 = &pwm11;
52		rkcif_mipi_lvds0 = &rkcif_mipi_lvds;
53		rkcif_mipi_lvds1 = &rkcif_mipi_lvds1;
54		serial0 = &uart0;
55		serial1 = &uart1;
56		serial2 = &uart2;
57		serial3 = &uart3;
58		serial4 = &uart4;
59		serial5 = &uart5;
60		spi0 = &spi0;
61		spi1 = &spi1;
62		spi2 = &sfc;
63	};
64
65	clocks {
66		compatible = "simple-bus";
67
68		cpu_pvtpll: cpu-pvtpll {
69			compatible = "fixed-clock";
70			clock-frequency = <1300000000>;
71			clock-output-names = "cpu_pvtpll";
72			#clock-cells = <0>;
73			status = "disabled";
74		};
75
76		rkvenc_pvtpll: pvtpll-0 {
77			compatible = "fixed-clock";
78			clock-frequency = <410000000>;
79			clock-output-names = "clk_pvtpll_0";
80			#clock-cells = <0>;
81		};
82
83		npu_pvtpll: pvtpll-1 {
84			compatible = "fixed-clock";
85			clock-frequency = <420000000>;
86			clock-output-names = "clk_pvtpll_1";
87			#clock-cells = <0>;
88		};
89
90		xin24m: oscillator {
91			compatible = "fixed-clock";
92			clock-frequency = <24000000>;
93			clock-output-names = "xin24m";
94			#clock-cells = <0>;
95		};
96	};
97
98	cpus {
99		#address-cells = <1>;
100		#size-cells = <0>;
101
102		cpu0: cpu@0 {
103			device_type = "cpu";
104			compatible = "arm,cortex-a7";
105			reg = <0x0>;
106			clocks = <&cru ARMCLK>;
107			operating-points-v2 = <&cpu0_opp_table>;
108		};
109	};
110
111	cpu0_opp_table: cpu0-opp-table {
112		compatible = "operating-points-v2";
113		opp-shared;
114
115		nvmem-cells = <&cpu_leakage>;
116		nvmem-cell-names = "leakage";
117
118		rockchip,pvtpll-avg-offset = <0x4001c>;
119		rockchip,pvtpll-min-rate = <1104000>;
120		rockchip,pvtpll-volt-step = <12500>;
121		rockchip,grf = <&grf>;
122		rockchip,temp-hysteresis = <5000>;
123		rockchip,low-temp = <10000>;
124		rockchip,low-temp-min-volt = <900000>;
125
126		opp-408000000 {
127			opp-hz = /bits/ 64 <408000000>;
128			opp-microvolt = <850000 850000 1000000>;
129			clock-latency-ns = <40000>;
130		};
131		opp-600000000 {
132			opp-hz = /bits/ 64 <600000000>;
133			opp-microvolt = <850000 850000 1000000>;
134			clock-latency-ns = <40000>;
135		};
136		opp-816000000 {
137			opp-hz = /bits/ 64 <816000000>;
138			opp-microvolt = <850000 850000 1000000>;
139			clock-latency-ns = <40000>;
140			opp-suspend;
141		};
142		opp-1104000000 {
143			opp-hz = /bits/ 64 <1104000000>;
144			opp-microvolt = <850000 850000 1000000>;
145			clock-latency-ns = <40000>;
146		};
147		opp-1200000000 {
148			opp-hz = /bits/ 64 <1200000000>;
149			opp-microvolt = <850000 850000 1000000>;
150			clock-latency-ns = <40000>;
151		};
152		opp-1296000000 {
153			opp-hz = /bits/ 64 <1296000000>;
154			opp-microvolt = <875000 850000 1000000>;
155			clock-latency-ns = <40000>;
156		};
157		opp-1416000000 {
158			opp-hz = /bits/ 64 <1416000000>;
159			opp-microvolt = <925000 850000 1000000>;
160			clock-latency-ns = <40000>;
161		};
162		opp-1512000000 {
163			opp-hz = /bits/ 64 <1512000000>;
164			opp-microvolt = <975000 850000 1000000>;
165			clock-latency-ns = <40000>;
166		};
167		opp-1608000000 {
168			opp-hz = /bits/ 64 <1608000000>;
169			opp-microvolt = <1000000 850000 1000000>;
170			clock-latency-ns = <40000>;
171		};
172	};
173
174	arm-pmu {
175		compatible = "arm,cortex-a7-pmu";
176		interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
177		interrupt-affinity = <&cpu0>;
178	};
179
180	cpuinfo {
181		compatible = "rockchip,cpuinfo";
182		nvmem-cells = <&otp_id>, <&otp_cpu_version>, <&cpu_code>;
183		nvmem-cell-names = "id", "cpu-version", "cpu-code";
184	};
185
186	/* dphy0 full mode */
187	csi2_dphy0: csi2-dphy0 {
188		compatible = "rockchip,rv1106-csi2-dphy";
189		rockchip,hw = <&csi2_dphy_hw>;
190		status = "disabled";
191	};
192
193	/* dphy1 split mode 01 */
194	csi2_dphy1: csi2-dphy1 {
195		compatible = "rockchip,rv1106-csi2-dphy";
196		rockchip,hw = <&csi2_dphy_hw>;
197		status = "disabled";
198	};
199
200	/* dphy2 split mode 23 */
201	csi2_dphy2: csi2-dphy2 {
202		compatible = "rockchip,rv1106-csi2-dphy";
203		rockchip,hw = <&csi2_dphy_hw>;
204		status = "disabled";
205	};
206
207	display_subsystem: display-subsystem {
208		compatible = "rockchip,display-subsystem";
209		ports = <&vop_out>;
210		status = "disabled";
211
212		route {
213			route_rgb: route-rgb {
214				status = "disabled";
215				logo,uboot = "logo.bmp";
216				logo,kernel = "logo_kernel.bmp";
217				logo,mode = "center";
218				charge_logo,mode = "center";
219				connect = <&vop_out_rgb>;
220			};
221		};
222	};
223
224	fiq_debugger: fiq-debugger {
225		compatible = "rockchip,fiq-debugger";
226		rockchip,serial-id = <2>;
227		rockchip,wake-irq = <0>;
228		rockchip,irq-mode-enable = <0>;
229		rockchip,baudrate = <115200>;	/* Only 115200 and 1500000 */
230		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
231		status = "disabled";
232	};
233
234	firmware {
235		optee: optee {
236			compatible = "linaro,optee-tz";
237			method = "smc";
238			status = "disabled";
239		};
240	};
241
242	mipi0_csi2: mipi0-csi2 {
243		compatible = "rockchip,rv1106-mipi-csi2";
244		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>;
245		status = "disabled";
246	};
247
248	mipi1_csi2: mipi1-csi2 {
249		compatible = "rockchip,rv1106-mipi-csi2";
250		rockchip,hw = <&mipi0_csi2_hw>, <&mipi1_csi2_hw>;
251		status = "disabled";
252	};
253
254	mpp_srv: mpp-srv {
255		compatible = "rockchip,mpp-service";
256		rockchip,taskqueue-count = <2>;
257		status = "disabled";
258	};
259
260	mpp_vcodec: mpp-vcodec {
261		compatible = "rockchip,vcodec";
262		status = "disabled";
263	};
264
265	psci {
266		compatible = "arm,psci-1.0";
267		method = "smc";
268	};
269
270	rkcif_dvp: rkcif-dvp {
271		compatible = "rockchip,rkcif-dvp";
272		rockchip,hw = <&rkcif>;
273		status = "disabled";
274	};
275
276	rkcif_dvp_sditf: rkcif-dvp-sditf {
277		compatible = "rockchip,rkcif-sditf";
278		rockchip,cif = <&rkcif_dvp>;
279		status = "disabled";
280	};
281
282	rkcif_mipi_lvds: rkcif-mipi-lvds {
283		compatible = "rockchip,rkcif-mipi-lvds";
284		rockchip,hw = <&rkcif>;
285		status = "disabled";
286	};
287
288	rkcif_mipi_lvds_sditf: rkcif-mipi-lvds-sditf {
289		compatible = "rockchip,rkcif-sditf";
290		rockchip,cif = <&rkcif_mipi_lvds>;
291		status = "disabled";
292	};
293
294	rkcif_mipi_lvds1: rkcif-mipi-lvds1 {
295		compatible = "rockchip,rkcif-mipi-lvds";
296		rockchip,hw = <&rkcif>;
297		status = "disabled";
298	};
299
300	rkcif_mipi_lvds1_sditf: rkcif-mipi-lvds1-sditf {
301		compatible = "rockchip,rkcif-sditf";
302		rockchip,cif = <&rkcif_mipi_lvds1>;
303		status = "disabled";
304	};
305
306	rkisp_vir0: rkisp-vir0 {
307		compatible = "rockchip,rkisp-vir";
308		rockchip,hw = <&rkisp>;
309		dvbm = <&rkdvbm>;
310		status = "disabled";
311	};
312
313	rkisp_vir1: rkisp-vir1 {
314		compatible = "rockchip,rkisp-vir";
315		rockchip,hw = <&rkisp>;
316		status = "disabled";
317	};
318
319	rkisp_vir2: rkisp-vir2 {
320		compatible = "rockchip,rkisp-vir";
321		rockchip,hw = <&rkisp>;
322		status = "disabled";
323	};
324
325	rkisp_vir3: rkisp-vir3 {
326		compatible = "rockchip,rkisp-vir";
327		rockchip,hw = <&rkisp>;
328		status = "disabled";
329	};
330
331	rockchip_system_monitor: rockchip-system-monitor {
332		compatible = "rockchip,system-monitor";
333
334		rockchip,thermal-zone = "soc-thermal";
335	};
336
337	thermal_zones: thermal-zones {
338		soc_thermal: soc-thermal {
339			polling-delay-passive = <20>; /* milliseconds */
340			polling-delay = <1000>; /* milliseconds */
341			sustainable-power = <2100>; /* milliwatts */
342
343			thermal-sensors = <&tsadc 0>;
344			trips {
345				threshold: trip-point-0 {
346					temperature = <75000>;
347					hysteresis = <2000>;
348					type = "passive";
349				};
350				target: trip-point-1 {
351					temperature = <85000>;
352					hysteresis = <2000>;
353					type = "passive";
354				};
355				soc_crit: soc-crit {
356					/* millicelsius */
357					temperature = <115000>;
358					/* millicelsius */
359					hysteresis = <2000>;
360					type = "critical";
361				};
362			};
363		};
364	};
365
366	timer {
367		compatible = "arm,armv7-timer";
368		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
369			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
370		clock-frequency = <24000000>;
371	};
372
373	grf: syscon@ff000000 {
374		compatible = "rockchip,rv1106-grf", "syscon", "simple-mfd";
375		reg = <0xff000000 0x68000>;
376
377		grf_cru: grf-clock-controller {
378			compatible = "rockchip,rv1106-grf-cru";
379			#clock-cells = <1>;
380		};
381
382		reboot_mode: reboot-mode {
383			compatible = "syscon-reboot-mode";
384			offset = <0x20200>;
385			mode-bootloader = <BOOT_BL_DOWNLOAD>;
386			mode-charge = <BOOT_CHARGING>;
387			mode-fastboot = <BOOT_FASTBOOT>;
388			mode-loader = <BOOT_BL_DOWNLOAD>;
389			mode-normal = <BOOT_NORMAL>;
390			mode-recovery = <BOOT_RECOVERY>;
391			mode-ums = <BOOT_UMS>;
392			mode-panic = <BOOT_PANIC>;
393			mode-watchdog = <BOOT_WATCHDOG>;
394		};
395
396		rgb: rgb {
397			compatible = "rockchip,rv1106-rgb";
398			status = "disabled";
399
400			ports {
401				#address-cells = <1>;
402				#size-cells = <0>;
403
404				port@0 {
405					reg = <0>;
406					#address-cells = <1>;
407					#size-cells = <0>;
408
409					rgb_in_vop: endpoint@0 {
410						reg = <0>;
411						remote-endpoint = <&vop_out_rgb>;
412					};
413				};
414			};
415		};
416
417		rknpor_powergood: rknpor-powergood {
418			compatible = "rockchip,rv1106-npor-powergood";
419			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
420			status = "okay";
421		};
422	};
423
424	rtc: rtc@ff1c0000 {
425		compatible = "rockchip,rv1106-rtc";
426		reg = <0xff1c0000 0x1000>;
427		rockchip,grf = <&grf>;
428		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
429		clocks = <&cru PCLK_VI_RTC_PHY>, <&cru PCLK_VI_RTC_TEST>;
430		clock-names = "pclk_phy", "pclk_test";
431		assigned-clocks = <&cru PCLK_VI_RTC_PHY>;
432		assigned-clock-rates = <24000000>;
433		status = "disabled";
434	};
435
436	gic: interrupt-controller@ff1f0000 {
437		compatible = "arm,gic-400";
438		interrupt-controller;
439		#interrupt-cells = <3>;
440		#address-cells = <0>;
441
442		reg = <0xff1f1000 0x1000>,
443		      <0xff1f2000 0x2000>,
444		      <0xff1f4000 0x2000>,
445		      <0xff1f6000 0x2000>;
446		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
447	};
448
449	arm-debug@ff200000 {
450		compatible = "rockchip,debug";
451		reg = <0xff200000 0x1000>;
452	};
453
454	pvtm@ff240000 {
455		compatible = "rockchip,rv1106-core-pvtm";
456		reg = <0xff240000 0x100>;
457		#address-cells = <1>;
458		#size-cells = <0>;
459
460		pvtm@0 {
461			reg = <0>;
462			clocks = <&cru CLK_PVTM_CORE>;
463			clock-names = "clk";
464			resets = <&cru SRST_PVTM_CORE>, <&cru SRST_P_PVTM_CORE>;
465			reset-names = "rst", "rst-p";
466		};
467	};
468
469	pmu: power-management@ff300000 {
470		compatible = "rockchip,rv1106-pmu", "syscon";
471		reg = <0xff300000 0x1000>;
472	};
473
474	i2c0: i2c@ff310000 {
475		compatible = "rockchip,rv1106-i2c", "rockchip,rk3399-i2c";
476		reg = <0xff310000 0x1000>;
477		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
478		#address-cells = <1>;
479		#size-cells = <0>;
480		clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
481		clock-names = "i2c", "pclk";
482		pinctrl-names = "default";
483		pinctrl-0 = <&i2c0m0_xfer>;
484		status = "disabled";
485	};
486
487	i2c1: i2c@ff320000 {
488		compatible = "rockchip,rv1106-i2c", "rockchip,rk3399-i2c";
489		reg = <0xff320000 0x1000>;
490		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
491		#address-cells = <1>;
492		#size-cells = <0>;
493		clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
494		clock-names = "i2c", "pclk";
495		pinctrl-names = "default";
496		pinctrl-0 = <&i2c1m0_xfer>;
497		status = "disabled";
498	};
499
500	dsm: codec-digital@ff340000 {
501		compatible = "rockchip,rv1106-codec-digital", "rockchip,codec-digital-v1";
502		reg = <0xff340000 0x1000>;
503		clocks = <&cru MCLK_DSM>, <&cru PCLK_DSM>;
504		clock-names = "dac", "pclk";
505		resets = <&cru SRST_M_DSM>;
506		reset-names = "reset" ;
507		rockchip,grf = <&grf>;
508		rockchip,pwm-output-mode;
509		#sound-dai-cells = <0>;
510		pinctrl-names = "default";
511		pinctrl-0 = <&dsmaudio_pins>;
512		status = "disabled";
513	};
514
515	pwm0: pwm@ff350000 {
516		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
517		reg = <0xff350000 0x10>;
518		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
519		#pwm-cells = <3>;
520		pinctrl-names = "active";
521		pinctrl-0 = <&pwm0m0_pins>;
522		clocks = <&cru CLK_PWM0_PERI>, <&cru PCLK_PWM0_PERI>;
523		clock-names = "pwm", "pclk";
524		status = "disabled";
525	};
526
527	pwm1: pwm@ff350010 {
528		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
529		reg = <0xff350010 0x10>;
530		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
531		#pwm-cells = <3>;
532		pinctrl-names = "active";
533		pinctrl-0 = <&pwm1m0_pins>;
534		clocks = <&cru CLK_PWM0_PERI>, <&cru PCLK_PWM0_PERI>;
535		clock-names = "pwm", "pclk";
536		status = "disabled";
537	};
538
539	pwm2: pwm@ff350020 {
540		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
541		reg = <0xff350020 0x10>;
542		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
543		#pwm-cells = <3>;
544		pinctrl-names = "active";
545		pinctrl-0 = <&pwm2m0_pins>;
546		clocks = <&cru CLK_PWM0_PERI>, <&cru PCLK_PWM0_PERI>;
547		clock-names = "pwm", "pclk";
548		status = "disabled";
549	};
550
551	pwm3: pwm@ff350030 {
552		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
553		reg = <0xff350030 0x10>;
554		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
555			     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
556		#pwm-cells = <3>;
557		pinctrl-names = "active";
558		pinctrl-0 = <&pwm3m0_pins>;
559		clocks = <&cru CLK_PWM0_PERI>, <&cru PCLK_PWM0_PERI>;
560		clock-names = "pwm", "pclk";
561		status = "disabled";
562	};
563
564	pwm4: pwm@ff360000 {
565		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
566		reg = <0xff360000 0x10>;
567		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
568		#pwm-cells = <3>;
569		pinctrl-names = "active";
570		pinctrl-0 = <&pwm4m0_pins>;
571		clocks = <&cru CLK_PWM1_PERI>, <&cru PCLK_PWM1_PERI>;
572		clock-names = "pwm", "pclk";
573		status = "disabled";
574	};
575
576	pwm5: pwm@ff360010 {
577		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
578		reg = <0xff360010 0x10>;
579		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
580		#pwm-cells = <3>;
581		pinctrl-names = "active";
582		pinctrl-0 = <&pwm5m0_pins>;
583		clocks = <&cru CLK_PWM1_PERI>, <&cru PCLK_PWM1_PERI>;
584		clock-names = "pwm", "pclk";
585		status = "disabled";
586	};
587
588	pwm6: pwm@ff360020 {
589		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
590		reg = <0xff360020 0x10>;
591		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
592		#pwm-cells = <3>;
593		pinctrl-names = "active";
594		pinctrl-0 = <&pwm6m0_pins>;
595		clocks = <&cru CLK_PWM1_PERI>, <&cru PCLK_PWM1_PERI>;
596		clock-names = "pwm", "pclk";
597		status = "disabled";
598	};
599
600	pwm7: pwm@ff360030 {
601		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
602		reg = <0xff360030 0x10>;
603		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
604			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
605		#pwm-cells = <3>;
606		pinctrl-names = "active";
607		pinctrl-0 = <&pwm7m0_pins>;
608		clocks = <&cru CLK_PWM1_PERI>, <&cru PCLK_PWM1_PERI>;
609		clock-names = "pwm", "pclk";
610		status = "disabled";
611	};
612
613	pmu_mailbox: mailbox@ff378000 {
614		compatible = "rockchip,rv1106-mailbox",
615			     "rockchip,rk3368-mailbox";
616		reg = <0xff378000 0x200>;
617		interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
618		clocks = <&cru PCLK_PMU_MAILBOX>;
619		clock-names = "pclk_mailbox";
620		#mbox-cells = <1>;
621		status = "disabled";
622	};
623
624	pmuioc: syscon@ff388000 {
625		compatible = "rockchip,rv1106-pmuioc", "syscon";
626		reg = <0xff388000 0x1000>;
627	};
628
629	pvtm@ff390000 {
630		compatible = "rockchip,rv1106-pmu-pvtm";
631		reg = <0xff390000 0x100>;
632		#address-cells = <1>;
633		#size-cells = <0>;
634
635		pvtm@0 {
636			reg = <1>;
637			clocks = <&cru CLK_PVTM_PMU>, <&cru PCLK_PVTM_PMU>;
638			clock-names = "clk", "pclk";
639			resets = <&cru SRST_PVTM_PMU>, <&cru SRST_P_PVTM_PMU>;
640			reset-names = "rst", "rst-p";
641		};
642	};
643
644	cru: clock-controller@ff3a0000 {
645		compatible = "rockchip,rv1106-cru";
646		reg = <0xff3a0000 0x20000>;
647		rockchip,grf = <&grf>;
648		#clock-cells = <1>;
649		#reset-cells = <1>;
650
651		assigned-clocks =
652			<&cru PLL_GPLL>, <&cru PLL_CPLL>,
653			<&cru ARMCLK>,
654			<&cru ACLK_PERI_ROOT>, <&cru HCLK_PERI_ROOT>,
655			<&cru PCLK_PERI_ROOT>, <&cru ACLK_BUS_ROOT>,
656			<&cru PCLK_TOP_ROOT>, <&cru PCLK_PMU_ROOT>,
657			<&cru HCLK_PMU_ROOT>;
658		assigned-clock-rates =
659			<1188000000>, <1000000000>,
660			<1104000000>,
661			<400000000>, <200000000>,
662			<100000000>, <300000000>,
663			<100000000>, <100000000>,
664			<200000000>;
665	};
666
667	saradc: saradc@ff3c0000 {
668		compatible = "rockchip,rv1106-saradc";
669		reg = <0xff3c0000 0x200>;
670		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
671		#io-channel-cells = <1>;
672		clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
673		clock-names = "saradc", "apb_pclk";
674		resets = <&cru SRST_P_SARADC>;
675		reset-names = "saradc-apb";
676		status = "disabled";
677	};
678
679	tsadc: tsadc@ff3c8000 {
680		compatible = "rockchip,rv1106-tsadc";
681		reg = <0xff3c8000 0x1000>;
682		rockchip,grf = <&grf>;
683		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
684		clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>, <&cru CLK_TSADC_TSEN>;
685		clock-names = "tsadc", "apb_pclk", "tsen";
686		assigned-clocks = <&cru CLK_TSADC>, <&cru CLK_TSADC_TSEN>;
687		assigned-clock-rates = <1000000>, <12000000>;
688		resets = <&cru SRST_TSADC>, <&cru SRST_P_TSADC>;
689		reset-names = "tsadc", "tsadc-apb";
690		#thermal-sensor-cells = <1>;
691		rockchip,hw-tshut-temp = <120000>;
692		rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
693		rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
694		status = "disabled";
695	};
696
697	otp: otp@ff3d0000 {
698		compatible = "rockchip,rv1106-otp";
699		reg = <0xff3d0000 0x4000>;
700		#address-cells = <1>;
701		#size-cells = <1>;
702		clocks = <&cru CLK_USER_OTPC_NS>, <&cru CLK_SBPI_OTPC_NS>,
703			 <&cru PCLK_OTPC_NS>, <&cru PCLK_OTP_MASK>,
704			 <&cru CLK_OTPC_ARB>, <&cru CLK_PMC_OTP>;
705		clock-names = "usr", "sbpi", "apb", "phy", "arb", "pmc";
706		resets = <&cru SRST_USER_OTPC_NS>, <&cru SRST_SBPI_OTPC_NS>,
707			 <&cru SRST_P_OTPC_NS>, <&cru SRST_P_OTP_MASK>,
708			 <&cru SRST_OTPC_ARB>, <&cru SRST_PMC_OTP>;
709		reset-names = "usr", "sbpi", "apb", "phy", "arb", "pmc";
710
711		/* Data cells */
712		cpu_code: cpu-code@2 {
713			reg = <0x02 0x2>;
714		};
715		otp_cpu_version: cpu-version@8 {
716			reg = <0x08 0x1>;
717			bits = <3 3>;
718		};
719		otp_id: id@a {
720			reg = <0x0a 0x10>;
721		};
722		cpu_leakage: cpu-leakage@1a {
723			reg = <0x1a 0x1>;
724		};
725		log_leakage: log-leakage@1b {
726			reg = <0x1b 0x1>;
727		};
728		macphy_bgs: macphy-bgs@2d {
729			reg = <0x2d 0x1>;
730		};
731		macphy_txlevel: macphy-txlevel@2e {
732			reg = <0x2e 0x2>;
733		};
734	};
735
736	u2phy: usb2-phy@ff3e0000 {
737		compatible = "rockchip,rv1106-usb2phy";
738		reg = <0xff3e0000 0x8000>;
739		rockchip,usbgrf = <&grf>;
740		clocks = <&cru CLK_REF_USBPHY>, <&cru PCLK_USBPHY>;
741		clock-names = "phyclk", "pclk";
742		resets = <&cru SRST_USBPHY_POR>, <&cru SRST_P_USBPHY>;
743		reset-names = "u2phy", "u2phy-apb";
744		#clock-cells = <0>;
745		status = "disabled";
746
747		u2phy_otg: otg-port {
748			#phy-cells = <0>;
749			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
750				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
751				     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
752				     <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
753			interrupt-names = "otg-bvalid", "otg-id",
754					  "linestate", "disconnect";
755			status = "disabled";
756		};
757	};
758
759	csi2_dphy_hw: csi2-dphy-hw@ff3e8000 {
760		compatible = "rockchip,rv1106-csi2-dphy-hw";
761		reg = <0xff3e8000 0x8000>;
762		clocks = <&cru PCLK_MIPICSIPHY>;
763		clock-names = "pclk";
764		resets = <&cru SRST_P_MIPICSIPHY>;
765		reset-names = "srst_p_csiphy";
766		rockchip,grf = <&grf>;
767		status = "disabled";
768	};
769
770	dmac: dma-controller@ff420000 {
771		compatible = "arm,pl330", "arm,primecell";
772		reg = <0xff420000 0x4000>;
773		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
774			     <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
775			     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
776			     <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
777			     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
778			     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
779			     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
780			     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
781			     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
782		#dma-cells = <1>;
783		clocks = <&cru ACLK_DMAC>;
784		clock-names = "apb_pclk";
785		arm,pl330-periph-burst;
786	};
787
788	crypto: crypto@ff440000 {
789		compatible = "rockchip,crypto-v3";
790		reg = <0xff440000 0x2000>;
791		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
792		clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
793			 <&cru CLK_CORE_CRYPTO>, <&cru CLK_PKA_CRYPTO>;
794		clock-names = "aclk", "hclk", "sclk", "pka";
795		assigned-clocks = <&cru CLK_CORE_CRYPTO>, <&cru CLK_PKA_CRYPTO>;
796		assigned-clock-rates = <200000000>, <200000000>;
797		resets = <&cru SRST_CORE_CRYPTO>;
798		reset-names = "crypto-rst";
799		status = "disabled";
800	};
801
802	rng: rng@ff448000 {
803		compatible = "rockchip,trngv1";
804		reg = <0xff448000 0x200>;
805		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
806		clocks = <&cru HCLK_TRNG_NS>;
807		clock-names = "hclk_trng";
808		resets = <&cru SRST_H_TRNG_NS>;
809		reset-names = "reset";
810		status = "disabled";
811	};
812
813	i2c2: i2c@ff450000 {
814		compatible = "rockchip,rv1106-i2c", "rockchip,rk3399-i2c";
815		reg = <0xff450000 0x1000>;
816		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
817		#address-cells = <1>;
818		#size-cells = <0>;
819		clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
820		clock-names = "i2c", "pclk";
821		pinctrl-names = "default";
822		pinctrl-0 = <&i2c2m0_xfer>;
823		status = "disabled";
824	};
825
826	i2c3: i2c@ff460000 {
827		compatible = "rockchip,rv1106-i2c", "rockchip,rk3399-i2c";
828		reg = <0xff460000 0x1000>;
829		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
830		#address-cells = <1>;
831		#size-cells = <0>;
832		clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
833		clock-names = "i2c", "pclk";
834		pinctrl-names = "default";
835		pinctrl-0 = <&i2c3m0_xfer>;
836		status = "disabled";
837	};
838
839	i2c4: i2c@ff470000 {
840		compatible = "rockchip,rv1106-i2c", "rockchip,rk3399-i2c";
841		reg = <0xff470000 0x1000>;
842		interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
843		#address-cells = <1>;
844		#size-cells = <0>;
845		clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
846		clock-names = "i2c", "pclk";
847		pinctrl-names = "default";
848		pinctrl-0 = <&i2c4m0_xfer>;
849		status = "disabled";
850	};
851
852	acodec: acodec@ff480000 {
853		compatible = "rockchip,rv1106-codec";
854		reg = <0xff480000 0x1000>;
855		rockchip,grf = <&grf>;
856		clocks = <&cru PCLK_ACODEC>,
857			 <&cru MCLK_ACODEC_TX>,
858			 <&cru MCLK_I2S0_8CH_TX>;
859		clock-names = "pclk_acodec", "mclk_acodec", "mclk_cpu";
860		resets = <&cru SRST_P_ACODEC>;
861		reset-names = "acodec-reset";
862		acodec,micbias;
863		init-mic-gain = <0x22>; /* Left:20dB Right:20dB */
864		status = "disabled";
865	};
866
867	pwm8: pwm@ff490000 {
868		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
869		reg = <0xff490000 0x10>;
870		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
871		#pwm-cells = <3>;
872		pinctrl-names = "active";
873		pinctrl-0 = <&pwm8m0_pins>;
874		clocks = <&cru CLK_PWM2_PERI>, <&cru PCLK_PWM2_PERI>;
875		clock-names = "pwm", "pclk";
876		status = "disabled";
877	};
878
879	pwm9: pwm@ff490010 {
880		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
881		reg = <0xff490010 0x10>;
882		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
883		#pwm-cells = <3>;
884		pinctrl-names = "active";
885		pinctrl-0 = <&pwm9m0_pins>;
886		clocks = <&cru CLK_PWM2_PERI>, <&cru PCLK_PWM2_PERI>;
887		clock-names = "pwm", "pclk";
888		status = "disabled";
889	};
890
891	pwm10: pwm@ff490020 {
892		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
893		reg = <0xff490020 0x10>;
894		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
895		#pwm-cells = <3>;
896		pinctrl-names = "active";
897		pinctrl-0 = <&pwm10m0_pins>;
898		clocks = <&cru CLK_PWM2_PERI>, <&cru PCLK_PWM2_PERI>;
899		clock-names = "pwm", "pclk";
900		status = "disabled";
901	};
902
903	pwm11: pwm@ff490030 {
904		compatible = "rockchip,rv1106-pwm", "rockchip,rk3328-pwm";
905		reg = <0xff490030 0x10>;
906		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
907			     <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
908		#pwm-cells = <3>;
909		pinctrl-names = "active";
910		pinctrl-0 = <&pwm11m0_pins>;
911		clocks = <&cru CLK_PWM2_PERI>, <&cru PCLK_PWM2_PERI>;
912		clock-names = "pwm", "pclk";
913		status = "disabled";
914	};
915
916	uart0: serial@ff4a0000 {
917		compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
918		reg = <0xff4a0000 0x100>;
919		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
920		reg-shift = <2>;
921		reg-io-width = <4>;
922		dmas = <&dmac 7>, <&dmac 6>;
923		clock-frequency = <24000000>;
924		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
925		clock-names = "baudclk", "apb_pclk";
926		pinctrl-names = "default";
927		pinctrl-0 = <&uart0m0_xfer>;
928		status = "disabled";
929	};
930
931	uart1: serial@ff4b0000 {
932		compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
933		reg = <0xff4b0000 0x100>;
934		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
935		reg-shift = <2>;
936		reg-io-width = <4>;
937		dmas = <&dmac 9>, <&dmac 8>;
938		clock-frequency = <24000000>;
939		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
940		clock-names = "baudclk", "apb_pclk";
941		pinctrl-names = "default";
942		pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
943		status = "disabled";
944	};
945
946	uart2: serial@ff4c0000 {
947		compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
948		reg = <0xff4c0000 0x100>;
949		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
950		reg-shift = <2>;
951		reg-io-width = <4>;
952		dmas = <&dmac 11>, <&dmac 10>;
953		clock-frequency = <24000000>;
954		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
955		clock-names = "baudclk", "apb_pclk";
956		pinctrl-names = "default";
957		pinctrl-0 = <&uart2m1_xfer>;
958		status = "disabled";
959	};
960
961	uart3: serial@ff4d0000 {
962		compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
963		reg = <0xff4d0000 0x100>;
964		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
965		reg-shift = <2>;
966		reg-io-width = <4>;
967		dmas = <&dmac 13>, <&dmac 12>;
968		clock-frequency = <24000000>;
969		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
970		clock-names = "baudclk", "apb_pclk";
971		pinctrl-names = "default";
972		pinctrl-0 = <&uart3m0_xfer>;
973		status = "disabled";
974	};
975
976	uart4: serial@ff4e0000 {
977		compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
978		reg = <0xff4e0000 0x100>;
979		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
980		reg-shift = <2>;
981		reg-io-width = <4>;
982		dmas = <&dmac 15>, <&dmac 14>;
983		clock-frequency = <24000000>;
984		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
985		clock-names = "baudclk", "apb_pclk";
986		pinctrl-names = "default";
987		pinctrl-0 = <&uart4m0_xfer>;
988		status = "disabled";
989	};
990
991	uart5: serial@ff4f0000 {
992		compatible = "rockchip,rv1106-uart", "snps,dw-apb-uart";
993		reg = <0xff4f0000 0x100>;
994		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
995		reg-shift = <2>;
996		reg-io-width = <4>;
997		dmas = <&dmac 17>, <&dmac 16>;
998		clock-frequency = <24000000>;
999		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
1000		clock-names = "baudclk", "apb_pclk";
1001		pinctrl-names = "default";
1002		pinctrl-0 = <&uart5m0_xfer &uart5m0_ctsn &uart5m0_rtsn>;
1003		status = "disabled";
1004	};
1005
1006	spi0: spi@ff500000 {
1007		compatible = "rockchip,rv1106-spi", "rockchip,rk3066-spi";
1008		reg = <0xff500000 0x1000>;
1009		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1010		#address-cells = <1>;
1011		#size-cells = <0>;
1012		clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>, <&cru SCLK_IN_SPI0>;
1013		clock-names = "spiclk", "apb_pclk", "sclk_in";
1014		dmas = <&dmac 1>, <&dmac 0>;
1015		dma-names = "tx", "rx";
1016		pinctrl-names = "default";
1017		pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
1018		status = "disabled";
1019	};
1020
1021	spi1: spi@ff510000 {
1022		compatible = "rockchip,rv1106-spi", "rockchip,rk3066-spi";
1023		reg = <0xff510000 0x1000>;
1024		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
1025		#address-cells = <1>;
1026		#size-cells = <0>;
1027		clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
1028		clock-names = "spiclk", "apb_pclk";
1029		assigned-clocks = <&cru CLK_SPI1>;
1030		assigned-clock-rates = <200000000>;
1031		dmas = <&dmac 3>, <&dmac 2>;
1032		dma-names = "tx", "rx";
1033		pinctrl-names = "default";
1034		pinctrl-0 = <&spi1m0_cs0 &spi1m0_cs1 &spi1m0_pins>;
1035		status = "disabled";
1036	};
1037
1038	hw_decompress: decompress@ff520000 {
1039		compatible = "rockchip,hw-decompress";
1040		reg = <0xff520000 0x1000>;
1041		interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1042		clocks = <&cru ACLK_DECOM>, <&cru DCLK_DECOM>, <&cru PCLK_DECOM>;
1043		clock-names = "aclk", "dclk", "pclk";
1044		resets = <&cru SRST_D_DECOM>;
1045		reset-names = "dresetn";
1046		status = "disabled";
1047	};
1048
1049	ioc: syscon@ff538000 {
1050		compatible = "rockchip,rv1106-ioc", "syscon";
1051		reg = <0xff538000 0x40000>;
1052	};
1053
1054	wdt: watchdog@ff5a0000 {
1055		compatible = "rockchip,rv1106-wdt", "snps,dw-wdt";
1056		reg = <0xff5a0000 0x100>;
1057		clocks = <&cru TCLK_WDT_NS>, <&cru PCLK_WDT_NS>;
1058		clock-names = "tclk", "pclk";
1059		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
1060		status = "disabled";
1061	};
1062
1063	mailbox: mailbox@ff5c0000 {
1064		compatible = "rockchip,rv1106-mailbox",
1065			     "rockchip,rk3368-mailbox";
1066		reg = <0xff5c0000 0x200>;
1067		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
1068		clocks = <&cru PCLK_MAILBOX>;
1069		clock-names = "pclk_mailbox";
1070		#mbox-cells = <1>;
1071		status = "disabled";
1072	};
1073
1074	npu: npu@ff660000 {
1075		compatible = "rockchip,rv1106-rknpu";
1076		reg = <0xff660000 0x10000>;
1077		interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
1078		clocks = <&cru ACLK_RKNN>, <&cru HCLK_RKNN>;
1079		clock-names = "aclk", "hclk";
1080		assigned-clocks = <&cru ACLK_RKNN>;
1081		assigned-clock-rates = <420000000>;
1082		resets = <&cru SRST_A_RKNN>, <&cru SRST_H_RKNN>;
1083		reset-names = "srst_a", "srst_h";
1084		status = "disabled";
1085	};
1086
1087	system_sram: sram@ff6c0000 {
1088		compatible = "mmio-sram";
1089		reg = <0xff6c0000 0x40000>;
1090		#address-cells = <1>;
1091		#size-cells = <1>;
1092		ranges = <0 0xff6c0000 0x40000>;
1093		rkisp_sram: rkisp-sram@0 {
1094			reg = <0x0 0x3f000>;
1095		};
1096		hpmcu_sram: hpmcu-sram@3f000 {
1097			reg = <0x3f000 0x1000>;
1098		};
1099	};
1100
1101	rga2: rga@ff980000 {
1102		compatible = "rockchip,rga2_core0";
1103		reg = <0xff980000 0x1000>;
1104		interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1105		clocks = <&cru ACLK_RGA2E>, <&cru HCLK_RGA2E>, <&cru CLK_CORE_RGA2E>;
1106		clock-names = "aclk_rga2", "hclk_rga2", "clk_rga2";
1107		status = "disabled";
1108	};
1109
1110	vop: vop@ff990000 {
1111		compatible = "rockchip,rv1106-vop";
1112		reg = <0xff990000 0x200>;
1113		reg-names = "regs";
1114		rockchip,grf = <&grf>;
1115		interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1116		clocks = <&cru ACLK_VOP>, <&cru DCLK_VOP>, <&cru HCLK_VOP>;
1117		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1118		status = "disabled";
1119
1120		vop_out: port {
1121			#address-cells = <1>;
1122			#size-cells = <0>;
1123
1124			vop_out_rgb: endpoint@0 {
1125				reg = <0>;
1126				remote-endpoint = <&rgb_in_vop>;
1127			};
1128		};
1129	};
1130
1131	sdio: mmc@ff9a0000 {
1132		compatible = "rockchip,rv1106-dw-mshc", "rockchip,rk3288-dw-mshc";
1133		reg = <0xff9a0000 0x4000>;
1134		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
1135		clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>,
1136			 <&grf_cru SCLK_SDIO_DRV>, <&grf_cru SCLK_SDIO_SAMPLE>;
1137		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1138		fifo-depth = <0x100>;
1139		max-frequency = <200000000>;
1140		status = "disabled";
1141	};
1142
1143	rkisp: rkisp@ffa00000 {
1144		compatible = "rockchip,rv1106-rkisp";
1145		reg = <0xffa00000 0x7f00>;
1146		interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1147			     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1148			     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1149		interrupt-names = "isp_irq", "mi_irq", "mipi_irq";
1150		clocks = <&cru ACLK_ISP3P2>, <&cru HCLK_ISP3P2>,
1151			 <&cru CLK_CORE_ISP3P2>, <&cru ISP0CLK_VICAP>;
1152		clock-names = "aclk_isp", "hclk_isp",
1153			      "clk_isp_core", "clk_isp_core_vicap";
1154		rockchip,sram = <&rkisp_sram>;
1155		status = "disabled";
1156	};
1157
1158	rkcif: rkcif@ffa10000 {
1159		compatible = "rockchip,rv1106-cif";
1160		reg = <0xffa10000 0x10000>;
1161		reg-names = "cif_regs";
1162		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
1163		interrupt-names = "cif-intr";
1164		clocks = <&cru ACLK_VICAP>, <&cru HCLK_VICAP>,
1165			 <&cru DCLK_VICAP>, <&cru PCLK_VICAP>,
1166			 <&cru I0CLK_VICAP>, <&cru I1CLK_VICAP>,
1167			 <&cru RX0PCLK_VICAP>, <&cru RX1PCLK_VICAP>,
1168			 <&cru ISP0CLK_VICAP>, <&cru SCLK_VICAP_M0>,
1169			 <&cru SCLK_VICAP_M1>, <&cru PCLK_VICAP_VEPU>;
1170		clock-names = "aclk_cif","hclk_cif",
1171			      "dclk_cif", "pclk_cif",
1172			      "i0clk_cif", "i1clk_cif",
1173			      "rx0clk_cif", "rx1clk_cif",
1174			      "isp0clk_cif", "sclk_m0_cif",
1175			      "sclk_m1_cif", "pclk_vepu_cif";
1176		resets = <&cru SRST_A_VICAP>, <&cru SRST_H_VICAP>,
1177			 <&cru SRST_D_VICAP>, <&cru SRST_P_VICAP>,
1178			 <&cru SRST_VICAP_I0>, <&cru SRST_VICAP_I1>,
1179			 <&cru SRST_VICAP_RX0>, <&cru SRST_VICAP_RX1>,
1180			 <&cru SRST_VICAP_ISP0>, <&cru SRST_P_VICAP_VEPU>;
1181		reset-names = "rst_cif_a","rst_cif_h",
1182			      "rst_cif_d", "rst_cif_p",
1183			      "rst_cif_i0", "rst_cif_i1",
1184			      "rst_cif_rx0", "rst_cif_rx1",
1185			      "rst_cif_isp0", "rst_cif_pclk_vepu";
1186		rockchip,grf = <&grf>;
1187		status = "disabled";
1188	};
1189
1190	mipi0_csi2_hw: mipi-csi2-hw@ffa20000 {
1191		compatible = "rockchip,rv1106-mipi-csi2-hw";
1192		reg = <0xffa20000 0x10000>;
1193		reg-names = "csihost_regs";
1194		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1195			     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1196		interrupt-names = "csi-intr1", "csi-intr2";
1197		clocks = <&cru PCLK_CSIHOST0>, <&cru CLK_RXBYTECLKHS_0>;
1198		clock-names = "pclk_csi2host", "clk_rxbyte_hs";
1199		resets = <&cru SRST_P_CSIHOST0>;
1200		reset-names = "srst_csihost_p";
1201		status = "okay";
1202	};
1203
1204	mipi1_csi2_hw: mipi-csi2-hw@ffa30000 {
1205		compatible = "rockchip,rv1106-mipi-csi2-hw";
1206		reg = <0xffa30000 0x10000>;
1207		reg-names = "csihost_regs";
1208		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1209			     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
1210		interrupt-names = "csi-intr1", "csi-intr2";
1211		clocks = <&cru PCLK_CSIHOST1>, <&cru CLK_RXBYTECLKHS_1>;
1212		clock-names = "pclk_csi2host", "clk_rxbyte_hs";
1213		resets = <&cru SRST_P_CSIHOST1>;
1214		reset-names = "srst_csihost_p";
1215		status = "okay";
1216	};
1217
1218	rkvenc: rkvenc@ffa50000 {
1219		compatible = "rockchip,rkv-encoder-rv1106";
1220		reg = <0xffa50000 0x6000>;
1221		interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1222		interrupt-names = "irq_rkvenc";
1223		clocks = <&cru ACLK_VEPU>, <&cru HCLK_VEPU>, <&cru CLK_CORE_VEPU>;
1224		clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
1225		rockchip,normal-rates = <300000000>, <0>, <410000000>;
1226		assigned-clocks = <&cru ACLK_VEPU>, <&cru CLK_CORE_VEPU>;
1227		assigned-clock-rates = <300000000>, <400000000>;
1228		resets = <&cru SRST_A_VEPU>, <&cru SRST_H_VEPU>, <&cru SRST_CORE_VEPU>;
1229		reset-names = "video_a", "video_h", "video_core";
1230		rockchip,srv = <&mpp_srv>;
1231		rockchip,taskqueue-node = <0>;
1232		dvbm = <&rkdvbm>;
1233		status = "disabled";
1234	};
1235
1236	rkvenc_pp: rkvenc-pp@ffa60000 {
1237		compatible = "rockchip,rkvenc-pp-rv1106";
1238		reg = <0xffa60000 0x900>;
1239		interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1240		interrupt-names = "irq_rkvenc_pp";
1241		clocks = <&cru ACLK_VEPU_PP>, <&cru HCLK_VEPU_PP>;
1242		clock-names = "aclk_vepu_pp", "hclk_vepu_pp";
1243		assigned-clocks = <&cru ACLK_VEPU_PP>, <&cru HCLK_VEPU_PP>;
1244		resets = <&cru SRST_A_VEPU_PP>, <&cru SRST_H_VEPU_PP>;
1245		rockchip,srv = <&mpp_srv>;
1246		rockchip,taskqueue-node = <1>;
1247		status = "disabled";
1248	};
1249
1250	rkdvbm: rkdvbm@ffa70000 {
1251		compatible = "rockchip,rk-dvbm";
1252		reg = <0xffa70000 0x90>;
1253		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
1254		interrupt-names = "irq_rkdvbm";
1255		clocks = <&cru CLK_CORE_VEPU_DVBM>;
1256		clock-names = "clk_core";
1257		assigned-clocks = <&cru CLK_CORE_VEPU_DVBM>;
1258		assigned-clock-rates = <200000000>;
1259		resets = <&cru SRST_CORE_VEPU_DVBM>;
1260		reset-names = "dvbm_rst";
1261		status = "disabled";
1262	};
1263
1264	gmac: ethernet@ffa80000 {
1265		compatible = "rockchip,rv1106-gmac", "snps,dwmac-4.20a";
1266		reg = <0xffa80000 0x10000>;
1267		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
1268			     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1269		interrupt-names = "macirq", "eth_wake_irq";
1270		rockchip,grf = <&grf>;
1271		clocks = <&cru CLK_GMAC0_TX_50M_O>, <&cru CLK_GMAC0_REF_50M>,
1272			 <&cru ACLK_MAC>, <&cru PCLK_MAC>;
1273		clock-names = "stmmaceth", "clk_mac_ref",
1274			      "aclk_mac", "pclk_mac";
1275		resets = <&cru SRST_A_MAC>;
1276		reset-names = "stmmaceth";
1277
1278		snps,mixed-burst;
1279		snps,tso;
1280
1281		tx-dma-size = <256>;
1282		rx-dma-size = <128>;
1283
1284		snps,axi-config = <&stmmac_axi_setup>;
1285		snps,mtl-rx-config = <&mtl_rx_setup>;
1286		snps,mtl-tx-config = <&mtl_tx_setup>;
1287
1288		phy-mode = "rmii";
1289		clock_in_out = "input";
1290		phy-handle = <&rmii_phy>;
1291
1292		/* FLOW_OFF: 0, FLOW_RX: 1, FLOW_TX: 2, FLOW_AUTO: 3 */
1293		snps,flow-ctrl = <0>;
1294
1295		nvmem-cells = <&macphy_bgs>;
1296		nvmem-cell-names = "bgs";
1297		status = "disabled";
1298
1299		mdio: mdio {
1300			compatible = "snps,dwmac-mdio";
1301			#address-cells = <0x1>;
1302			#size-cells = <0x0>;
1303			rmii_phy: ethernet-phy@2 {
1304				compatible = "ethernet-phy-id0044.1400", "ethernet-phy-ieee802.3-c22";
1305				reg = <2>;
1306				clocks = <&cru CLK_MACPHY>;
1307				resets = <&cru SRST_MACPHY>;
1308				phy-is-integrated;
1309				nvmem-cells = <&macphy_txlevel>;
1310				nvmem-cell-names = "txlevel";
1311				bgs,increment = <2>;
1312			};
1313		};
1314
1315		stmmac_axi_setup: stmmac-axi-config {
1316			snps,wr_osr_lmt = <4>;
1317			snps,rd_osr_lmt = <8>;
1318			snps,blen = <0 0 0 0 16 8 4>;
1319		};
1320
1321		mtl_rx_setup: rx-queues-config {
1322			snps,rx-queues-to-use = <1>;
1323			queue0 {
1324				status = "okay";
1325			};
1326		};
1327
1328		mtl_tx_setup: tx-queues-config {
1329			snps,tx-queues-to-use = <1>;
1330			queue0 {
1331				status = "okay";
1332			};
1333		};
1334	};
1335
1336	emmc: mmc@ffa90000 {
1337		compatible = "rockchip,rv1106-dw-mshc", "rockchip,rk3288-dw-mshc";
1338		reg = <0xffa90000 0x4000>;
1339		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1340		clocks = <&cru HCLK_EMMC>, <&cru CCLK_SRC_EMMC>,
1341			 <&grf_cru SCLK_EMMC_DRV>, <&grf_cru SCLK_EMMC_SAMPLE>;
1342		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1343		fifo-depth = <0x100>;
1344		max-frequency = <200000000>;
1345		rockchip,use-v2-tuning;
1346		status = "disabled";
1347	};
1348
1349	sdmmc: mmc@ffaa0000 {
1350		compatible = "rockchip,rv1106-dw-mshc", "rockchip,rk3288-dw-mshc";
1351		reg = <0xffaa0000 0x4000>;
1352		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
1353		clocks = <&cru HCLK_SDMMC>, <&cru CCLK_SRC_SDMMC>,
1354			 <&grf_cru SCLK_SDMMC_DRV>, <&grf_cru SCLK_SDMMC_SAMPLE>;
1355		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
1356		fifo-depth = <0x100>;
1357		max-frequency = <200000000>;
1358		status = "disabled";
1359	};
1360
1361	sfc: spi@ffac0000 {
1362		compatible = "rockchip,sfc";
1363		reg = <0xffac0000 0x4000>;
1364		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
1365		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
1366		clock-names = "clk_sfc", "hclk_sfc";
1367		assigned-clocks = <&cru SCLK_SFC>;
1368		assigned-clock-rates = <75000000>;
1369		#address-cells = <1>;
1370		#size-cells = <0>;
1371		status = "disabled";
1372	};
1373
1374	rve: rve@ffad0000 {
1375		compatible = "rockchip,rve";
1376		reg = <0xffad0000 0x1000>;
1377		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1378		clocks = <&cru ACLK_IVE>, <&cru HCLK_IVE>;
1379		clock-names = "aclk_rve", "hclk_rve";
1380		status = "disabled";
1381	};
1382
1383	i2s0_8ch: i2s@ffae0000 {
1384		compatible = "rockchip,rv1106-i2s-tdm";
1385		reg = <0xffae0000 0x1000>;
1386		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1387		clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0>;
1388		clock-names = "mclk_tx", "mclk_rx", "hclk";
1389		dmas = <&dmac 22>, <&dmac 21>;
1390		dma-names = "tx", "rx";
1391		resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
1392		reset-names = "tx-m", "rx-m";
1393		rockchip,clk-trcm = <1>;
1394		#sound-dai-cells = <0>;
1395		status = "disabled";
1396	};
1397
1398	usbdrd: usbdrd {
1399		compatible = "rockchip,rv1106-dwc3", "rockchip,rk3399-dwc3";
1400		clocks = <&cru CLK_REF_USBOTG>, <&cru CLK_UTMI_USBOTG>,
1401			 <&cru ACLK_USBOTG>;
1402		clock-names = "ref", "utmi", "bus";
1403		#address-cells = <1>;
1404		#size-cells = <1>;
1405		ranges;
1406		status = "disabled";
1407
1408		usbdrd_dwc3: usb@ffb00000 {
1409			compatible = "snps,dwc3";
1410			reg = <0xffb00000 0x100000>;
1411			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
1412			resets = <&cru SRST_A_USBOTG>;
1413			reset-names = "usb3-otg";
1414			dr_mode = "otg";
1415			maximum-speed = "high-speed";
1416			phys = <&u2phy_otg>;
1417			phy-names = "usb2-phy";
1418			phy_type = "utmi_wide";
1419			snps,dis_enblslpm_quirk;
1420			snps,dis-u2-freeclk-exists-quirk;
1421			snps,dis_u2_susphy_quirk;
1422			snps,dis-del-phy-power-chg-quirk;
1423			snps,dis-tx-ipgap-linecheck-quirk;
1424			snps,usb2-gadget-lpm-disable;
1425			snps,usb2-lpm-disable;
1426			status = "disabled";
1427		};
1428	};
1429
1430	pinctrl: pinctrl {
1431		compatible = "rockchip,rv1106-pinctrl";
1432		rockchip,grf = <&ioc>;
1433		rockchip,pmu = <&pmuioc>;
1434		#address-cells = <1>;
1435		#size-cells = <1>;
1436		ranges;
1437
1438		gpio0: gpio@ff380000 {
1439			compatible = "rockchip,gpio-bank";
1440			reg = <0xff380000 0x100>;
1441			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1442			clocks = <&cru PCLK_PMU_GPIO0>, <&cru DBCLK_PMU_GPIO0>;
1443
1444			gpio-controller;
1445			#gpio-cells = <2>;
1446			gpio-ranges = <&pinctrl 0 0 32>;
1447			interrupt-controller;
1448			#interrupt-cells = <2>;
1449		};
1450
1451		gpio1: gpio@ff530000 {
1452			compatible = "rockchip,gpio-bank";
1453			reg = <0xff530000 0x100>;
1454			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1455			clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
1456
1457			gpio-controller;
1458			#gpio-cells = <2>;
1459			gpio-ranges = <&pinctrl 0 32 32>;
1460			interrupt-controller;
1461			#interrupt-cells = <2>;
1462		};
1463
1464		gpio2: gpio@ff540000 {
1465			compatible = "rockchip,gpio-bank";
1466			reg = <0xff540000 0x100>;
1467			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1468			clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
1469
1470			gpio-controller;
1471			#gpio-cells = <2>;
1472			gpio-ranges = <&pinctrl 0 64 32>;
1473			interrupt-controller;
1474			#interrupt-cells = <2>;
1475		};
1476
1477		gpio3: gpio@ff550000 {
1478			compatible = "rockchip,gpio-bank";
1479			reg = <0xff550000 0x100>;
1480			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1481			clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
1482
1483			gpio-controller;
1484			#gpio-cells = <2>;
1485			gpio-ranges = <&pinctrl 0 96 32>;
1486			interrupt-controller;
1487			#interrupt-cells = <2>;
1488		};
1489
1490		gpio4: gpio@ff560000 {
1491			compatible = "rockchip,gpio-bank";
1492			reg = <0xff560000 0x100>;
1493			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1494			clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
1495
1496			gpio-controller;
1497			#gpio-cells = <2>;
1498			gpio-ranges = <&pinctrl 0 128 32>;
1499			interrupt-controller;
1500			#interrupt-cells = <2>;
1501		};
1502	};
1503};
1504
1505#include "rv1106-pinctrl.dtsi"
1506