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