1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
4 *
5 */
6
7#include <dt-bindings/clock/rk3308-cru.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/soc/rockchip,boot-mode.h>
13#include <dt-bindings/thermal/thermal.h>
14
15/ {
16	compatible = "rockchip,rk3308";
17
18	interrupt-parent = <&gic>;
19	#address-cells = <2>;
20	#size-cells = <2>;
21
22	aliases {
23		i2c0 = &i2c0;
24		i2c1 = &i2c1;
25		i2c2 = &i2c2;
26		i2c3 = &i2c3;
27		serial0 = &uart0;
28		serial1 = &uart1;
29		serial2 = &uart2;
30		serial3 = &uart3;
31		serial4 = &uart4;
32		spi0 = &spi0;
33		spi1 = &spi1;
34		spi2 = &spi2;
35	};
36
37	cpus {
38		#address-cells = <2>;
39		#size-cells = <0>;
40
41		cpu0: cpu@0 {
42			device_type = "cpu";
43			compatible = "arm,cortex-a35";
44			reg = <0x0 0x0>;
45			enable-method = "psci";
46			clocks = <&cru ARMCLK>;
47			#cooling-cells = <2>;
48			dynamic-power-coefficient = <90>;
49			operating-points-v2 = <&cpu0_opp_table>;
50			cpu-idle-states = <&CPU_SLEEP>;
51			next-level-cache = <&l2>;
52		};
53
54		cpu1: cpu@1 {
55			device_type = "cpu";
56			compatible = "arm,cortex-a35";
57			reg = <0x0 0x1>;
58			enable-method = "psci";
59			operating-points-v2 = <&cpu0_opp_table>;
60			cpu-idle-states = <&CPU_SLEEP>;
61			next-level-cache = <&l2>;
62		};
63
64		cpu2: cpu@2 {
65			device_type = "cpu";
66			compatible = "arm,cortex-a35";
67			reg = <0x0 0x2>;
68			enable-method = "psci";
69			operating-points-v2 = <&cpu0_opp_table>;
70			cpu-idle-states = <&CPU_SLEEP>;
71			next-level-cache = <&l2>;
72		};
73
74		cpu3: cpu@3 {
75			device_type = "cpu";
76			compatible = "arm,cortex-a35";
77			reg = <0x0 0x3>;
78			enable-method = "psci";
79			operating-points-v2 = <&cpu0_opp_table>;
80			cpu-idle-states = <&CPU_SLEEP>;
81			next-level-cache = <&l2>;
82		};
83
84		idle-states {
85			entry-method = "psci";
86
87			CPU_SLEEP: cpu-sleep {
88				compatible = "arm,idle-state";
89				local-timer-stop;
90				arm,psci-suspend-param = <0x0010000>;
91				entry-latency-us = <120>;
92				exit-latency-us = <250>;
93				min-residency-us = <900>;
94			};
95		};
96
97		l2: l2-cache {
98			compatible = "cache";
99		};
100	};
101
102	cpu0_opp_table: cpu0-opp-table {
103		compatible = "operating-points-v2";
104		opp-shared;
105
106		opp-408000000 {
107			opp-hz = /bits/ 64 <408000000>;
108			opp-microvolt = <950000 950000 1340000>;
109			clock-latency-ns = <40000>;
110			opp-suspend;
111		};
112		opp-600000000 {
113			opp-hz = /bits/ 64 <600000000>;
114			opp-microvolt = <950000 950000 1340000>;
115			clock-latency-ns = <40000>;
116		};
117		opp-816000000 {
118			opp-hz = /bits/ 64 <816000000>;
119			opp-microvolt = <1025000 1025000 1340000>;
120			clock-latency-ns = <40000>;
121		};
122		opp-1008000000 {
123			opp-hz = /bits/ 64 <1008000000>;
124			opp-microvolt = <1125000 1125000 1340000>;
125			clock-latency-ns = <40000>;
126		};
127	};
128
129	arm-pmu {
130		compatible = "arm,cortex-a35-pmu";
131		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
132			     <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
133			     <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
134			     <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
135		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
136	};
137
138	mac_clkin: external-mac-clock {
139		compatible = "fixed-clock";
140		clock-frequency = <50000000>;
141		clock-output-names = "mac_clkin";
142		#clock-cells = <0>;
143	};
144
145	psci {
146		compatible = "arm,psci-1.0";
147		method = "smc";
148	};
149
150	timer {
151		compatible = "arm,armv8-timer";
152		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
153			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
154			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
155			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
156	};
157
158	xin24m: xin24m {
159		compatible = "fixed-clock";
160		#clock-cells = <0>;
161		clock-frequency = <24000000>;
162		clock-output-names = "xin24m";
163	};
164
165	grf: grf@ff000000 {
166		compatible = "rockchip,rk3308-grf", "syscon", "simple-mfd";
167		reg = <0x0 0xff000000 0x0 0x08000>;
168
169		reboot-mode {
170			compatible = "syscon-reboot-mode";
171			offset = <0x500>;
172			mode-bootloader = <BOOT_BL_DOWNLOAD>;
173			mode-loader = <BOOT_BL_DOWNLOAD>;
174			mode-normal = <BOOT_NORMAL>;
175			mode-recovery = <BOOT_RECOVERY>;
176			mode-fastboot = <BOOT_FASTBOOT>;
177		};
178	};
179
180	usb2phy_grf: syscon@ff008000 {
181		compatible = "rockchip,rk3308-usb2phy-grf", "syscon", "simple-mfd";
182		reg = <0x0 0xff008000 0x0 0x4000>;
183		#address-cells = <1>;
184		#size-cells = <1>;
185
186		u2phy: usb2phy@100 {
187			compatible = "rockchip,rk3308-usb2phy";
188			reg = <0x100 0x10>;
189			assigned-clocks = <&cru USB480M>;
190			assigned-clock-parents = <&u2phy>;
191			clocks = <&cru SCLK_USBPHY_REF>;
192			clock-names = "phyclk";
193			clock-output-names = "usb480m_phy";
194			#clock-cells = <0>;
195			status = "disabled";
196
197			u2phy_otg: otg-port {
198				interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
199					     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
200					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
201				interrupt-names = "otg-bvalid", "otg-id",
202						  "linestate";
203				#phy-cells = <0>;
204				status = "disabled";
205			};
206
207			u2phy_host: host-port {
208				interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
209				interrupt-names = "linestate";
210				#phy-cells = <0>;
211				status = "disabled";
212			};
213		};
214	};
215
216	detect_grf: syscon@ff00b000 {
217		compatible = "rockchip,rk3308-detect-grf", "syscon", "simple-mfd";
218		reg = <0x0 0xff00b000 0x0 0x1000>;
219		#address-cells = <1>;
220		#size-cells = <1>;
221	};
222
223	core_grf: syscon@ff00c000 {
224		compatible = "rockchip,rk3308-core-grf", "syscon", "simple-mfd";
225		reg = <0x0 0xff00c000 0x0 0x1000>;
226		#address-cells = <1>;
227		#size-cells = <1>;
228	};
229
230	i2c0: i2c@ff040000 {
231		compatible = "rockchip,rk3308-i2c", "rockchip,rk3399-i2c";
232		reg = <0x0 0xff040000 0x0 0x1000>;
233		clocks = <&cru SCLK_I2C0>, <&cru PCLK_I2C0>;
234		clock-names = "i2c", "pclk";
235		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
236		pinctrl-names = "default";
237		pinctrl-0 = <&i2c0_xfer>;
238		#address-cells = <1>;
239		#size-cells = <0>;
240		status = "disabled";
241	};
242
243	i2c1: i2c@ff050000 {
244		compatible = "rockchip,rk3308-i2c", "rockchip,rk3399-i2c";
245		reg = <0x0 0xff050000 0x0 0x1000>;
246		clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
247		clock-names = "i2c", "pclk";
248		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
249		pinctrl-names = "default";
250		pinctrl-0 = <&i2c1_xfer>;
251		#address-cells = <1>;
252		#size-cells = <0>;
253		status = "disabled";
254	};
255
256	i2c2: i2c@ff060000 {
257		compatible = "rockchip,rk3308-i2c", "rockchip,rk3399-i2c";
258		reg = <0x0 0xff060000 0x0 0x1000>;
259		clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
260		clock-names = "i2c", "pclk";
261		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
262		pinctrl-names = "default";
263		pinctrl-0 = <&i2c2_xfer>;
264		#address-cells = <1>;
265		#size-cells = <0>;
266		status = "disabled";
267	};
268
269	i2c3: i2c@ff070000 {
270		compatible = "rockchip,rk3308-i2c", "rockchip,rk3399-i2c";
271		reg = <0x0 0xff070000 0x0 0x1000>;
272		clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
273		clock-names = "i2c", "pclk";
274		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
275		pinctrl-names = "default";
276		pinctrl-0 = <&i2c3m0_xfer>;
277		#address-cells = <1>;
278		#size-cells = <0>;
279		status = "disabled";
280	};
281
282	wdt: watchdog@ff080000 {
283		compatible = "rockchip,rk3308-wdt", "snps,dw-wdt";
284		reg = <0x0 0xff080000 0x0 0x100>;
285		clocks = <&cru PCLK_WDT>;
286		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
287		status = "disabled";
288	};
289
290	uart0: serial@ff0a0000 {
291		compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart";
292		reg = <0x0 0xff0a0000 0x0 0x100>;
293		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
294		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
295		clock-names = "baudclk", "apb_pclk";
296		reg-shift = <2>;
297		reg-io-width = <4>;
298		pinctrl-names = "default";
299		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
300		status = "disabled";
301	};
302
303	uart1: serial@ff0b0000 {
304		compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart";
305		reg = <0x0 0xff0b0000 0x0 0x100>;
306		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
307		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
308		clock-names = "baudclk", "apb_pclk";
309		reg-shift = <2>;
310		reg-io-width = <4>;
311		pinctrl-names = "default";
312		pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
313		status = "disabled";
314	};
315
316	uart2: serial@ff0c0000 {
317		compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart";
318		reg = <0x0 0xff0c0000 0x0 0x100>;
319		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
320		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
321		clock-names = "baudclk", "apb_pclk";
322		reg-shift = <2>;
323		reg-io-width = <4>;
324		pinctrl-names = "default";
325		pinctrl-0 = <&uart2m0_xfer>;
326		status = "disabled";
327	};
328
329	uart3: serial@ff0d0000 {
330		compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart";
331		reg = <0x0 0xff0d0000 0x0 0x100>;
332		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
333		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
334		clock-names = "baudclk", "apb_pclk";
335		reg-shift = <2>;
336		reg-io-width = <4>;
337		pinctrl-names = "default";
338		pinctrl-0 = <&uart3_xfer>;
339		status = "disabled";
340	};
341
342	uart4: serial@ff0e0000 {
343		compatible = "rockchip,rk3308-uart", "snps,dw-apb-uart";
344		reg = <0x0 0xff0e0000 0x0 0x100>;
345		interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
346		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
347		clock-names = "baudclk", "apb_pclk";
348		reg-shift = <2>;
349		reg-io-width = <4>;
350		pinctrl-names = "default";
351		pinctrl-0 = <&uart4_xfer &uart4_cts &uart4_rts>;
352		status = "disabled";
353	};
354
355	spi0: spi@ff120000 {
356		compatible = "rockchip,rk3308-spi", "rockchip,rk3066-spi";
357		reg = <0x0 0xff120000 0x0 0x1000>;
358		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
359		#address-cells = <1>;
360		#size-cells = <0>;
361		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
362		clock-names = "spiclk", "apb_pclk";
363		dmas = <&dmac0 0>, <&dmac0 1>;
364		dma-names = "tx", "rx";
365		pinctrl-names = "default";
366		pinctrl-0 = <&spi0_clk &spi0_csn0 &spi0_miso &spi0_mosi>;
367		status = "disabled";
368	};
369
370	spi1: spi@ff130000 {
371		compatible = "rockchip,rk3308-spi", "rockchip,rk3066-spi";
372		reg = <0x0 0xff130000 0x0 0x1000>;
373		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
374		#address-cells = <1>;
375		#size-cells = <0>;
376		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
377		clock-names = "spiclk", "apb_pclk";
378		dmas = <&dmac0 2>, <&dmac0 3>;
379		dma-names = "tx", "rx";
380		pinctrl-names = "default";
381		pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_miso &spi1_mosi>;
382		status = "disabled";
383	};
384
385	spi2: spi@ff140000 {
386		compatible = "rockchip,rk3308-spi", "rockchip,rk3066-spi";
387		reg = <0x0 0xff140000 0x0 0x1000>;
388		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
389		#address-cells = <1>;
390		#size-cells = <0>;
391		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
392		clock-names = "spiclk", "apb_pclk";
393		dmas = <&dmac1 16>, <&dmac1 17>;
394		dma-names = "tx", "rx";
395		pinctrl-names = "default";
396		pinctrl-0 = <&spi2_clk &spi2_csn0 &spi2_miso &spi2_mosi>;
397		status = "disabled";
398	};
399
400	pwm8: pwm@ff160000 {
401		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
402		reg = <0x0 0xff160000 0x0 0x10>;
403		clocks = <&cru SCLK_PWM2>, <&cru PCLK_PWM2>;
404		clock-names = "pwm", "pclk";
405		pinctrl-names = "default";
406		pinctrl-0 = <&pwm8_pin>;
407		#pwm-cells = <3>;
408		status = "disabled";
409	};
410
411	pwm9: pwm@ff160010 {
412		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
413		reg = <0x0 0xff160010 0x0 0x10>;
414		clocks = <&cru SCLK_PWM2>, <&cru PCLK_PWM2>;
415		clock-names = "pwm", "pclk";
416		pinctrl-names = "default";
417		pinctrl-0 = <&pwm9_pin>;
418		#pwm-cells = <3>;
419		status = "disabled";
420	};
421
422	pwm10: pwm@ff160020 {
423		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
424		reg = <0x0 0xff160020 0x0 0x10>;
425		clocks = <&cru SCLK_PWM2>, <&cru PCLK_PWM2>;
426		clock-names = "pwm", "pclk";
427		pinctrl-names = "default";
428		pinctrl-0 = <&pwm10_pin>;
429		#pwm-cells = <3>;
430		status = "disabled";
431	};
432
433	pwm11: pwm@ff160030 {
434		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
435		reg = <0x0 0xff160030 0x0 0x10>;
436		clocks = <&cru SCLK_PWM2>, <&cru PCLK_PWM2>;
437		clock-names = "pwm", "pclk";
438		pinctrl-names = "default";
439		pinctrl-0 = <&pwm11_pin>;
440		#pwm-cells = <3>;
441		status = "disabled";
442	};
443
444	pwm4: pwm@ff170000 {
445		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
446		reg = <0x0 0xff170000 0x0 0x10>;
447		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
448		clock-names = "pwm", "pclk";
449		pinctrl-names = "default";
450		pinctrl-0 = <&pwm4_pin>;
451		#pwm-cells = <3>;
452		status = "disabled";
453	};
454
455	pwm5: pwm@ff170010 {
456		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
457		reg = <0x0 0xff170010 0x0 0x10>;
458		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
459		clock-names = "pwm", "pclk";
460		pinctrl-names = "default";
461		pinctrl-0 = <&pwm5_pin>;
462		#pwm-cells = <3>;
463		status = "disabled";
464	};
465
466	pwm6: pwm@ff170020 {
467		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
468		reg = <0x0 0xff170020 0x0 0x10>;
469		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
470		clock-names = "pwm", "pclk";
471		pinctrl-names = "default";
472		pinctrl-0 = <&pwm6_pin>;
473		#pwm-cells = <3>;
474		status = "disabled";
475	};
476
477	pwm7: pwm@ff170030 {
478		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
479		reg = <0x0 0xff170030 0x0 0x10>;
480		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
481		clock-names = "pwm", "pclk";
482		pinctrl-names = "default";
483		pinctrl-0 = <&pwm7_pin>;
484		#pwm-cells = <3>;
485		status = "disabled";
486	};
487
488	pwm0: pwm@ff180000 {
489		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
490		reg = <0x0 0xff180000 0x0 0x10>;
491		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
492		clock-names = "pwm", "pclk";
493		pinctrl-names = "default";
494		pinctrl-0 = <&pwm0_pin>;
495		#pwm-cells = <3>;
496		status = "disabled";
497	};
498
499	pwm1: pwm@ff180010 {
500		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
501		reg = <0x0 0xff180010 0x0 0x10>;
502		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
503		clock-names = "pwm", "pclk";
504		pinctrl-names = "default";
505		pinctrl-0 = <&pwm1_pin>;
506		#pwm-cells = <3>;
507		status = "disabled";
508	};
509
510	pwm2: pwm@ff180020 {
511		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
512		reg = <0x0 0xff180020 0x0 0x10>;
513		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
514		clock-names = "pwm", "pclk";
515		pinctrl-names = "default";
516		pinctrl-0 = <&pwm2_pin>;
517		#pwm-cells = <3>;
518		status = "disabled";
519	};
520
521	pwm3: pwm@ff180030 {
522		compatible = "rockchip,rk3308-pwm", "rockchip,rk3328-pwm";
523		reg = <0x0 0xff180030 0x0 0x10>;
524		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
525		clock-names = "pwm", "pclk";
526		pinctrl-names = "default";
527		pinctrl-0 = <&pwm3_pin>;
528		#pwm-cells = <3>;
529		status = "disabled";
530	};
531
532	rktimer: rktimer@ff1a0000 {
533		compatible = "rockchip,rk3288-timer";
534		reg = <0x0 0xff1a0000 0x0 0x20>;
535		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
536		clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER0>;
537		clock-names = "pclk", "timer";
538	};
539
540	saradc: saradc@ff1e0000 {
541		compatible = "rockchip,rk3308-saradc", "rockchip,rk3399-saradc";
542		reg = <0x0 0xff1e0000 0x0 0x100>;
543		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
544		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
545		clock-names = "saradc", "apb_pclk";
546		#io-channel-cells = <1>;
547		resets = <&cru SRST_SARADC_P>;
548		reset-names = "saradc-apb";
549		status = "disabled";
550	};
551
552	dmac0: dma-controller@ff2c0000 {
553		compatible = "arm,pl330", "arm,primecell";
554		reg = <0x0 0xff2c0000 0x0 0x4000>;
555		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
556			     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
557		arm,pl330-periph-burst;
558		clocks = <&cru ACLK_DMAC0>;
559		clock-names = "apb_pclk";
560		#dma-cells = <1>;
561	};
562
563	dmac1: dma-controller@ff2d0000 {
564		compatible = "arm,pl330", "arm,primecell";
565		reg = <0x0 0xff2d0000 0x0 0x4000>;
566		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
567			     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
568		arm,pl330-periph-burst;
569		clocks = <&cru ACLK_DMAC1>;
570		clock-names = "apb_pclk";
571		#dma-cells = <1>;
572	};
573
574	i2s_2ch_0: i2s@ff350000 {
575		compatible = "rockchip,rk3308-i2s", "rockchip,rk3066-i2s";
576		reg = <0x0 0xff350000 0x0 0x1000>;
577		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
578		clocks = <&cru SCLK_I2S0_2CH>, <&cru HCLK_I2S0_2CH>;
579		clock-names = "i2s_clk", "i2s_hclk";
580		dmas = <&dmac1 8>, <&dmac1 9>;
581		dma-names = "tx", "rx";
582		resets = <&cru SRST_I2S0_2CH_M>, <&cru SRST_I2S0_2CH_H>;
583		reset-names = "reset-m", "reset-h";
584		pinctrl-names = "default";
585		pinctrl-0 = <&i2s_2ch_0_sclk
586			     &i2s_2ch_0_lrck
587			     &i2s_2ch_0_sdi
588			     &i2s_2ch_0_sdo>;
589		status = "disabled";
590	};
591
592	i2s_2ch_1: i2s@ff360000 {
593		compatible = "rockchip,rk3308-i2s", "rockchip,rk3066-i2s";
594		reg = <0x0 0xff360000 0x0 0x1000>;
595		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
596		clocks = <&cru SCLK_I2S1_2CH>, <&cru HCLK_I2S1_2CH>;
597		clock-names = "i2s_clk", "i2s_hclk";
598		dmas = <&dmac1 11>;
599		dma-names = "rx";
600		resets = <&cru SRST_I2S1_2CH_M>, <&cru SRST_I2S1_2CH_H>;
601		reset-names = "reset-m", "reset-h";
602		status = "disabled";
603	};
604
605	spdif_tx: spdif-tx@ff3a0000 {
606		compatible = "rockchip,rk3308-spdif", "rockchip,rk3066-spdif";
607		reg = <0x0 0xff3a0000 0x0 0x1000>;
608		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
609		clocks = <&cru SCLK_SPDIF_TX>, <&cru HCLK_SPDIFTX>;
610		clock-names = "mclk", "hclk";
611		dmas = <&dmac1 13>;
612		dma-names = "tx";
613		pinctrl-names = "default";
614		pinctrl-0 = <&spdif_out>;
615		status = "disabled";
616	};
617
618	usb20_otg: usb@ff400000 {
619		compatible = "rockchip,rk3308-usb", "rockchip,rk3066-usb",
620			     "snps,dwc2";
621		reg = <0x0 0xff400000 0x0 0x40000>;
622		interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
623		clocks = <&cru HCLK_OTG>;
624		clock-names = "otg";
625		dr_mode = "otg";
626		g-np-tx-fifo-size = <16>;
627		g-rx-fifo-size = <280>;
628		g-tx-fifo-size = <256 128 128 64 32 16>;
629		phys = <&u2phy_otg>;
630		phy-names = "usb2-phy";
631		status = "disabled";
632	};
633
634	usb_host_ehci: usb@ff440000 {
635		compatible = "generic-ehci";
636		reg = <0x0 0xff440000 0x0 0x10000>;
637		interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
638		clocks = <&cru HCLK_HOST>, <&cru HCLK_HOST_ARB>, <&u2phy>;
639		phys = <&u2phy_host>;
640		phy-names = "usb";
641		status = "disabled";
642	};
643
644	usb_host_ohci: usb@ff450000 {
645		compatible = "generic-ohci";
646		reg = <0x0 0xff450000 0x0 0x10000>;
647		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
648		clocks = <&cru HCLK_HOST>, <&cru HCLK_HOST_ARB>, <&u2phy>;
649		phys = <&u2phy_host>;
650		phy-names = "usb";
651		status = "disabled";
652	};
653
654	sdmmc: mmc@ff480000 {
655		compatible = "rockchip,rk3308-dw-mshc", "rockchip,rk3288-dw-mshc";
656		reg = <0x0 0xff480000 0x0 0x4000>;
657		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
658		bus-width = <4>;
659		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
660			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
661		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
662		fifo-depth = <0x100>;
663		max-frequency = <150000000>;
664		pinctrl-names = "default";
665		pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
666		status = "disabled";
667	};
668
669	emmc: mmc@ff490000 {
670		compatible = "rockchip,rk3308-dw-mshc", "rockchip,rk3288-dw-mshc";
671		reg = <0x0 0xff490000 0x0 0x4000>;
672		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
673		bus-width = <8>;
674		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
675			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
676		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
677		fifo-depth = <0x100>;
678		max-frequency = <150000000>;
679		status = "disabled";
680	};
681
682	sdio: mmc@ff4a0000 {
683		compatible = "rockchip,rk3308-dw-mshc", "rockchip,rk3288-dw-mshc";
684		reg = <0x0 0xff4a0000 0x0 0x4000>;
685		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
686		bus-width = <4>;
687		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
688			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
689		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
690		fifo-depth = <0x100>;
691		max-frequency = <150000000>;
692		pinctrl-names = "default";
693		pinctrl-0 = <&sdio_bus4 &sdio_cmd &sdio_clk>;
694		status = "disabled";
695	};
696
697	nfc: nand-controller@ff4b0000 {
698		compatible = "rockchip,rk3308-nfc",
699			     "rockchip,rv1108-nfc";
700		reg = <0x0 0xff4b0000 0x0 0x4000>;
701		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
702		clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
703		clock-names = "ahb", "nfc";
704		assigned-clocks = <&cru SCLK_NANDC>;
705		assigned-clock-rates = <150000000>;
706		pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_csn0
707			     &flash_rdn &flash_rdy &flash_wrn>;
708		pinctrl-names = "default";
709		status = "disabled";
710	};
711
712	gmac: ethernet@ff4e0000 {
713		compatible = "rockchip,rk3308-gmac";
714		reg = <0x0 0xff4e0000 0x0 0x10000>;
715		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
716		interrupt-names = "macirq";
717		clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX_TX>,
718			 <&cru SCLK_MAC_RX_TX>, <&cru SCLK_MAC_REF>,
719			 <&cru SCLK_MAC>, <&cru ACLK_MAC>,
720			 <&cru PCLK_MAC>, <&cru SCLK_MAC_RMII>;
721		clock-names = "stmmaceth", "mac_clk_rx",
722			      "mac_clk_tx", "clk_mac_ref",
723			      "clk_mac_refout", "aclk_mac",
724			      "pclk_mac", "clk_mac_speed";
725		phy-mode = "rmii";
726		pinctrl-names = "default";
727		pinctrl-0 = <&rmii_pins &mac_refclk_12ma>;
728		resets = <&cru SRST_MAC_A>;
729		reset-names = "stmmaceth";
730		rockchip,grf = <&grf>;
731		status = "disabled";
732	};
733
734	cru: clock-controller@ff500000 {
735		compatible = "rockchip,rk3308-cru";
736		reg = <0x0 0xff500000 0x0 0x1000>;
737		#clock-cells = <1>;
738		#reset-cells = <1>;
739		rockchip,grf = <&grf>;
740
741		assigned-clocks = <&cru SCLK_RTC32K>;
742		assigned-clock-rates = <32768>;
743	};
744
745	gic: interrupt-controller@ff580000 {
746		compatible = "arm,gic-400";
747		reg = <0x0 0xff581000 0x0 0x1000>,
748		      <0x0 0xff582000 0x0 0x2000>,
749		      <0x0 0xff584000 0x0 0x2000>,
750		      <0x0 0xff586000 0x0 0x2000>;
751		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
752		#interrupt-cells = <3>;
753		interrupt-controller;
754		#address-cells = <0>;
755	};
756
757	sram: sram@fff80000 {
758		compatible = "mmio-sram";
759		reg = <0x0 0xfff80000 0x0 0x40000>;
760		ranges = <0 0x0 0xfff80000 0x40000>;
761		#address-cells = <1>;
762		#size-cells = <1>;
763
764		/* reserved for ddr dvfs and system suspend/resume */
765		ddr-sram@0 {
766			reg = <0x0 0x8000>;
767		};
768
769		/* reserved for vad audio buffer */
770		vad_sram: vad-sram@8000 {
771			reg = <0x8000 0x38000>;
772		};
773	};
774
775	pinctrl: pinctrl {
776		compatible = "rockchip,rk3308-pinctrl";
777		rockchip,grf = <&grf>;
778		#address-cells = <2>;
779		#size-cells = <2>;
780		ranges;
781
782		gpio0: gpio0@ff220000 {
783			compatible = "rockchip,gpio-bank";
784			reg = <0x0 0xff220000 0x0 0x100>;
785			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
786			clocks = <&cru PCLK_GPIO0>;
787			gpio-controller;
788			#gpio-cells = <2>;
789			interrupt-controller;
790			#interrupt-cells = <2>;
791		};
792
793		gpio1: gpio1@ff230000 {
794			compatible = "rockchip,gpio-bank";
795			reg = <0x0 0xff230000 0x0 0x100>;
796			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
797			clocks = <&cru PCLK_GPIO1>;
798			gpio-controller;
799			#gpio-cells = <2>;
800			interrupt-controller;
801			#interrupt-cells = <2>;
802		};
803
804		gpio2: gpio2@ff240000 {
805			compatible = "rockchip,gpio-bank";
806			reg = <0x0 0xff240000 0x0 0x100>;
807			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
808			clocks = <&cru PCLK_GPIO2>;
809			gpio-controller;
810			#gpio-cells = <2>;
811			interrupt-controller;
812			#interrupt-cells = <2>;
813		};
814
815		gpio3: gpio3@ff250000 {
816			compatible = "rockchip,gpio-bank";
817			reg = <0x0 0xff250000 0x0 0x100>;
818			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
819			clocks = <&cru PCLK_GPIO3>;
820			gpio-controller;
821			#gpio-cells = <2>;
822			interrupt-controller;
823			#interrupt-cells = <2>;
824		};
825
826		gpio4: gpio4@ff260000 {
827			compatible = "rockchip,gpio-bank";
828			reg = <0x0 0xff260000 0x0 0x100>;
829			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
830			clocks = <&cru PCLK_GPIO4>;
831			gpio-controller;
832			#gpio-cells = <2>;
833			interrupt-controller;
834			#interrupt-cells = <2>;
835		};
836
837		pcfg_pull_up: pcfg-pull-up {
838			bias-pull-up;
839		};
840
841		pcfg_pull_down: pcfg-pull-down {
842			bias-pull-down;
843		};
844
845		pcfg_pull_none: pcfg-pull-none {
846			bias-disable;
847		};
848
849		pcfg_pull_none_2ma: pcfg-pull-none-2ma {
850			bias-disable;
851			drive-strength = <2>;
852		};
853
854		pcfg_pull_up_2ma: pcfg-pull-up-2ma {
855			bias-pull-up;
856			drive-strength = <2>;
857		};
858
859		pcfg_pull_up_4ma: pcfg-pull-up-4ma {
860			bias-pull-up;
861			drive-strength = <4>;
862		};
863
864		pcfg_pull_none_4ma: pcfg-pull-none-4ma {
865			bias-disable;
866			drive-strength = <4>;
867		};
868
869		pcfg_pull_down_4ma: pcfg-pull-down-4ma {
870			bias-pull-down;
871			drive-strength = <4>;
872		};
873
874		pcfg_pull_none_8ma: pcfg-pull-none-8ma {
875			bias-disable;
876			drive-strength = <8>;
877		};
878
879		pcfg_pull_up_8ma: pcfg-pull-up-8ma {
880			bias-pull-up;
881			drive-strength = <8>;
882		};
883
884		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
885			bias-disable;
886			drive-strength = <12>;
887		};
888
889		pcfg_pull_up_12ma: pcfg-pull-up-12ma {
890			bias-pull-up;
891			drive-strength = <12>;
892		};
893
894		pcfg_pull_none_smt: pcfg-pull-none-smt {
895			bias-disable;
896			input-schmitt-enable;
897		};
898
899		pcfg_output_high: pcfg-output-high {
900			output-high;
901		};
902
903		pcfg_output_low: pcfg-output-low {
904			output-low;
905		};
906
907		pcfg_input_high: pcfg-input-high {
908			bias-pull-up;
909			input-enable;
910		};
911
912		pcfg_input: pcfg-input {
913			input-enable;
914		};
915
916		emmc {
917			emmc_clk: emmc-clk {
918				rockchip,pins =
919					<3 RK_PB1 2 &pcfg_pull_none_8ma>;
920			};
921
922			emmc_cmd: emmc-cmd {
923				rockchip,pins =
924					<3 RK_PB0 2 &pcfg_pull_up_8ma>;
925			};
926
927			emmc_pwren: emmc-pwren {
928				rockchip,pins =
929					<3 RK_PB3 2 &pcfg_pull_none>;
930			};
931
932			emmc_rstn: emmc-rstn {
933				rockchip,pins =
934					<3 RK_PB2 2 &pcfg_pull_none>;
935			};
936
937			emmc_bus1: emmc-bus1 {
938				rockchip,pins =
939					<3 RK_PA0 2 &pcfg_pull_up_8ma>;
940			};
941
942			emmc_bus4: emmc-bus4 {
943				rockchip,pins =
944					<3 RK_PA0 2 &pcfg_pull_up_8ma>,
945					<3 RK_PA1 2 &pcfg_pull_up_8ma>,
946					<3 RK_PA2 2 &pcfg_pull_up_8ma>,
947					<3 RK_PA3 2 &pcfg_pull_up_8ma>;
948			};
949
950			emmc_bus8: emmc-bus8 {
951				rockchip,pins =
952					<3 RK_PA0 2 &pcfg_pull_up_8ma>,
953					<3 RK_PA1 2 &pcfg_pull_up_8ma>,
954					<3 RK_PA2 2 &pcfg_pull_up_8ma>,
955					<3 RK_PA3 2 &pcfg_pull_up_8ma>,
956					<3 RK_PA4 2 &pcfg_pull_up_8ma>,
957					<3 RK_PA5 2 &pcfg_pull_up_8ma>,
958					<3 RK_PA6 2 &pcfg_pull_up_8ma>,
959					<3 RK_PA7 2 &pcfg_pull_up_8ma>;
960			};
961		};
962
963		flash {
964			flash_csn0: flash-csn0 {
965				rockchip,pins =
966					<3 RK_PB5 1 &pcfg_pull_none>;
967			};
968
969			flash_rdy: flash-rdy {
970				rockchip,pins =
971					<3 RK_PB4 1 &pcfg_pull_none>;
972			};
973
974			flash_ale: flash-ale {
975				rockchip,pins =
976					<3 RK_PB3 1 &pcfg_pull_none>;
977			};
978
979			flash_cle: flash-cle {
980				rockchip,pins =
981					<3 RK_PB1 1 &pcfg_pull_none>;
982			};
983
984			flash_wrn: flash-wrn {
985				rockchip,pins =
986					<3 RK_PB0 1 &pcfg_pull_none>;
987			};
988
989			flash_rdn: flash-rdn {
990				rockchip,pins =
991					<3 RK_PB2 1 &pcfg_pull_none>;
992			};
993
994			flash_bus8: flash-bus8 {
995				rockchip,pins =
996					<3 RK_PA0 1 &pcfg_pull_up_12ma>,
997					<3 RK_PA1 1 &pcfg_pull_up_12ma>,
998					<3 RK_PA2 1 &pcfg_pull_up_12ma>,
999					<3 RK_PA3 1 &pcfg_pull_up_12ma>,
1000					<3 RK_PA4 1 &pcfg_pull_up_12ma>,
1001					<3 RK_PA5 1 &pcfg_pull_up_12ma>,
1002					<3 RK_PA6 1 &pcfg_pull_up_12ma>,
1003					<3 RK_PA7 1 &pcfg_pull_up_12ma>;
1004			};
1005		};
1006
1007		gmac {
1008			rmii_pins: rmii-pins {
1009				rockchip,pins =
1010					/* mac_txen */
1011					<1 RK_PC1 3 &pcfg_pull_none_12ma>,
1012					/* mac_txd1 */
1013					<1 RK_PC3 3 &pcfg_pull_none_12ma>,
1014					/* mac_txd0 */
1015					<1 RK_PC2 3 &pcfg_pull_none_12ma>,
1016					/* mac_rxd0 */
1017					<1 RK_PC4 3 &pcfg_pull_none>,
1018					/* mac_rxd1 */
1019					<1 RK_PC5 3 &pcfg_pull_none>,
1020					/* mac_rxer */
1021					<1 RK_PB7 3 &pcfg_pull_none>,
1022					/* mac_rxdv */
1023					<1 RK_PC0 3 &pcfg_pull_none>,
1024					/* mac_mdio */
1025					<1 RK_PB6 3 &pcfg_pull_none>,
1026					/* mac_mdc */
1027					<1 RK_PB5 3 &pcfg_pull_none>;
1028			};
1029
1030			mac_refclk_12ma: mac-refclk-12ma {
1031				rockchip,pins =
1032					<1 RK_PB4 3 &pcfg_pull_none_12ma>;
1033			};
1034
1035			mac_refclk: mac-refclk {
1036				rockchip,pins =
1037					<1 RK_PB4 3 &pcfg_pull_none>;
1038			};
1039		};
1040
1041		gmac-m1 {
1042			rmiim1_pins: rmiim1-pins {
1043				rockchip,pins =
1044					/* mac_txen */
1045					<4 RK_PB7 2 &pcfg_pull_none_12ma>,
1046					/* mac_txd1 */
1047					<4 RK_PA5 2 &pcfg_pull_none_12ma>,
1048					/* mac_txd0 */
1049					<4 RK_PA4 2 &pcfg_pull_none_12ma>,
1050					/* mac_rxd0 */
1051					<4 RK_PA2 2 &pcfg_pull_none>,
1052					/* mac_rxd1 */
1053					<4 RK_PA3 2 &pcfg_pull_none>,
1054					/* mac_rxer */
1055					<4 RK_PA0 2 &pcfg_pull_none>,
1056					/* mac_rxdv */
1057					<4 RK_PA1 2 &pcfg_pull_none>,
1058					/* mac_mdio */
1059					<4 RK_PB6 2 &pcfg_pull_none>,
1060					/* mac_mdc */
1061					<4 RK_PB5 2 &pcfg_pull_none>;
1062			};
1063
1064			macm1_refclk_12ma: macm1-refclk-12ma {
1065				rockchip,pins =
1066					<4 RK_PB4 2 &pcfg_pull_none_12ma>;
1067			};
1068
1069			macm1_refclk: macm1-refclk {
1070				rockchip,pins =
1071					<4 RK_PB4 2 &pcfg_pull_none>;
1072			};
1073		};
1074
1075		i2c0 {
1076			i2c0_xfer: i2c0-xfer {
1077				rockchip,pins =
1078					<1 RK_PD0 2 &pcfg_pull_none_smt>,
1079					<1 RK_PD1 2 &pcfg_pull_none_smt>;
1080			};
1081		};
1082
1083		i2c1 {
1084			i2c1_xfer: i2c1-xfer {
1085				rockchip,pins =
1086					<0 RK_PB3 1 &pcfg_pull_none_smt>,
1087					<0 RK_PB4 1 &pcfg_pull_none_smt>;
1088			};
1089		};
1090
1091		i2c2 {
1092			i2c2_xfer: i2c2-xfer {
1093				rockchip,pins =
1094					<2 RK_PA2 3 &pcfg_pull_none_smt>,
1095					<2 RK_PA3 3 &pcfg_pull_none_smt>;
1096			};
1097		};
1098
1099		i2c3-m0 {
1100			i2c3m0_xfer: i2c3m0-xfer {
1101				rockchip,pins =
1102					<0 RK_PB7 2 &pcfg_pull_none_smt>,
1103					<0 RK_PC0 2 &pcfg_pull_none_smt>;
1104			};
1105		};
1106
1107		i2c3-m1 {
1108			i2c3m1_xfer: i2c3m1-xfer {
1109				rockchip,pins =
1110					<3 RK_PB4 2 &pcfg_pull_none_smt>,
1111					<3 RK_PB5 2 &pcfg_pull_none_smt>;
1112			};
1113		};
1114
1115		i2c3-m2 {
1116			i2c3m2_xfer: i2c3m2-xfer {
1117				rockchip,pins =
1118					<2 RK_PA1 3 &pcfg_pull_none_smt>,
1119					<2 RK_PA0 3 &pcfg_pull_none_smt>;
1120			};
1121		};
1122
1123		i2s_2ch_0 {
1124			i2s_2ch_0_mclk: i2s-2ch-0-mclk {
1125				rockchip,pins =
1126					<4 RK_PB4 1 &pcfg_pull_none>;
1127			};
1128
1129			i2s_2ch_0_sclk: i2s-2ch-0-sclk {
1130				rockchip,pins =
1131					<4 RK_PB5 1 &pcfg_pull_none>;
1132			};
1133
1134			i2s_2ch_0_lrck: i2s-2ch-0-lrck {
1135				rockchip,pins =
1136					<4 RK_PB6 1 &pcfg_pull_none>;
1137			};
1138
1139			i2s_2ch_0_sdo: i2s-2ch-0-sdo {
1140				rockchip,pins =
1141					<4 RK_PB7 1 &pcfg_pull_none>;
1142			};
1143
1144			i2s_2ch_0_sdi: i2s-2ch-0-sdi {
1145				rockchip,pins =
1146					<4 RK_PC0 1 &pcfg_pull_none>;
1147			};
1148		};
1149
1150		i2s_8ch_0 {
1151			i2s_8ch_0_mclk: i2s-8ch-0-mclk {
1152				rockchip,pins =
1153					<2 RK_PA4 1 &pcfg_pull_none>;
1154			};
1155
1156			i2s_8ch_0_sclktx: i2s-8ch-0-sclktx {
1157				rockchip,pins =
1158					<2 RK_PA5 1 &pcfg_pull_none>;
1159			};
1160
1161			i2s_8ch_0_sclkrx: i2s-8ch-0-sclkrx {
1162				rockchip,pins =
1163					<2 RK_PA6 1 &pcfg_pull_none>;
1164			};
1165
1166			i2s_8ch_0_lrcktx: i2s-8ch-0-lrcktx {
1167				rockchip,pins =
1168					<2 RK_PA7 1 &pcfg_pull_none>;
1169			};
1170
1171			i2s_8ch_0_lrckrx: i2s-8ch-0-lrckrx {
1172				rockchip,pins =
1173					<2 RK_PB0 1 &pcfg_pull_none>;
1174			};
1175
1176			i2s_8ch_0_sdo0: i2s-8ch-0-sdo0 {
1177				rockchip,pins =
1178					<2 RK_PB1 1 &pcfg_pull_none>;
1179			};
1180
1181			i2s_8ch_0_sdo1: i2s-8ch-0-sdo1 {
1182				rockchip,pins =
1183					<2 RK_PB2 1 &pcfg_pull_none>;
1184			};
1185
1186			i2s_8ch_0_sdo2: i2s-8ch-0-sdo2 {
1187				rockchip,pins =
1188					<2 RK_PB3 1 &pcfg_pull_none>;
1189			};
1190
1191			i2s_8ch_0_sdo3: i2s-8ch-0-sdo3 {
1192				rockchip,pins =
1193					<2 RK_PB4 1 &pcfg_pull_none>;
1194			};
1195
1196			i2s_8ch_0_sdi0: i2s-8ch-0-sdi0 {
1197				rockchip,pins =
1198					<2 RK_PB5 1 &pcfg_pull_none>;
1199			};
1200
1201			i2s_8ch_0_sdi1: i2s-8ch-0-sdi1 {
1202				rockchip,pins =
1203					<2 RK_PB6 1 &pcfg_pull_none>;
1204			};
1205
1206			i2s_8ch_0_sdi2: i2s-8ch-0-sdi2 {
1207				rockchip,pins =
1208					<2 RK_PB7 1 &pcfg_pull_none>;
1209			};
1210
1211			i2s_8ch_0_sdi3: i2s-8ch-0-sdi3 {
1212				rockchip,pins =
1213					<2 RK_PC0 1 &pcfg_pull_none>;
1214			};
1215		};
1216
1217		i2s_8ch_1_m0 {
1218			i2s_8ch_1_m0_mclk: i2s-8ch-1-m0-mclk {
1219				rockchip,pins =
1220					<1 RK_PA2 2 &pcfg_pull_none>;
1221			};
1222
1223			i2s_8ch_1_m0_sclktx: i2s-8ch-1-m0-sclktx {
1224				rockchip,pins =
1225					<1 RK_PA3 2 &pcfg_pull_none>;
1226			};
1227
1228			i2s_8ch_1_m0_sclkrx: i2s-8ch-1-m0-sclkrx {
1229				rockchip,pins =
1230					<1 RK_PA4 2 &pcfg_pull_none>;
1231			};
1232
1233			i2s_8ch_1_m0_lrcktx: i2s-8ch-1-m0-lrcktx {
1234				rockchip,pins =
1235					<1 RK_PA5 2 &pcfg_pull_none>;
1236			};
1237
1238			i2s_8ch_1_m0_lrckrx: i2s-8ch-1-m0-lrckrx {
1239				rockchip,pins =
1240					<1 RK_PA6 2 &pcfg_pull_none>;
1241			};
1242
1243			i2s_8ch_1_m0_sdo0: i2s-8ch-1-m0-sdo0 {
1244				rockchip,pins =
1245					<1 RK_PA7 2 &pcfg_pull_none>;
1246			};
1247
1248			i2s_8ch_1_m0_sdo1_sdi3: i2s-8ch-1-m0-sdo1-sdi3 {
1249				rockchip,pins =
1250					<1 RK_PB0 2 &pcfg_pull_none>;
1251			};
1252
1253			i2s_8ch_1_m0_sdo2_sdi2: i2s-8ch-1-m0-sdo2-sdi2 {
1254				rockchip,pins =
1255					<1 RK_PB1 2 &pcfg_pull_none>;
1256			};
1257
1258			i2s_8ch_1_m0_sdo3_sdi1: i2s-8ch-1-m0-sdo3_sdi1 {
1259				rockchip,pins =
1260					<1 RK_PB2 2 &pcfg_pull_none>;
1261			};
1262
1263			i2s_8ch_1_m0_sdi0: i2s-8ch-1-m0-sdi0 {
1264				rockchip,pins =
1265					<1 RK_PB3 2 &pcfg_pull_none>;
1266			};
1267		};
1268
1269		i2s_8ch_1_m1 {
1270			i2s_8ch_1_m1_mclk: i2s-8ch-1-m1-mclk {
1271				rockchip,pins =
1272					<1 RK_PB4 2 &pcfg_pull_none>;
1273			};
1274
1275			i2s_8ch_1_m1_sclktx: i2s-8ch-1-m1-sclktx {
1276				rockchip,pins =
1277					<1 RK_PB5 2 &pcfg_pull_none>;
1278			};
1279
1280			i2s_8ch_1_m1_sclkrx: i2s-8ch-1-m1-sclkrx {
1281				rockchip,pins =
1282					<1 RK_PB6 2 &pcfg_pull_none>;
1283			};
1284
1285			i2s_8ch_1_m1_lrcktx: i2s-8ch-1-m1-lrcktx {
1286				rockchip,pins =
1287					<1 RK_PB7 2 &pcfg_pull_none>;
1288			};
1289
1290			i2s_8ch_1_m1_lrckrx: i2s-8ch-1-m1-lrckrx {
1291				rockchip,pins =
1292					<1 RK_PC0 2 &pcfg_pull_none>;
1293			};
1294
1295			i2s_8ch_1_m1_sdo0: i2s-8ch-1-m1-sdo0 {
1296				rockchip,pins =
1297					<1 RK_PC1 2 &pcfg_pull_none>;
1298			};
1299
1300			i2s_8ch_1_m1_sdo1_sdi3: i2s-8ch-1-m1-sdo1-sdi3 {
1301				rockchip,pins =
1302					<1 RK_PC2 2 &pcfg_pull_none>;
1303			};
1304
1305			i2s_8ch_1_m1_sdo2_sdi2: i2s-8ch-1-m1-sdo2-sdi2 {
1306				rockchip,pins =
1307					<1 RK_PC3 2 &pcfg_pull_none>;
1308			};
1309
1310			i2s_8ch_1_m1_sdo3_sdi1: i2s-8ch-1-m1-sdo3_sdi1 {
1311				rockchip,pins =
1312					<1 RK_PC4 2 &pcfg_pull_none>;
1313			};
1314
1315			i2s_8ch_1_m1_sdi0: i2s-8ch-1-m1-sdi0 {
1316				rockchip,pins =
1317					<1 RK_PC5 2 &pcfg_pull_none>;
1318			};
1319		};
1320
1321		pdm_m0 {
1322			pdm_m0_clk: pdm-m0-clk {
1323				rockchip,pins =
1324					<1 RK_PA4 3 &pcfg_pull_none>;
1325			};
1326
1327			pdm_m0_sdi0: pdm-m0-sdi0 {
1328				rockchip,pins =
1329					<1 RK_PB3 3 &pcfg_pull_none>;
1330			};
1331
1332			pdm_m0_sdi1: pdm-m0-sdi1 {
1333				rockchip,pins =
1334					<1 RK_PB2 3 &pcfg_pull_none>;
1335			};
1336
1337			pdm_m0_sdi2: pdm-m0-sdi2 {
1338				rockchip,pins =
1339					<1 RK_PB1 3 &pcfg_pull_none>;
1340			};
1341
1342			pdm_m0_sdi3: pdm-m0-sdi3 {
1343				rockchip,pins =
1344					<1 RK_PB0 3 &pcfg_pull_none>;
1345			};
1346		};
1347
1348		pdm_m1 {
1349			pdm_m1_clk: pdm-m1-clk {
1350				rockchip,pins =
1351					<1 RK_PB6 4 &pcfg_pull_none>;
1352			};
1353
1354			pdm_m1_sdi0: pdm-m1-sdi0 {
1355				rockchip,pins =
1356					<1 RK_PC5 4 &pcfg_pull_none>;
1357			};
1358
1359			pdm_m1_sdi1: pdm-m1-sdi1 {
1360				rockchip,pins =
1361					<1 RK_PC4 4 &pcfg_pull_none>;
1362			};
1363
1364			pdm_m1_sdi2: pdm-m1-sdi2 {
1365				rockchip,pins =
1366					<1 RK_PC3 4 &pcfg_pull_none>;
1367			};
1368
1369			pdm_m1_sdi3: pdm-m1-sdi3 {
1370				rockchip,pins =
1371					<1 RK_PC2 4 &pcfg_pull_none>;
1372			};
1373		};
1374
1375		pdm_m2 {
1376			pdm_m2_clkm: pdm-m2-clkm {
1377				rockchip,pins =
1378					<2 RK_PA4 3 &pcfg_pull_none>;
1379			};
1380
1381			pdm_m2_clk: pdm-m2-clk {
1382				rockchip,pins =
1383					<2 RK_PA6 2 &pcfg_pull_none>;
1384			};
1385
1386			pdm_m2_sdi0: pdm-m2-sdi0 {
1387				rockchip,pins =
1388					<2 RK_PB5 2 &pcfg_pull_none>;
1389			};
1390
1391			pdm_m2_sdi1: pdm-m2-sdi1 {
1392				rockchip,pins =
1393					<2 RK_PB6 2 &pcfg_pull_none>;
1394			};
1395
1396			pdm_m2_sdi2: pdm-m2-sdi2 {
1397				rockchip,pins =
1398					<2 RK_PB7 2 &pcfg_pull_none>;
1399			};
1400
1401			pdm_m2_sdi3: pdm-m2-sdi3 {
1402				rockchip,pins =
1403					<2 RK_PC0 2 &pcfg_pull_none>;
1404			};
1405		};
1406
1407		pwm0 {
1408			pwm0_pin: pwm0-pin {
1409				rockchip,pins =
1410					<0 RK_PB5 1 &pcfg_pull_none>;
1411			};
1412
1413			pwm0_pin_pull_down: pwm0-pin-pull-down {
1414				rockchip,pins =
1415					<0 RK_PB5 1 &pcfg_pull_down>;
1416			};
1417		};
1418
1419		pwm1 {
1420			pwm1_pin: pwm1-pin {
1421				rockchip,pins =
1422					<0 RK_PB6 1 &pcfg_pull_none>;
1423			};
1424
1425			pwm1_pin_pull_down: pwm1-pin-pull-down {
1426				rockchip,pins =
1427					<0 RK_PB6 1 &pcfg_pull_down>;
1428			};
1429		};
1430
1431		pwm2 {
1432			pwm2_pin: pwm2-pin {
1433				rockchip,pins =
1434					<0 RK_PB7 1 &pcfg_pull_none>;
1435			};
1436
1437			pwm2_pin_pull_down: pwm2-pin-pull-down {
1438				rockchip,pins =
1439					<0 RK_PB7 1 &pcfg_pull_down>;
1440			};
1441		};
1442
1443		pwm3 {
1444			pwm3_pin: pwm3-pin {
1445				rockchip,pins =
1446					<0 RK_PC0 1 &pcfg_pull_none>;
1447			};
1448
1449			pwm3_pin_pull_down: pwm3-pin-pull-down {
1450				rockchip,pins =
1451					<0 RK_PC0 1 &pcfg_pull_down>;
1452			};
1453		};
1454
1455		pwm4 {
1456			pwm4_pin: pwm4-pin {
1457				rockchip,pins =
1458					<0 RK_PA1 2 &pcfg_pull_none>;
1459			};
1460
1461			pwm4_pin_pull_down: pwm4-pin-pull-down {
1462				rockchip,pins =
1463					<0 RK_PA1 2 &pcfg_pull_down>;
1464			};
1465		};
1466
1467		pwm5 {
1468			pwm5_pin: pwm5-pin {
1469				rockchip,pins =
1470					<0 RK_PC1 2 &pcfg_pull_none>;
1471			};
1472
1473			pwm5_pin_pull_down: pwm5-pin-pull-down {
1474				rockchip,pins =
1475					<0 RK_PC1 2 &pcfg_pull_down>;
1476			};
1477		};
1478
1479		pwm6 {
1480			pwm6_pin: pwm6-pin {
1481				rockchip,pins =
1482					<0 RK_PC2 2 &pcfg_pull_none>;
1483			};
1484
1485			pwm6_pin_pull_down: pwm6-pin-pull-down {
1486				rockchip,pins =
1487					<0 RK_PC2 2 &pcfg_pull_down>;
1488			};
1489		};
1490
1491		pwm7 {
1492			pwm7_pin: pwm7-pin {
1493				rockchip,pins =
1494					<2 RK_PB0 2 &pcfg_pull_none>;
1495			};
1496
1497			pwm7_pin_pull_down: pwm7-pin-pull-down {
1498				rockchip,pins =
1499					<2 RK_PB0 2 &pcfg_pull_down>;
1500			};
1501		};
1502
1503		pwm8 {
1504			pwm8_pin: pwm8-pin {
1505				rockchip,pins =
1506					<2 RK_PB2 2 &pcfg_pull_none>;
1507			};
1508
1509			pwm8_pin_pull_down: pwm8-pin-pull-down {
1510				rockchip,pins =
1511					<2 RK_PB2 2 &pcfg_pull_down>;
1512			};
1513		};
1514
1515		pwm9 {
1516			pwm9_pin: pwm9-pin {
1517				rockchip,pins =
1518					<2 RK_PB3 2 &pcfg_pull_none>;
1519			};
1520
1521			pwm9_pin_pull_down: pwm9-pin-pull-down {
1522				rockchip,pins =
1523					<2 RK_PB3 2 &pcfg_pull_down>;
1524			};
1525		};
1526
1527		pwm10 {
1528			pwm10_pin: pwm10-pin {
1529				rockchip,pins =
1530					<2 RK_PB4 2 &pcfg_pull_none>;
1531			};
1532
1533			pwm10_pin_pull_down: pwm10-pin-pull-down {
1534				rockchip,pins =
1535					<2 RK_PB4 2 &pcfg_pull_down>;
1536			};
1537		};
1538
1539		pwm11 {
1540			pwm11_pin: pwm11-pin {
1541				rockchip,pins =
1542					<2 RK_PC0 4 &pcfg_pull_none>;
1543			};
1544
1545			pwm11_pin_pull_down: pwm11-pin-pull-down {
1546				rockchip,pins =
1547					<2 RK_PC0 4 &pcfg_pull_down>;
1548			};
1549		};
1550
1551		rtc {
1552			rtc_32k: rtc-32k {
1553				rockchip,pins =
1554					<0 RK_PC3 1 &pcfg_pull_none>;
1555			};
1556		};
1557
1558		sdmmc {
1559			sdmmc_clk: sdmmc-clk {
1560				rockchip,pins =
1561					<4 RK_PD5 1 &pcfg_pull_none_4ma>;
1562			};
1563
1564			sdmmc_cmd: sdmmc-cmd {
1565				rockchip,pins =
1566					<4 RK_PD4 1 &pcfg_pull_up_4ma>;
1567			};
1568
1569			sdmmc_det: sdmmc-det {
1570				rockchip,pins =
1571					<0 RK_PA3 1 &pcfg_pull_up_4ma>;
1572			};
1573
1574			sdmmc_pwren: sdmmc-pwren {
1575				rockchip,pins =
1576					<4 RK_PD6 1 &pcfg_pull_none_4ma>;
1577			};
1578
1579			sdmmc_bus1: sdmmc-bus1 {
1580				rockchip,pins =
1581					<4 RK_PD0 1 &pcfg_pull_up_4ma>;
1582			};
1583
1584			sdmmc_bus4: sdmmc-bus4 {
1585				rockchip,pins =
1586					<4 RK_PD0 1 &pcfg_pull_up_4ma>,
1587					<4 RK_PD1 1 &pcfg_pull_up_4ma>,
1588					<4 RK_PD2 1 &pcfg_pull_up_4ma>,
1589					<4 RK_PD3 1 &pcfg_pull_up_4ma>;
1590			};
1591		};
1592
1593		sdio {
1594			sdio_clk: sdio-clk {
1595				rockchip,pins =
1596					<4 RK_PA5 1 &pcfg_pull_none_8ma>;
1597			};
1598
1599			sdio_cmd: sdio-cmd {
1600				rockchip,pins =
1601					<4 RK_PA4 1 &pcfg_pull_up_8ma>;
1602			};
1603
1604			sdio_pwren: sdio-pwren {
1605				rockchip,pins =
1606					<0 RK_PA2 1 &pcfg_pull_none_8ma>;
1607			};
1608
1609			sdio_wrpt: sdio-wrpt {
1610				rockchip,pins =
1611					<0 RK_PA1 1 &pcfg_pull_none_8ma>;
1612			};
1613
1614			sdio_intn: sdio-intn {
1615				rockchip,pins =
1616					<0 RK_PA0 1 &pcfg_pull_none_8ma>;
1617			};
1618
1619			sdio_bus1: sdio-bus1 {
1620				rockchip,pins =
1621					<4 RK_PA0 1 &pcfg_pull_up_8ma>;
1622			};
1623
1624			sdio_bus4: sdio-bus4 {
1625				rockchip,pins =
1626					<4 RK_PA0 1 &pcfg_pull_up_8ma>,
1627					<4 RK_PA1 1 &pcfg_pull_up_8ma>,
1628					<4 RK_PA2 1 &pcfg_pull_up_8ma>,
1629					<4 RK_PA3 1 &pcfg_pull_up_8ma>;
1630			};
1631		};
1632
1633		spdif_in {
1634			spdif_in: spdif-in {
1635				rockchip,pins =
1636					<0 RK_PC2 1 &pcfg_pull_none>;
1637			};
1638		};
1639
1640		spdif_out {
1641			spdif_out: spdif-out {
1642				rockchip,pins =
1643					<0 RK_PC1 1 &pcfg_pull_none>;
1644			};
1645		};
1646
1647		spi0 {
1648			spi0_clk: spi0-clk {
1649				rockchip,pins =
1650					<2 RK_PA2 2 &pcfg_pull_up_4ma>;
1651			};
1652
1653			spi0_csn0: spi0-csn0 {
1654				rockchip,pins =
1655					<2 RK_PA3 2 &pcfg_pull_up_4ma>;
1656			};
1657
1658			spi0_miso: spi0-miso {
1659				rockchip,pins =
1660					<2 RK_PA0 2 &pcfg_pull_up_4ma>;
1661			};
1662
1663			spi0_mosi: spi0-mosi {
1664				rockchip,pins =
1665					<2 RK_PA1 2 &pcfg_pull_up_4ma>;
1666			};
1667		};
1668
1669		spi1 {
1670			spi1_clk: spi1-clk {
1671				rockchip,pins =
1672					<3 RK_PB3 3 &pcfg_pull_up_4ma>;
1673			};
1674
1675			spi1_csn0: spi1-csn0 {
1676				rockchip,pins =
1677					<3 RK_PB5 3 &pcfg_pull_up_4ma>;
1678			};
1679
1680			spi1_miso: spi1-miso {
1681				rockchip,pins =
1682					<3 RK_PB2 3 &pcfg_pull_up_4ma>;
1683			};
1684
1685			spi1_mosi: spi1-mosi {
1686				rockchip,pins =
1687					<3 RK_PB4 3 &pcfg_pull_up_4ma>;
1688			};
1689		};
1690
1691		spi1-m1 {
1692			spi1m1_miso: spi1m1-miso {
1693				rockchip,pins =
1694					<2 RK_PA4 2 &pcfg_pull_up_4ma>;
1695			};
1696
1697			spi1m1_mosi: spi1m1-mosi {
1698				rockchip,pins =
1699					<2 RK_PA5 2 &pcfg_pull_up_4ma>;
1700			};
1701
1702			spi1m1_clk: spi1m1-clk {
1703				rockchip,pins =
1704					<2 RK_PA7 2 &pcfg_pull_up_4ma>;
1705			};
1706
1707			spi1m1_csn0: spi1m1-csn0 {
1708				rockchip,pins =
1709					<2 RK_PB1 2 &pcfg_pull_up_4ma>;
1710			};
1711		};
1712
1713		spi2 {
1714			spi2_clk: spi2-clk {
1715				rockchip,pins =
1716					<1 RK_PD0 3 &pcfg_pull_up_4ma>;
1717			};
1718
1719			spi2_csn0: spi2-csn0 {
1720				rockchip,pins =
1721					<1 RK_PD1 3 &pcfg_pull_up_4ma>;
1722			};
1723
1724			spi2_miso: spi2-miso {
1725				rockchip,pins =
1726					<1 RK_PC6 3 &pcfg_pull_up_4ma>;
1727			};
1728
1729			spi2_mosi: spi2-mosi {
1730				rockchip,pins =
1731					<1 RK_PC7 3 &pcfg_pull_up_4ma>;
1732			};
1733		};
1734
1735		tsadc {
1736			tsadc_otp_pin: tsadc-otp-pin {
1737				rockchip,pins =
1738					<0 RK_PB2 0 &pcfg_pull_none>;
1739			};
1740
1741			tsadc_otp_out: tsadc-otp-out {
1742				rockchip,pins =
1743					<0 RK_PB2 1 &pcfg_pull_none>;
1744			};
1745		};
1746
1747		uart0 {
1748			uart0_xfer: uart0-xfer {
1749				rockchip,pins =
1750					<2 RK_PA1 1 &pcfg_pull_up>,
1751					<2 RK_PA0 1 &pcfg_pull_up>;
1752			};
1753
1754			uart0_cts: uart0-cts {
1755				rockchip,pins =
1756					<2 RK_PA2 1 &pcfg_pull_none>;
1757			};
1758
1759			uart0_rts: uart0-rts {
1760				rockchip,pins =
1761					<2 RK_PA3 1 &pcfg_pull_none>;
1762			};
1763
1764			uart0_rts_pin: uart0-rts-pin {
1765				rockchip,pins =
1766					<2 RK_PA3 0 &pcfg_pull_none>;
1767			};
1768		};
1769
1770		uart1 {
1771			uart1_xfer: uart1-xfer {
1772				rockchip,pins =
1773					<1 RK_PD1 1 &pcfg_pull_up>,
1774					<1 RK_PD0 1 &pcfg_pull_up>;
1775			};
1776
1777			uart1_cts: uart1-cts {
1778				rockchip,pins =
1779					<1 RK_PC6 1 &pcfg_pull_none>;
1780			};
1781
1782			uart1_rts: uart1-rts {
1783				rockchip,pins =
1784					<1 RK_PC7 1 &pcfg_pull_none>;
1785			};
1786		};
1787
1788		uart2-m0 {
1789			uart2m0_xfer: uart2m0-xfer {
1790				rockchip,pins =
1791					<1 RK_PC7 2 &pcfg_pull_up>,
1792					<1 RK_PC6 2 &pcfg_pull_up>;
1793			};
1794		};
1795
1796		uart2-m1 {
1797			uart2m1_xfer: uart2m1-xfer {
1798				rockchip,pins =
1799					<4 RK_PD3 2 &pcfg_pull_up>,
1800					<4 RK_PD2 2 &pcfg_pull_up>;
1801			};
1802		};
1803
1804		uart3 {
1805			uart3_xfer: uart3-xfer {
1806				rockchip,pins =
1807					<3 RK_PB5 4 &pcfg_pull_up>,
1808					<3 RK_PB4 4 &pcfg_pull_up>;
1809			};
1810		};
1811
1812		uart3-m1 {
1813			uart3m1_xfer: uart3m1-xfer {
1814				rockchip,pins =
1815					<0 RK_PC2 3 &pcfg_pull_up>,
1816					<0 RK_PC1 3 &pcfg_pull_up>;
1817			};
1818		};
1819
1820		uart4 {
1821			uart4_xfer: uart4-xfer {
1822				rockchip,pins =
1823					<4 RK_PB1 1 &pcfg_pull_up>,
1824					<4 RK_PB0 1 &pcfg_pull_up>;
1825			};
1826
1827			uart4_cts: uart4-cts {
1828				rockchip,pins =
1829					<4 RK_PA6 1 &pcfg_pull_none>;
1830			};
1831
1832			uart4_rts: uart4-rts {
1833				rockchip,pins =
1834					<4 RK_PA7 1 &pcfg_pull_none>;
1835			};
1836
1837			uart4_rts_pin: uart4-rts-pin {
1838				rockchip,pins =
1839					<4 RK_PA7 0 &pcfg_pull_none>;
1840			};
1841		};
1842	};
1843};
1844