xref: /openbmc/u-boot/arch/arm/dts/rk3328.dtsi (revision 78a88f79)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * (C) Copyright 2016 Rockchip Electronics Co., Ltd
4 */
5
6#include <dt-bindings/clock/rk3328-cru.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/pinctrl/rockchip.h>
11
12/ {
13	compatible = "rockchip,rk3328";
14
15	interrupt-parent = <&gic>;
16	#address-cells = <2>;
17	#size-cells = <2>;
18
19	aliases {
20		serial0 = &uart0;
21		serial1 = &uart1;
22		serial2 = &uart2;
23		i2c0 = &i2c0;
24		i2c1 = &i2c1;
25		i2c2 = &i2c2;
26		i2c3 = &i2c3;
27		mmc0 = &emmc;
28		mmc1 = &sdmmc;
29		mmc2 = &sdmmc_ext;
30	};
31
32	cpus {
33		#address-cells = <2>;
34		#size-cells = <0>;
35
36		cpu0: cpu@0 {
37			device_type = "cpu";
38			compatible = "arm,cortex-a53", "arm,armv8";
39			reg = <0x0 0x0>;
40			enable-method = "psci";
41//			clocks = <&cru ARMCLK>;
42			operating-points-v2 = <&cpu0_opp_table>;
43		};
44		cpu1: cpu@1 {
45			device_type = "cpu";
46			compatible = "arm,cortex-a53", "arm,armv8";
47			reg = <0x0 0x1>;
48			enable-method = "psci";
49		};
50		cpu2: cpu@2 {
51			device_type = "cpu";
52			compatible = "arm,cortex-a53", "arm,armv8";
53			reg = <0x0 0x2>;
54			enable-method = "psci";
55		};
56		cpu3: cpu@3 {
57			device_type = "cpu";
58			compatible = "arm,cortex-a53", "arm,armv8";
59			reg = <0x0 0x3>;
60			enable-method = "psci";
61		};
62	};
63
64	cpu0_opp_table: opp_table0 {
65		compatible = "operating-points-v2";
66		opp-shared;
67
68		opp@408000000 {
69			opp-hz = /bits/ 64 <408000000>;
70			opp-microvolt = <950000>;
71			clock-latency-ns = <40000>;
72			opp-suspend;
73		};
74		opp@600000000 {
75			opp-hz = /bits/ 64 <600000000>;
76			opp-microvolt = <950000>;
77			clock-latency-ns = <40000>;
78		};
79		opp@816000000 {
80			opp-hz = /bits/ 64 <816000000>;
81			opp-microvolt = <1000000>;
82			clock-latency-ns = <40000>;
83		};
84		opp@1008000000 {
85			opp-hz = /bits/ 64 <1008000000>;
86			opp-microvolt = <1100000>;
87			clock-latency-ns = <40000>;
88		};
89		opp@1200000000 {
90			opp-hz = /bits/ 64 <1200000000>;
91			opp-microvolt = <1225000>;
92			clock-latency-ns = <40000>;
93		};
94		opp@1296000000 {
95			opp-hz = /bits/ 64 <1296000000>;
96			opp-microvolt = <1300000>;
97			clock-latency-ns = <40000>;
98		};
99	};
100
101	arm-pmu {
102		compatible = "arm,cortex-a53-pmu";
103		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
104			     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
105			     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
106			     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
107		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
108	};
109
110	psci {
111		compatible = "arm,psci-1.0";
112		method = "smc";
113	};
114
115	timer {
116		compatible = "arm,armv8-timer";
117		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
118			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
119			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
120			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
121	};
122
123	xin24m: xin24m {
124		compatible = "fixed-clock";
125		#clock-cells = <0>;
126		clock-frequency = <24000000>;
127		clock-output-names = "xin24m";
128	};
129
130	i2s0: i2s@ff000000 {
131		compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
132		reg = <0x0 0xff000000 0x0 0x1000>;
133		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
134		clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0_8CH>;
135		clock-names = "i2s_clk", "i2s_hclk";
136		dmas = <&dmac 11>, <&dmac 12>;
137		#dma-cells = <2>;
138		dma-names = "tx", "rx";
139		status = "disabled";
140	};
141
142	i2s1: i2s@ff010000 {
143		compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
144		reg = <0x0 0xff010000 0x0 0x1000>;
145		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
146		clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>;
147		clock-names = "i2s_clk", "i2s_hclk";
148		dmas = <&dmac 14>, <&dmac 15>;
149		#dma-cells = <2>;
150		dma-names = "tx", "rx";
151		status = "disabled";
152	};
153
154	i2s2: i2s@ff020000 {
155		compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
156		reg = <0x0 0xff020000 0x0 0x1000>;
157		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
158		clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2_2CH>;
159		clock-names = "i2s_clk", "i2s_hclk";
160		dmas = <&dmac 0>, <&dmac 1>;
161		#dma-cells = <2>;
162		dma-names = "tx", "rx";
163		pinctrl-names = "default", "sleep";
164		pinctrl-0 = <&i2s2m0_mclk
165			     &i2s2m0_sclk
166			     &i2s2m0_lrcktx
167			     &i2s2m0_lrckrx
168			     &i2s2m0_sdo
169			     &i2s2m0_sdi>;
170		pinctrl-1 = <&i2s2m0_sleep>;
171		status = "disabled";
172	};
173
174	spdif: spdif@ff030000 {
175		compatible = "rockchip,rk3328-spdif";
176		reg = <0x0 0xff030000 0x0 0x1000>;
177		interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
178		clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF_8CH>;
179		clock-names = "mclk", "hclk";
180		dmas = <&dmac 10>;
181		#dma-cells = <1>;
182		dma-names = "tx";
183		pinctrl-names = "default";
184		pinctrl-0 = <&spdifm2_tx>;
185		status = "disabled";
186	};
187
188	grf: syscon@ff100000 {
189		u-boot,dm-pre-reloc;
190		compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
191		reg = <0x0 0xff100000 0x0 0x1000>;
192		#address-cells = <1>;
193		#size-cells = <1>;
194
195		io_domains: io-domains {
196			compatible = "rockchip,rk3328-io-voltage-domain";
197			status = "disabled";
198		};
199	};
200
201	uart0: serial@ff110000 {
202		compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
203		reg = <0x0 0xff110000 0x0 0x100>;
204		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
205		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
206		clock-names = "baudclk", "apb_pclk";
207		reg-shift = <2>;
208		reg-io-width = <4>;
209		dmas = <&dmac 2>, <&dmac 3>;
210		#dma-cells = <2>;
211		pinctrl-names = "default";
212		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
213		status = "disabled";
214	};
215
216	uart1: serial@ff120000 {
217		compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
218		reg = <0x0 0xff120000 0x0 0x100>;
219		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
220		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
221		clock-names = "sclk_uart", "pclk_uart";
222		reg-shift = <2>;
223		reg-io-width = <4>;
224		dmas = <&dmac 4>, <&dmac 5>;
225		#dma-cells = <2>;
226		pinctrl-names = "default";
227		pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
228		status = "disabled";
229	};
230
231	uart2: serial@ff130000 {
232		compatible = "rockchip,rk3328-uart", "snps,dw-apb-uart";
233		reg = <0x0 0xff130000 0x0 0x100>;
234		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
235		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
236		clock-names = "baudclk", "apb_pclk";
237		clock-frequency = <24000000>;
238		reg-shift = <2>;
239		reg-io-width = <4>;
240		dmas = <&dmac 6>, <&dmac 7>;
241		#dma-cells = <2>;
242		pinctrl-names = "default";
243		pinctrl-0 = <&uart2m1_xfer>;
244		status = "disabled";
245	};
246
247	pmu: power-management@ff140000 {
248		compatible = "rockchip,rk3328-pmu", "syscon", "simple-mfd";
249		reg = <0x0 0xff140000 0x0 0x1000>;
250	};
251
252	i2c0: i2c@ff150000 {
253		compatible = "rockchip,rk3328-i2c";
254		reg = <0x0 0xff150000 0x0 0x1000>;
255		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
256		#address-cells = <1>;
257		#size-cells = <0>;
258		clocks = <&cru SCLK_I2C0>, <&cru PCLK_I2C0>;
259		clock-names = "i2c", "pclk";
260		pinctrl-names = "default";
261		pinctrl-0 = <&i2c0_xfer>;
262		status = "disabled";
263	};
264
265	i2c1: i2c@ff160000 {
266		compatible = "rockchip,rk3328-i2c";
267		reg = <0x0 0xff160000 0x0 0x1000>;
268		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
269		#address-cells = <1>;
270		#size-cells = <0>;
271		clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
272		clock-names = "i2c", "pclk";
273		pinctrl-names = "default";
274		pinctrl-0 = <&i2c1_xfer>;
275		status = "disabled";
276	};
277
278	i2c2: i2c@ff170000 {
279		compatible = "rockchip,rk3328-i2c";
280		reg = <0x0 0xff170000 0x0 0x1000>;
281		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
282		#address-cells = <1>;
283		#size-cells = <0>;
284		clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
285		clock-names = "i2c", "pclk";
286		pinctrl-names = "default";
287		pinctrl-0 = <&i2c2_xfer>;
288		status = "disabled";
289	};
290
291	i2c3: i2c@ff180000 {
292		compatible = "rockchip,rk3328-i2c";
293		reg = <0x0 0xff180000 0x0 0x1000>;
294		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
295		#address-cells = <1>;
296		#size-cells = <0>;
297		clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
298		clock-names = "i2c", "pclk";
299		pinctrl-names = "default";
300		pinctrl-0 = <&i2c3_xfer>;
301		status = "disabled";
302	};
303
304	spi0: spi@ff190000 {
305		compatible = "rockchip,rk3328-spi", "rockchip,rk3066-spi";
306		reg = <0x0 0xff190000 0x0 0x1000>;
307		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
308		#address-cells = <1>;
309		#size-cells = <0>;
310		clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
311		clock-names = "spiclk", "apb_pclk";
312		dmas = <&dmac 8>, <&dmac 9>;
313		#dma-cells = <2>;
314		dma-names = "tx", "rx";
315		pinctrl-names = "default";
316		pinctrl-0 = <&spi0m2_clk &spi0m2_tx &spi0m2_rx &spi0m2_cs0>;
317		status = "disabled";
318	};
319
320	wdt: watchdog@ff1a0000 {
321		compatible = "snps,dw-wdt";
322		reg = <0x0 0xff1a0000 0x0 0x100>;
323		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
324		status = "disabled";
325	};
326
327	amba {
328		compatible = "simple-bus";
329		#address-cells = <2>;
330		#size-cells = <2>;
331		ranges;
332
333		dmac: dmac@ff1f0000 {
334			compatible = "arm,pl330", "arm,primecell";
335			reg = <0x0 0xff1f0000 0x0 0x4000>;
336			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
337				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
338			clocks = <&cru ACLK_DMAC>;
339			clock-names = "apb_pclk";
340			#dma-cells = <1>;
341		};
342	};
343
344	saradc: saradc@ff280000 {
345		compatible = "rockchip,rk3328-saradc", "rockchip,saradc";
346		reg = <0x0 0xff280000 0x0 0x100>;
347		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
348		#io-channel-cells = <1>;
349		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
350		clock-names = "saradc", "apb_pclk";
351		resets = <&cru SRST_SARADC_P>;
352		reset-names = "saradc-apb";
353		status = "disabled";
354	};
355
356	dmc: dmc@ff400000 {
357		u-boot,dm-pre-reloc;
358		compatible = "rockchip,rk3328-dmc", "syscon";
359		reg = <0x0 0xff400000 0x0 0x1000>;
360	};
361
362	cru: clock-controller@ff440000 {
363		compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon";
364		reg = <0x0 0xff440000 0x0 0x1000>;
365		rockchip,grf = <&grf>;
366		#clock-cells = <1>;
367		#reset-cells = <1>;
368		assigned-clocks =
369			<&cru DCLK_LCDC>, <&cru SCLK_PDM>,
370			<&cru SCLK_RTC32K>, <&cru SCLK_UART0>,
371			<&cru SCLK_UART1>, <&cru SCLK_UART2>,
372			<&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
373			<&cru ACLK_VIO_PRE>, <&cru ACLK_RGA_PRE>,
374			<&cru ACLK_VOP_PRE>, <&cru ACLK_RKVDEC_PRE>,
375			<&cru ACLK_RKVENC>, <&cru ACLK_VPU_PRE>,
376			<&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>,
377			<&cru SCLK_VENC_CORE>, <&cru SCLK_VENC_DSP>,
378			<&cru SCLK_SDIO>, <&cru SCLK_TSP>,
379			<&cru SCLK_WIFI>, <&cru ARMCLK>,
380			<&cru PLL_GPLL>, <&cru PLL_CPLL>,
381			<&cru ACLK_BUS_PRE>, <&cru HCLK_BUS_PRE>,
382			<&cru PCLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
383			<&cru HCLK_PERI>, <&cru PCLK_PERI>,
384			<&cru ACLK_VIO_PRE>, <&cru HCLK_VIO_PRE>,
385			<&cru ACLK_RGA_PRE>, <&cru SCLK_RGA>,
386			<&cru ACLK_VOP_PRE>, <&cru ACLK_RKVDEC_PRE>,
387			<&cru ACLK_RKVENC>, <&cru ACLK_VPU_PRE>,
388			<&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>,
389			<&cru SCLK_VENC_CORE>, <&cru SCLK_VENC_DSP>,
390			<&cru SCLK_EFUSE>, <&cru PCLK_DDR>,
391			<&cru ACLK_GMAC>, <&cru PCLK_GMAC>,
392			<&cru SCLK_RTC32K>, <&cru SCLK_USB3OTG_SUSPEND>;
393		assigned-clock-parents =
394			<&cru HDMIPHY>, <&cru PLL_APLL>,
395			<&cru PLL_GPLL>, <&xin24m>,
396			<&xin24m>, <&xin24m>;
397		assigned-clock-rates =
398			<0>, <61440000>,
399			<0>, <24000000>,
400			<24000000>, <24000000>,
401			<15000000>, <15000000>,
402			<100000000>, <100000000>,
403			<100000000>, <100000000>,
404			<50000000>, <100000000>,
405			<100000000>, <100000000>,
406			<50000000>, <50000000>,
407			<50000000>, <50000000>,
408			<24000000>, <600000000>,
409			<491520000>, <1200000000>,
410			<150000000>, <75000000>,
411			<75000000>, <150000000>,
412			<75000000>, <75000000>,
413			<300000000>, <100000000>,
414			<300000000>, <200000000>,
415			<400000000>, <500000000>,
416			<200000000>, <300000000>,
417			<300000000>, <250000000>,
418			<200000000>, <100000000>,
419			<24000000>, <100000000>,
420			<150000000>, <50000000>,
421			<32768>, <32768>;
422	};
423
424	sdmmc: rksdmmc@ff500000 {
425		compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
426		reg = <0x0 0xff500000 0x0 0x4000>;
427		max-frequency = <150000000>;
428		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
429		clock-names = "biu", "ciu";
430		fifo-depth = <0x100>;
431		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
432		status = "disabled";
433	};
434
435	sdio: dwmmc@ff510000 {
436		compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
437		reg = <0x0 0xff510000 0x0 0x4000>;
438		max-frequency = <150000000>;
439		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
440			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
441		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
442		fifo-depth = <0x100>;
443		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
444		status = "disabled";
445	};
446
447	emmc: rksdmmc@ff520000 {
448		compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
449		reg = <0x0 0xff520000 0x0 0x4000>;
450		max-frequency = <150000000>;
451		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
452		clock-names = "biu", "ciu";
453		fifo-depth = <0x100>;
454		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
455		status = "disabled";
456	};
457
458	gmac2io: ethernet@ff540000 {
459		compatible = "rockchip,rk3328-gmac";
460		reg = <0x0 0xff540000 0x0 0x10000>;
461		rockchip,grf = <&grf>;
462		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
463		interrupt-names = "macirq";
464		clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_RX>,
465			 <&cru SCLK_MAC2IO_TX>, <&cru SCLK_MAC2IO_REF>,
466			 <&cru SCLK_MAC2IO_REFOUT>, <&cru ACLK_MAC2IO>,
467			 <&cru PCLK_MAC2IO>;
468		clock-names = "stmmaceth", "mac_clk_rx",
469			      "mac_clk_tx", "clk_mac_ref",
470			      "clk_mac_refout", "aclk_mac",
471			      "pclk_mac";
472		resets = <&cru SRST_GMAC2IO_A>;
473		reset-names = "stmmaceth";
474		status = "disabled";
475	};
476
477	usb_host0_ehci: usb@ff5c0000 {
478		compatible = "generic-ehci";
479		reg = <0x0 0xff5c0000 0x0 0x10000>;
480		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
481		status = "disabled";
482	};
483
484	usb_host0_ohci: usb@ff5d0000 {
485		compatible = "generic-ohci";
486		reg = <0x0 0xff5d0000 0x0 0x10000>;
487		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
488		status = "disabled";
489	};
490
491	usb20_otg: usb@ff580000 {
492		compatible = "rockchip,rk3328-usb", "rockchip,rk3066-usb",
493			     "snps,dwc2";
494		reg = <0x0 0xff580000 0x0 0x40000>;
495		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
496		hnp-srp-disable;
497		dr_mode = "otg";
498		status = "disabled";
499	};
500
501	sdmmc_ext: rksdmmc@ff5f0000 {
502		compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
503		reg = <0x0 0xff5f0000 0x0 0x4000>;
504		max-frequency = <150000000>;
505		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
506		clock-names = "biu", "ciu";
507		fifo-depth = <0x100>;
508		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
509		status = "disabled";
510	};
511
512	usb_host0_xhci: usb@ff600000 {
513		compatible = "rockchip,rk3328-xhci";
514		reg = <0x0 0xff600000 0x0 0x100000>;
515		interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
516		snps,dis-enblslpm-quirk;
517		snps,phyif-utmi-bits = <16>;
518		snps,dis-u2-freeclk-exists-quirk;
519		snps,dis-u2-susphy-quirk;
520		status = "disabled";
521	};
522
523	gic: interrupt-controller@ffb70000 {
524		compatible = "arm,gic-400";
525		#interrupt-cells = <3>;
526		#address-cells = <0>;
527		interrupt-controller;
528		reg = <0x0 0xff811000 0 0x1000>,
529		      <0x0 0xff812000 0 0x2000>,
530		      <0x0 0xff814000 0 0x2000>,
531		      <0x0 0xff816000 0 0x2000>;
532		interrupts = <GIC_PPI 9
533		      (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
534	};
535
536	pinctrl: pinctrl {
537		compatible = "rockchip,rk3328-pinctrl";
538		rockchip,grf = <&grf>;
539		#address-cells = <2>;
540		#size-cells = <2>;
541		ranges;
542
543		gpio0: gpio0@ff210000 {
544			compatible = "rockchip,gpio-bank";
545			reg = <0x0 0xff210000 0x0 0x100>;
546			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
547			clocks = <&cru PCLK_GPIO0>;
548
549			gpio-controller;
550			#gpio-cells = <2>;
551
552			interrupt-controller;
553			#interrupt-cells = <2>;
554		};
555
556		gpio1: gpio1@ff220000 {
557			compatible = "rockchip,gpio-bank";
558			reg = <0x0 0xff220000 0x0 0x100>;
559			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
560			clocks = <&cru PCLK_GPIO1>;
561
562			gpio-controller;
563			#gpio-cells = <2>;
564
565			interrupt-controller;
566			#interrupt-cells = <2>;
567		};
568
569		gpio2: gpio2@ff230000 {
570			compatible = "rockchip,gpio-bank";
571			reg = <0x0 0xff230000 0x0 0x100>;
572			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
573			clocks = <&cru PCLK_GPIO2>;
574
575			gpio-controller;
576			#gpio-cells = <2>;
577
578			interrupt-controller;
579			#interrupt-cells = <2>;
580		};
581
582		gpio3: gpio3@ff240000 {
583			compatible = "rockchip,gpio-bank";
584			reg = <0x0 0xff240000 0x0 0x100>;
585			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
586			clocks = <&cru PCLK_GPIO3>;
587
588			gpio-controller;
589			#gpio-cells = <2>;
590
591			interrupt-controller;
592			#interrupt-cells = <2>;
593		};
594
595		pcfg_pull_up: pcfg-pull-up {
596			bias-pull-up;
597		};
598
599		pcfg_pull_down: pcfg-pull-down {
600			bias-pull-down;
601		};
602
603		pcfg_pull_none: pcfg-pull-none {
604			bias-disable;
605		};
606
607		pcfg_pull_none_2ma: pcfg-pull-none-2ma {
608			bias-disable;
609			drive-strength = <2>;
610		};
611
612		pcfg_pull_up_2ma: pcfg-pull-up-2ma {
613			bias-pull-up;
614			drive-strength = <2>;
615		};
616
617		pcfg_pull_up_4ma: pcfg-pull-up-4ma {
618			bias-pull-up;
619			drive-strength = <4>;
620		};
621
622		pcfg_pull_none_4ma: pcfg-pull-none-4ma {
623			bias-disable;
624			drive-strength = <4>;
625		};
626
627		pcfg_pull_down_4ma: pcfg-pull-down-4ma {
628			bias-pull-down;
629			drive-strength = <4>;
630		};
631
632		pcfg_pull_none_8ma: pcfg-pull-none-8ma {
633			bias-disable;
634			drive-strength = <8>;
635		};
636
637		pcfg_pull_up_8ma: pcfg-pull-up-8ma {
638			bias-pull-up;
639			drive-strength = <8>;
640		};
641
642		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
643			bias-disable;
644			drive-strength = <12>;
645		};
646
647		pcfg_pull_up_12ma: pcfg-pull-up-12ma {
648			bias-pull-up;
649			drive-strength = <12>;
650		};
651
652		pcfg_output_high: pcfg-output-high {
653			output-high;
654		};
655
656		pcfg_output_low: pcfg-output-low {
657			output-low;
658		};
659
660		pcfg_input_high: pcfg-input-high {
661			bias-pull-up;
662			input-enable;
663		};
664
665		pcfg_input: pcfg-input {
666			input-enable;
667		};
668
669		i2c0 {
670			i2c0_xfer: i2c0-xfer {
671				rockchip,pins =
672					<2 24 RK_FUNC_1 &pcfg_pull_none>,
673					<2 25 RK_FUNC_1 &pcfg_pull_none>;
674			};
675		};
676
677		i2c1 {
678			i2c1_xfer: i2c1-xfer {
679				rockchip,pins =
680					<2 4 RK_FUNC_2 &pcfg_pull_none>,
681					<2 5 RK_FUNC_2 &pcfg_pull_none>;
682			};
683		};
684
685		i2c2 {
686			i2c2_xfer: i2c2-xfer {
687				rockchip,pins =
688					<2 13 RK_FUNC_1 &pcfg_pull_none>,
689					<2 14 RK_FUNC_1 &pcfg_pull_none>;
690			};
691		};
692
693		i2c3 {
694			i2c3_xfer: i2c3-xfer {
695				rockchip,pins =
696					<0 5 RK_FUNC_2 &pcfg_pull_none>,
697					<0 6 RK_FUNC_2 &pcfg_pull_none>;
698			};
699			i2c3_gpio: i2c3-gpio {
700				rockchip,pins =
701					<0 5 RK_FUNC_GPIO &pcfg_pull_none>,
702					<0 6 RK_FUNC_GPIO &pcfg_pull_none>;
703			};
704		};
705
706		hdmi_i2c {
707			hdmii2c_xfer: hdmii2c-xfer {
708				rockchip,pins =
709					<0 5 RK_FUNC_1 &pcfg_pull_none>,
710					<0 6 RK_FUNC_1 &pcfg_pull_none>;
711			};
712		};
713
714		uart0 {
715			uart0_xfer: uart0-xfer {
716				rockchip,pins =
717					<1 9 RK_FUNC_1 &pcfg_pull_up>,
718					<1 8 RK_FUNC_1 &pcfg_pull_none>;
719			};
720
721			uart0_cts: uart0-cts {
722				rockchip,pins =
723					<1 11 RK_FUNC_1 &pcfg_pull_none>;
724			};
725
726			uart0_rts: uart0-rts {
727				rockchip,pins =
728					<1 10 RK_FUNC_1 &pcfg_pull_none>;
729			};
730
731			uart0_rts_gpio: uart0-rts-gpio {
732				rockchip,pins =
733					<1 10 RK_FUNC_GPIO &pcfg_pull_none>;
734			};
735		};
736
737		uart1 {
738			uart1_xfer: uart1-xfer {
739				rockchip,pins =
740					<3 4 RK_FUNC_4 &pcfg_pull_up>,
741					<3 6 RK_FUNC_4 &pcfg_pull_none>;
742			};
743
744			uart1_cts: uart1-cts {
745				rockchip,pins =
746					<3 7 RK_FUNC_4 &pcfg_pull_none>;
747			};
748
749			uart1_rts: uart1-rts {
750				rockchip,pins =
751					<3 5 RK_FUNC_4 &pcfg_pull_none>;
752			};
753
754			uart1_rts_gpio: uart1-rts-gpio {
755				rockchip,pins =
756					<3 5 RK_FUNC_GPIO &pcfg_pull_none>;
757			};
758		};
759
760		uart2-0 {
761			uart2m0_xfer: uart2m0-xfer {
762				rockchip,pins =
763					<1 0 RK_FUNC_2 &pcfg_pull_up>,
764					<1 1 RK_FUNC_2 &pcfg_pull_none>;
765			};
766		};
767
768		uart2-1 {
769			uart2m1_xfer: uart2m1-xfer {
770				rockchip,pins =
771					<2 0 RK_FUNC_1 &pcfg_pull_up>,
772					<2 1 RK_FUNC_1 &pcfg_pull_none>;
773			};
774		};
775
776		spi0-0 {
777			spi0m0_clk: spi0m0-clk {
778				rockchip,pins =
779					<2 8 RK_FUNC_1 &pcfg_pull_up>;
780			};
781
782			spi0m0_cs0: spi0m0-cs0 {
783				rockchip,pins =
784					<2 11 RK_FUNC_1 &pcfg_pull_up>;
785			};
786
787			spi0m0_tx: spi0m0-tx {
788				rockchip,pins =
789					<2 9 RK_FUNC_1 &pcfg_pull_up>;
790			};
791
792			spi0m0_rx: spi0m0-rx {
793				rockchip,pins =
794					<2 10 RK_FUNC_1 &pcfg_pull_up>;
795			};
796
797			spi0m0_cs1: spi0m0-cs1 {
798				rockchip,pins =
799					<2 12 RK_FUNC_1 &pcfg_pull_up>;
800			};
801		};
802
803		spi0-1 {
804			spi0m1_clk: spi0m1-clk {
805				rockchip,pins =
806					<3 23 RK_FUNC_2 &pcfg_pull_up>;
807			};
808
809			spi0m1_cs0: spi0m1-cs0 {
810				rockchip,pins =
811					<3 26 RK_FUNC_2 &pcfg_pull_up>;
812			};
813
814			spi0m1_tx: spi0m1-tx {
815				rockchip,pins =
816					<3 25 RK_FUNC_2 &pcfg_pull_up>;
817			};
818
819			spi0m1_rx: spi0m1-rx {
820				rockchip,pins =
821					<3 24 RK_FUNC_2 &pcfg_pull_up>;
822			};
823
824			spi0m1_cs1: spi0m1-cs1 {
825				rockchip,pins =
826					<3 27 RK_FUNC_2 &pcfg_pull_up>;
827			};
828		};
829
830		spi0-2 {
831			spi0m2_clk: spi0m2-clk {
832				rockchip,pins =
833					<3 0 RK_FUNC_4 &pcfg_pull_up>;
834			};
835
836			spi0m2_cs0: spi0m2-cs0 {
837				rockchip,pins =
838					<3 8 RK_FUNC_3 &pcfg_pull_up>;
839			};
840
841			spi0m2_tx: spi0m2-tx {
842				rockchip,pins =
843					<3 1 RK_FUNC_4 &pcfg_pull_up>;
844			};
845
846			spi0m2_rx: spi0m2-rx {
847				rockchip,pins =
848					<3 2 RK_FUNC_4 &pcfg_pull_up>;
849			};
850		};
851
852		i2s1 {
853			i2s1_mclk: i2s1-mclk {
854				rockchip,pins =
855					<2 15 RK_FUNC_1 &pcfg_pull_none>;
856			};
857
858			i2s1_sclk: i2s1-sclk {
859				rockchip,pins =
860					<2 18 RK_FUNC_1 &pcfg_pull_none>;
861			};
862
863			i2s1_lrckrx: i2s1-lrckrx {
864				rockchip,pins =
865					<2 16 RK_FUNC_1 &pcfg_pull_none>;
866			};
867
868			i2s1_lrcktx: i2s1-lrcktx {
869				rockchip,pins =
870					<2 17 RK_FUNC_1 &pcfg_pull_none>;
871			};
872
873			i2s1_sdi: i2s1-sdi {
874				rockchip,pins =
875					<2 19 RK_FUNC_1 &pcfg_pull_none>;
876			};
877
878			i2s1_sdo: i2s1-sdo {
879				rockchip,pins =
880					<2 23 RK_FUNC_1 &pcfg_pull_none>;
881			};
882
883			i2s1_sdio1: i2s1-sdio1 {
884				rockchip,pins =
885					<2 20 RK_FUNC_1 &pcfg_pull_none>;
886			};
887
888			i2s1_sdio2: i2s1-sdio2 {
889				rockchip,pins =
890					<2 21 RK_FUNC_1 &pcfg_pull_none>;
891			};
892
893			i2s1_sdio3: i2s1-sdio3 {
894				rockchip,pins =
895					<2 22 RK_FUNC_1 &pcfg_pull_none>;
896			};
897
898			i2s1_sleep: i2s1-sleep {
899				rockchip,pins =
900					<2 15 RK_FUNC_GPIO &pcfg_input_high>,
901					<2 16 RK_FUNC_GPIO &pcfg_input_high>,
902					<2 17 RK_FUNC_GPIO &pcfg_input_high>,
903					<2 18 RK_FUNC_GPIO &pcfg_input_high>,
904					<2 19 RK_FUNC_GPIO &pcfg_input_high>,
905					<2 20 RK_FUNC_GPIO &pcfg_input_high>,
906					<2 21 RK_FUNC_GPIO &pcfg_input_high>,
907					<2 22 RK_FUNC_GPIO &pcfg_input_high>,
908					<2 23 RK_FUNC_GPIO &pcfg_input_high>;
909			};
910		};
911
912		i2s2-0 {
913			i2s2m0_mclk: i2s2m0-mclk {
914				rockchip,pins =
915					<1 21 RK_FUNC_1 &pcfg_pull_none>;
916			};
917
918			i2s2m0_sclk: i2s2m0-sclk {
919				rockchip,pins =
920					<1 22 RK_FUNC_1 &pcfg_pull_none>;
921			};
922
923			i2s2m0_lrckrx: i2s2m0-lrckrx {
924				rockchip,pins =
925					<1 26 RK_FUNC_1 &pcfg_pull_none>;
926			};
927
928			i2s2m0_lrcktx: i2s2m0-lrcktx {
929				rockchip,pins =
930					<1 23 RK_FUNC_1 &pcfg_pull_none>;
931			};
932
933			i2s2m0_sdi: i2s2m0-sdi {
934				rockchip,pins =
935					<1 24 RK_FUNC_1 &pcfg_pull_none>;
936			};
937
938			i2s2m0_sdo: i2s2m0-sdo {
939				rockchip,pins =
940					<1 25 RK_FUNC_1 &pcfg_pull_none>;
941			};
942
943			i2s2m0_sleep: i2s2m0-sleep {
944				rockchip,pins =
945					<1 21 RK_FUNC_GPIO &pcfg_input_high>,
946					<1 22 RK_FUNC_GPIO &pcfg_input_high>,
947					<1 26 RK_FUNC_GPIO &pcfg_input_high>,
948					<1 23 RK_FUNC_GPIO &pcfg_input_high>,
949					<1 24 RK_FUNC_GPIO &pcfg_input_high>,
950					<1 25 RK_FUNC_GPIO &pcfg_input_high>;
951			};
952		};
953
954		i2s2-1 {
955			i2s2m1_mclk: i2s2m1-mclk {
956				rockchip,pins =
957					<1 21 RK_FUNC_1 &pcfg_pull_none>;
958			};
959
960			i2s2m1_sclk: i2s2m1-sclk {
961				rockchip,pins =
962					<3 0 RK_FUNC_6 &pcfg_pull_none>;
963			};
964
965			i2s2m1_lrckrx: i2sm1-lrckrx {
966				rockchip,pins =
967					<3 8 RK_FUNC_6 &pcfg_pull_none>;
968			};
969
970			i2s2m1_lrcktx: i2s2m1-lrcktx {
971				rockchip,pins =
972					<3 8 RK_FUNC_4 &pcfg_pull_none>;
973			};
974
975			i2s2m1_sdi: i2s2m1-sdi {
976				rockchip,pins =
977					<3 2 RK_FUNC_6 &pcfg_pull_none>;
978			};
979
980			i2s2m1_sdo: i2s2m1-sdo {
981				rockchip,pins =
982					<3 1 RK_FUNC_6 &pcfg_pull_none>;
983			};
984
985			i2s2m1_sleep: i2s2m1-sleep {
986				rockchip,pins =
987					<1 21 RK_FUNC_GPIO &pcfg_input_high>,
988					<3 0 RK_FUNC_GPIO &pcfg_input_high>,
989					<3 8 RK_FUNC_GPIO &pcfg_input_high>,
990					<3 2 RK_FUNC_GPIO &pcfg_input_high>,
991					<3 1 RK_FUNC_GPIO &pcfg_input_high>;
992			};
993		};
994
995		spdif-0 {
996			spdifm0_tx: spdifm0-tx {
997				rockchip,pins =
998					<0 27 RK_FUNC_1 &pcfg_pull_none>;
999			};
1000		};
1001
1002		spdif-1 {
1003			spdifm1_tx: spdifm1-tx {
1004				rockchip,pins =
1005					<2 17 RK_FUNC_2 &pcfg_pull_none>;
1006			};
1007		};
1008
1009		spdif-2 {
1010			spdifm2_tx: spdifm2-tx {
1011				rockchip,pins =
1012					<0 2 RK_FUNC_2 &pcfg_pull_none>;
1013			};
1014		};
1015
1016		sdmmc0-0 {
1017			sdmmc0m0_pwren: sdmmc0m0-pwren {
1018				rockchip,pins =
1019					<2 7 RK_FUNC_1 &pcfg_pull_up_4ma>;
1020			};
1021
1022			sdmmc0m0_gpio: sdmmc0m0-gpio {
1023				rockchip,pins =
1024					<2 7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1025			};
1026		};
1027
1028		sdmmc0-1 {
1029			sdmmc0m1_pwren: sdmmc0m1-pwren {
1030				rockchip,pins =
1031					<0 30 RK_FUNC_3 &pcfg_pull_up_4ma>;
1032			};
1033
1034			sdmmc0m1_gpio: sdmmc0m1-gpio {
1035				rockchip,pins =
1036					<0 30 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1037			};
1038		};
1039
1040		sdmmc0 {
1041			sdmmc0_clk: sdmmc0-clk {
1042				rockchip,pins =
1043					<1 6 RK_FUNC_1 &pcfg_pull_none_4ma>;
1044			};
1045
1046			sdmmc0_cmd: sdmmc0-cmd {
1047				rockchip,pins =
1048					<1 4 RK_FUNC_1 &pcfg_pull_up_4ma>;
1049			};
1050
1051			sdmmc0_dectn: sdmmc0-dectn {
1052				rockchip,pins =
1053					<1 5 RK_FUNC_1 &pcfg_pull_up_4ma>;
1054			};
1055
1056			sdmmc0_wrprt: sdmmc0-wrprt {
1057				rockchip,pins =
1058					<1 7 RK_FUNC_1 &pcfg_pull_up_4ma>;
1059			};
1060
1061			sdmmc0_bus1: sdmmc0-bus1 {
1062				rockchip,pins =
1063					<1 0 RK_FUNC_1 &pcfg_pull_up_4ma>;
1064			};
1065
1066			sdmmc0_bus4: sdmmc0-bus4 {
1067				rockchip,pins =
1068					<1 0 RK_FUNC_1 &pcfg_pull_up_4ma>,
1069					<1 1 RK_FUNC_1 &pcfg_pull_up_4ma>,
1070					<1 2 RK_FUNC_1 &pcfg_pull_up_4ma>,
1071					<1 3 RK_FUNC_1 &pcfg_pull_up_4ma>;
1072			};
1073
1074			sdmmc0_gpio: sdmmc0-gpio {
1075				rockchip,pins =
1076					<1 6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1077					<1 4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1078					<1 5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1079					<1 7 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1080					<1 3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1081					<1 2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1082					<1 1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1083					<1 0 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1084			};
1085		};
1086
1087		sdmmc0ext {
1088			sdmmc0ext_clk: sdmmc0ext-clk {
1089				rockchip,pins =
1090					<3 2 RK_FUNC_3 &pcfg_pull_none_4ma>;
1091			};
1092
1093			sdmmc0ext_cmd: sdmmc0ext-cmd {
1094				rockchip,pins =
1095					<3 0 RK_FUNC_3 &pcfg_pull_up_4ma>;
1096			};
1097
1098			sdmmc0ext_wrprt: sdmmc0ext-wrprt {
1099				rockchip,pins =
1100					<3 3 RK_FUNC_3 &pcfg_pull_up_4ma>;
1101			};
1102
1103			sdmmc0ext_dectn: sdmmc0ext-dectn {
1104				rockchip,pins =
1105					<3 1 RK_FUNC_3 &pcfg_pull_up_4ma>;
1106			};
1107
1108			sdmmc0ext_bus1: sdmmc0ext-bus1 {
1109				rockchip,pins =
1110					<3 4 RK_FUNC_3 &pcfg_pull_up_4ma>;
1111			};
1112
1113			sdmmc0ext_bus4: sdmmc0ext-bus4 {
1114				rockchip,pins =
1115					<3 4 RK_FUNC_3 &pcfg_pull_up_4ma>,
1116					<3 5 RK_FUNC_3 &pcfg_pull_up_4ma>,
1117					<3 6 RK_FUNC_3 &pcfg_pull_up_4ma>,
1118					<3 7 RK_FUNC_3 &pcfg_pull_up_4ma>;
1119			};
1120
1121			sdmmc0ext_gpio: sdmmc0ext-gpio {
1122				rockchip,pins =
1123					<3 0 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1124					<3 1 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1125					<3 2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1126					<3 3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1127					<3 4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1128					<3 5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1129					<3 6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1130					<3 7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1131			};
1132		};
1133
1134		sdmmc1 {
1135			sdmmc1_clk: sdmmc1-clk {
1136				rockchip,pins =
1137					<1 12 RK_FUNC_1 &pcfg_pull_none_8ma>;
1138			};
1139
1140			sdmmc1_cmd: sdmmc1-cmd {
1141				rockchip,pins =
1142					<1 13 RK_FUNC_1 &pcfg_pull_up_8ma>;
1143			};
1144
1145			sdmmc1_pwren: sdmmc1-pwren {
1146				rockchip,pins =
1147					<1 18 RK_FUNC_1 &pcfg_pull_up_8ma>;
1148			};
1149
1150			sdmmc1_wrprt: sdmmc1-wrprt {
1151				rockchip,pins =
1152					<1 20 RK_FUNC_1 &pcfg_pull_up_8ma>;
1153			};
1154
1155			sdmmc1_dectn: sdmmc1-dectn {
1156				rockchip,pins =
1157					<1 19 RK_FUNC_1 &pcfg_pull_up_8ma>;
1158			};
1159
1160			sdmmc1_bus1: sdmmc1-bus1 {
1161				rockchip,pins =
1162					<1 14 RK_FUNC_1 &pcfg_pull_up_8ma>;
1163			};
1164
1165			sdmmc1_bus4: sdmmc1-bus4 {
1166				rockchip,pins =
1167					<1 12 RK_FUNC_1 &pcfg_pull_up_8ma>,
1168					<1 13 RK_FUNC_1 &pcfg_pull_up_8ma>,
1169					<1 16 RK_FUNC_1 &pcfg_pull_up_8ma>,
1170					<1 17 RK_FUNC_1 &pcfg_pull_up_8ma>;
1171			};
1172
1173			sdmmc1_gpio: sdmmc1-gpio {
1174				rockchip,pins =
1175					<1 12 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1176					<1 13 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1177					<1 14 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1178					<1 15 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1179					<1 16 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1180					<1 17 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1181					<1 18 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1182					<1 19 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1183					<1 20 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1184			};
1185		};
1186
1187		emmc {
1188			emmc_clk: emmc-clk {
1189				rockchip,pins =
1190					<3 21 RK_FUNC_2 &pcfg_pull_none_12ma>;
1191			};
1192
1193			emmc_cmd: emmc-cmd {
1194				rockchip,pins =
1195					<3 19 RK_FUNC_2 &pcfg_pull_up_12ma>;
1196			};
1197
1198			emmc_pwren: emmc-pwren {
1199				rockchip,pins =
1200					<3 22 RK_FUNC_2 &pcfg_pull_none>;
1201			};
1202
1203			emmc_rstnout: emmc-rstnout {
1204				rockchip,pins =
1205					<3 20 RK_FUNC_2 &pcfg_pull_none>;
1206			};
1207
1208			emmc_bus1: emmc-bus1 {
1209				rockchip,pins =
1210					<0 7 RK_FUNC_2 &pcfg_pull_up_12ma>;
1211			};
1212
1213			emmc_bus4: emmc-bus4 {
1214				rockchip,pins =
1215					<0 7 RK_FUNC_2 &pcfg_pull_up_12ma>,
1216					<2 28 RK_FUNC_2 &pcfg_pull_up_12ma>,
1217					<2 29 RK_FUNC_2 &pcfg_pull_up_12ma>,
1218					<2 30 RK_FUNC_2 &pcfg_pull_up_12ma>;
1219			};
1220
1221			emmc_bus8: emmc-bus8 {
1222				rockchip,pins =
1223					<0 7 RK_FUNC_2 &pcfg_pull_up_12ma>,
1224					<2 28 RK_FUNC_2 &pcfg_pull_up_12ma>,
1225					<2 29 RK_FUNC_2 &pcfg_pull_up_12ma>,
1226					<2 30 RK_FUNC_2 &pcfg_pull_up_12ma>,
1227					<2 31 RK_FUNC_2 &pcfg_pull_up_12ma>,
1228					<3 16 RK_FUNC_2 &pcfg_pull_up_12ma>,
1229					<3 17 RK_FUNC_2 &pcfg_pull_up_12ma>,
1230					<3 18 RK_FUNC_2 &pcfg_pull_up_12ma>;
1231			};
1232		};
1233
1234		pwm0 {
1235			pwm0_pin: pwm0-pin {
1236				rockchip,pins =
1237					<2 4 RK_FUNC_1 &pcfg_pull_none>;
1238			};
1239		};
1240
1241		pwm1 {
1242			pwm1_pin: pwm1-pin {
1243				rockchip,pins =
1244					<2 5 RK_FUNC_1 &pcfg_pull_none>;
1245			};
1246		};
1247
1248		pwm2 {
1249			pwm2_pin: pwm2-pin {
1250				rockchip,pins =
1251					<2 6 RK_FUNC_1 &pcfg_pull_none>;
1252			};
1253		};
1254
1255		pwmir {
1256			pwmir_pin: pwmir-pin {
1257				rockchip,pins =
1258					<2 2 RK_FUNC_1 &pcfg_pull_none>;
1259			};
1260		};
1261
1262		gmac-0 {
1263			rgmiim0_pins: rgmiim0-pins {
1264				rockchip,pins =
1265					/* mac_txclk */
1266					<0 8 RK_FUNC_1 &pcfg_pull_none_12ma>,
1267					/* mac_rxclk */
1268					<0 10 RK_FUNC_1 &pcfg_pull_none>,
1269					/* mac_mdio */
1270					<0 11 RK_FUNC_1 &pcfg_pull_none>,
1271					/* mac_txen */
1272					<0 12 RK_FUNC_1 &pcfg_pull_none_12ma>,
1273					/* mac_clk */
1274					<0 24 RK_FUNC_1 &pcfg_pull_none>,
1275					/* mac_rxdv */
1276					<0 25 RK_FUNC_1 &pcfg_pull_none>,
1277					/* mac_mdc */
1278					<0 19 RK_FUNC_1 &pcfg_pull_none>,
1279					/* mac_rxd1 */
1280					<0 14 RK_FUNC_1 &pcfg_pull_none>,
1281					/* mac_rxd0 */
1282					<0 15 RK_FUNC_1 &pcfg_pull_none>,
1283					/* mac_txd1 */
1284					<0 16 RK_FUNC_1 &pcfg_pull_none_12ma>,
1285					/* mac_txd0 */
1286					<0 17 RK_FUNC_1 &pcfg_pull_none_12ma>,
1287					/* mac_rxd3 */
1288					<0 20 RK_FUNC_1 &pcfg_pull_none>,
1289					/* mac_rxd2 */
1290					<0 21 RK_FUNC_1 &pcfg_pull_none>,
1291					/* mac_txd3 */
1292					<0 23 RK_FUNC_1 &pcfg_pull_none_12ma>,
1293					/* mac_txd2 */
1294					<0 22 RK_FUNC_1 &pcfg_pull_none_12ma>;
1295			};
1296
1297			rmiim0_pins: rmiim0-pins {
1298				rockchip,pins =
1299					/* mac_mdio */
1300					<0 11 RK_FUNC_1 &pcfg_pull_none>,
1301					/* mac_txen */
1302					<0 12 RK_FUNC_1 &pcfg_pull_none_12ma>,
1303					/* mac_clk */
1304					<0 24 RK_FUNC_1 &pcfg_pull_none>,
1305					/* mac_rxer */
1306					<0 13 RK_FUNC_1 &pcfg_pull_none>,
1307					/* mac_rxdv */
1308					<0 25 RK_FUNC_1 &pcfg_pull_none>,
1309					/* mac_mdc */
1310					<0 19 RK_FUNC_1 &pcfg_pull_none>,
1311					/* mac_rxd1 */
1312					<0 14 RK_FUNC_1 &pcfg_pull_none>,
1313					/* mac_rxd0 */
1314					<0 15 RK_FUNC_1 &pcfg_pull_none>,
1315					/* mac_txd1 */
1316					<0 16 RK_FUNC_1 &pcfg_pull_none_12ma>,
1317					/* mac_txd0 */
1318					<0 17 RK_FUNC_1 &pcfg_pull_none_12ma>;
1319			};
1320		};
1321
1322		gmac-1 {
1323			rgmiim1_pins: rgmiim1-pins {
1324				rockchip,pins =
1325					/* mac_txclk */
1326					<1 12 RK_FUNC_2 &pcfg_pull_none_12ma>,
1327					/* mac_rxclk */
1328					<1 13 RK_FUNC_2 &pcfg_pull_none_2ma>,
1329					/* mac_mdio */
1330					<1 19 RK_FUNC_2 &pcfg_pull_none_2ma>,
1331					/* mac_txen */
1332					<1 25 RK_FUNC_2 &pcfg_pull_none_12ma>,
1333					/* mac_clk */
1334					<1 21 RK_FUNC_2 &pcfg_pull_none_2ma>,
1335					/* mac_rxdv */
1336					<1 22 RK_FUNC_2 &pcfg_pull_none_2ma>,
1337					/* mac_mdc */
1338					<1 23 RK_FUNC_2 &pcfg_pull_none_2ma>,
1339					/* mac_rxd1 */
1340					<1 10 RK_FUNC_2 &pcfg_pull_none_2ma>,
1341					/* mac_rxd0 */
1342					<1 11 RK_FUNC_2 &pcfg_pull_none_2ma>,
1343					/* mac_txd1 */
1344					<1 8 RK_FUNC_2 &pcfg_pull_none_12ma>,
1345					/* mac_txd0 */
1346					<1 9 RK_FUNC_2 &pcfg_pull_none_12ma>,
1347					/* mac_rxd3 */
1348					<1 14 RK_FUNC_2 &pcfg_pull_none_2ma>,
1349					/* mac_rxd2 */
1350					<1 15 RK_FUNC_2 &pcfg_pull_none_2ma>,
1351					/* mac_txd3 */
1352					<1 16 RK_FUNC_2 &pcfg_pull_none_12ma>,
1353					/* mac_txd2 */
1354					<1 17 RK_FUNC_2 &pcfg_pull_none_12ma>,
1355
1356					/* mac_txclk */
1357					<0 8 RK_FUNC_1 &pcfg_pull_none>,
1358					/* mac_txen */
1359					<0 12 RK_FUNC_1 &pcfg_pull_none>,
1360					/* mac_clk */
1361					<0 24 RK_FUNC_1 &pcfg_pull_none>,
1362					/* mac_txd1 */
1363					<0 16 RK_FUNC_1 &pcfg_pull_none>,
1364					/* mac_txd0 */
1365					<0 17 RK_FUNC_1 &pcfg_pull_none>,
1366					/* mac_txd3 */
1367					<0 23 RK_FUNC_1 &pcfg_pull_none>,
1368					/* mac_txd2 */
1369					<0 22 RK_FUNC_1 &pcfg_pull_none>;
1370			};
1371
1372			rmiim1_pins: rmiim1-pins {
1373				rockchip,pins =
1374					/* mac_mdio */
1375					<1 19 RK_FUNC_2 &pcfg_pull_none_2ma>,
1376					/* mac_txen */
1377					<1 25 RK_FUNC_2 &pcfg_pull_none_12ma>,
1378					/* mac_clk */
1379					<1 21 RK_FUNC_2 &pcfg_pull_none_2ma>,
1380					/* mac_rxer */
1381					<1 24 RK_FUNC_2 &pcfg_pull_none_2ma>,
1382					/* mac_rxdv */
1383					<1 22 RK_FUNC_2 &pcfg_pull_none_2ma>,
1384					/* mac_mdc */
1385					<1 23 RK_FUNC_2 &pcfg_pull_none_2ma>,
1386					/* mac_rxd1 */
1387					<1 10 RK_FUNC_2 &pcfg_pull_none_2ma>,
1388					/* mac_rxd0 */
1389					<1 11 RK_FUNC_2 &pcfg_pull_none_2ma>,
1390					/* mac_txd1 */
1391					<1 8 RK_FUNC_2 &pcfg_pull_none_12ma>,
1392					/* mac_txd0 */
1393					<1 9 RK_FUNC_2 &pcfg_pull_none_12ma>,
1394
1395					/* mac_mdio */
1396					<0 11 RK_FUNC_1 &pcfg_pull_none>,
1397					/* mac_txen */
1398					<0 12 RK_FUNC_1 &pcfg_pull_none>,
1399					/* mac_clk */
1400					<0 24 RK_FUNC_1 &pcfg_pull_none>,
1401					/* mac_mdc */
1402					<0 19 RK_FUNC_1 &pcfg_pull_none>,
1403					/* mac_txd1 */
1404					<0 16 RK_FUNC_1 &pcfg_pull_none>,
1405					/* mac_txd0 */
1406					<0 17 RK_FUNC_1 &pcfg_pull_none>;
1407			};
1408		};
1409
1410		gmac2phy {
1411			fephyled_speed100: fephyled-speed100 {
1412				rockchip,pins =
1413					<0 31 RK_FUNC_1 &pcfg_pull_none>;
1414			};
1415
1416			fephyled_speed10: fephyled-speed10 {
1417				rockchip,pins =
1418					<0 30 RK_FUNC_1 &pcfg_pull_none>;
1419			};
1420
1421			fephyled_duplex: fephyled-duplex {
1422				rockchip,pins =
1423					<0 30 RK_FUNC_2 &pcfg_pull_none>;
1424			};
1425
1426			fephyled_rxm0: fephyled-rxm0 {
1427				rockchip,pins =
1428					<0 29 RK_FUNC_1 &pcfg_pull_none>;
1429			};
1430
1431			fephyled_txm0: fephyled-txm0 {
1432				rockchip,pins =
1433					<0 29 RK_FUNC_2 &pcfg_pull_none>;
1434			};
1435
1436			fephyled_linkm0: fephyled-linkm0 {
1437				rockchip,pins =
1438					<0 28 RK_FUNC_1 &pcfg_pull_none>;
1439			};
1440
1441			fephyled_rxm1: fephyled-rxm1 {
1442				rockchip,pins =
1443					<2 25 RK_FUNC_2 &pcfg_pull_none>;
1444			};
1445
1446			fephyled_txm1: fephyled-txm1 {
1447				rockchip,pins =
1448					<2 25 RK_FUNC_3 &pcfg_pull_none>;
1449			};
1450
1451			fephyled_linkm1: fephyled-linkm1 {
1452				rockchip,pins =
1453					<2 24 RK_FUNC_2 &pcfg_pull_none>;
1454			};
1455		};
1456
1457		tsadc_pin {
1458			tsadc_int: tsadc-int {
1459				rockchip,pins =
1460					<2 13 RK_FUNC_2 &pcfg_pull_none>;
1461			};
1462			tsadc_gpio: tsadc-gpio {
1463				rockchip,pins =
1464					<2 13 RK_FUNC_GPIO &pcfg_pull_none>;
1465			};
1466		};
1467
1468		hdmi_pin {
1469			hdmi_cec: hdmi-cec {
1470				rockchip,pins =
1471					<0 3 RK_FUNC_1 &pcfg_pull_none>;
1472			};
1473
1474			hdmi_hpd: hdmi-hpd {
1475				rockchip,pins =
1476					<0 4 RK_FUNC_1 &pcfg_pull_down>;
1477			};
1478		};
1479
1480		cif-0 {
1481			dvp_d2d9_m0:dvp-d2d9-m0 {
1482				rockchip,pins =
1483					/* cif_d0 */
1484					<3 4 RK_FUNC_2 &pcfg_pull_none>,
1485					/* cif_d1 */
1486					<3 5 RK_FUNC_2 &pcfg_pull_none>,
1487					/* cif_d2 */
1488					<3 6 RK_FUNC_2 &pcfg_pull_none>,
1489					/* cif_d3 */
1490					<3 7 RK_FUNC_2 &pcfg_pull_none>,
1491					/* cif_d4 */
1492					<3 8 RK_FUNC_2 &pcfg_pull_none>,
1493					/* cif_d5m0 */
1494					<3 9 RK_FUNC_2 &pcfg_pull_none>,
1495					/* cif_d6m0 */
1496					<3 10 RK_FUNC_2 &pcfg_pull_none>,
1497					/* cif_d7m0 */
1498					<3 11 RK_FUNC_2 &pcfg_pull_none>,
1499					/* cif_href */
1500					<3 1 RK_FUNC_2 &pcfg_pull_none>,
1501					/* cif_vsync */
1502					<3 0 RK_FUNC_2 &pcfg_pull_none>,
1503					/* cif_clkoutm0 */
1504					<3 3 RK_FUNC_2 &pcfg_pull_none>,
1505					/* cif_clkin */
1506					<3 2 RK_FUNC_2 &pcfg_pull_none>;
1507			};
1508		};
1509
1510		cif-1 {
1511			dvp_d2d9_m1:dvp-d2d9-m1 {
1512				rockchip,pins =
1513					/* cif_d0 */
1514					<3 4 RK_FUNC_2 &pcfg_pull_none>,
1515					/* cif_d1 */
1516					<3 5 RK_FUNC_2 &pcfg_pull_none>,
1517					/* cif_d2 */
1518					<3 6 RK_FUNC_2 &pcfg_pull_none>,
1519					/* cif_d3 */
1520					<3 7 RK_FUNC_2 &pcfg_pull_none>,
1521					/* cif_d4 */
1522					<3 8 RK_FUNC_2 &pcfg_pull_none>,
1523					/* cif_d5m1 */
1524					<2 16 RK_FUNC_4 &pcfg_pull_none>,
1525					/* cif_d6m1 */
1526					<2 17 RK_FUNC_4 &pcfg_pull_none>,
1527					/* cif_d7m1 */
1528					<2 18 RK_FUNC_4 &pcfg_pull_none>,
1529					/* cif_href */
1530					<3 1 RK_FUNC_2 &pcfg_pull_none>,
1531					/* cif_vsync */
1532					<3 0 RK_FUNC_2 &pcfg_pull_none>,
1533					/* cif_clkoutm1 */
1534					<2 15 RK_FUNC_4 &pcfg_pull_none>,
1535					/* cif_clkin */
1536					<3 2 RK_FUNC_2 &pcfg_pull_none>;
1537			};
1538		};
1539	};
1540};
1541