xref: /OK3568_Linux_fs/u-boot/arch/arm/dts/rk3128.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1/*
2 * (C) Copyright 2017 Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier:     GPL-2.0+
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/pinctrl/rockchip.h>
11#include <dt-bindings/clock/rk3128-cru.h>
12#include <dt-bindings/media/rockchip_mipi_dsi.h>
13#include "skeleton.dtsi"
14
15/ {
16	compatible = "rockchip,rk3128";
17	rockchip,sram = <&sram>;
18	interrupt-parent = <&gic>;
19	#address-cells = <1>;
20	#size-cells = <1>;
21
22	aliases {
23		gpio0 = &gpio0;
24		gpio1 = &gpio1;
25		gpio2 = &gpio2;
26		gpio3 = &gpio3;
27		i2c0 = &i2c0;
28		i2c1 = &i2c1;
29		i2c2 = &i2c2;
30		i2c3 = &i2c3;
31		spi0 = &spi0;
32		serial0 = &uart0;
33		serial1 = &uart1;
34		serial2 = &uart2;
35		mmc0 = &emmc;
36		mmc1 = &sdmmc;
37	};
38
39	memory {
40		device_type = "memory";
41		reg = <0x60000000 0x40000000>;
42	};
43
44        arm-pmu {
45                compatible = "arm,cortex-a7-pmu";
46                interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
47                             <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
48			     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
49			     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
50        };
51
52	cpus {
53		#address-cells = <1>;
54		#size-cells = <0>;
55		enable-method = "rockchip,rk3128-smp";
56
57		cpu0:cpu@0x000 {
58			device_type = "cpu";
59			compatible = "arm,cortex-a7";
60			reg = <0x000>;
61			operating-points = <
62				/* KHz    uV */
63				 816000 1000000
64			>;
65			#cooling-cells = <2>; /* min followed by max */
66			clock-latency = <40000>;
67			clocks = <&cru ARMCLK>;
68		};
69
70		cpu1:cpu@0x001 {
71			device_type = "cpu";
72			compatible = "arm,cortex-a7";
73			reg = <0x001>;
74		};
75
76		cpu2:cpu@0x002 {
77			device_type = "cpu";
78			compatible = "arm,cortex-a7";
79			reg = <0x002>;
80		};
81
82		cpu3:cpu@0x003 {
83			device_type = "cpu";
84			compatible = "arm,cortex-a7";
85			reg = <0x003>;
86		};
87	};
88
89	cpu_axi_bus: cpu_axi_bus {
90		compatible = "rockchip,cpu_axi_bus";
91		#address-cells = <1>;
92		#size-cells = <1>;
93		ranges;
94
95		qos {
96			#address-cells = <1>;
97			#size-cells = <1>;
98			ranges;
99
100			crypto {
101				reg = <0x10128080 0x20>;
102			};
103
104			core {
105				reg = <0x1012a000 0x20>;
106			};
107
108			peri {
109				reg = <0x1012c000 0x20>;
110			};
111
112			gpu {
113				reg = <0x1012d000 0x20>;
114			};
115
116			vpu {
117				reg = <0x1012e000 0x20>;
118			};
119
120			rga {
121				reg = <0x1012f000 0x20>;
122			};
123			ebc {
124				reg = <0x1012f080 0x20>;
125			};
126
127			iep {
128				reg = <0x1012f100 0x20>;
129			};
130
131			lcdc {
132				reg = <0x1012f180 0x20>;
133				rockchip,priority = <3 3>;
134			};
135
136			vip {
137				reg = <0x1012f200 0x20>;
138				rockchip,priority = <3 3>;
139			};
140		};
141
142		msch {
143			#address-cells = <1>;
144			#size-cells = <1>;
145			ranges;
146
147			msch@10128000 {
148				reg = <0x10128000 0x20>;
149				rockchip,read-latency = <0x3f>;
150			};
151		};
152	};
153
154	psci: psci {
155		compatible      = "arm,psci-1.0";
156		method          = "smc";
157	};
158
159	amba {
160		compatible = "arm,amba-bus";
161		#address-cells = <1>;
162		#size-cells = <1>;
163		interrupt-parent = <&gic>;
164		ranges;
165
166                pdma: pdma@20078000 {
167                        compatible = "arm,pl330", "arm,primecell";
168                        reg = <0x20078000 0x4000>;
169                        arm,pl330-broken-no-flushp;//2
170                        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
171                                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
172                        #dma-cells = <1>;
173			clocks = <&cru ACLK_DMAC>;
174                        clock-names = "apb_pclk";
175                };
176	};
177
178	xin24m: xin24m {
179		compatible = "fixed-clock";
180		clock-frequency = <24000000>;
181		clock-output-names = "xin24m";
182		#clock-cells = <0>;
183	};
184
185	xin12m: xin12m {
186		compatible = "fixed-clock";
187		clocks = <&xin24m>;
188		clock-frequency = <12000000>;
189		clock-output-names = "xin12m";
190		#clock-cells = <0>;
191	};
192
193
194	timer {
195		compatible = "arm,armv7-timer";
196		arm,cpu-registers-not-fw-configured;
197		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
198			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
199		clock-frequency = <24000000>;
200	};
201
202	timer@20044000 {
203		compatible = "arm,armv7-timer";
204		reg = <0x20044000 0xb8>;
205		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
206		rockchip,broadcast = <1>;
207	};
208
209	watchdog: wdt@2004c000 {
210		compatible = "rockchip,watch dog";
211		reg = <0x2004c000 0x100>;
212		clock-names = "pclk_wdt";
213		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
214		rockchip,irq = <1>;
215		rockchip,timeout = <60>;
216		rockchip,atboot = <1>;
217		rockchip,debug = <0>;
218	};
219
220	reset: reset@20000110 {
221		compatible = "rockchip,reset";
222		reg = <0x20000110 0x24>;
223		#reset-cells = <1>;
224	};
225
226	sfc: sfc@1020c000 {
227		compatible ="rockchip,rksfc","rockchip,sfc";
228		reg = <0x1020c000 0x8000>;
229		interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
230		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
231		clock-names = "clk_sfc", "hclk_sfc";
232		assigned-clocks = <&cru SCLK_SFC>;
233		assigned-clock-rates = <60000000>;
234		status = "disabled";
235	};
236
237	nandc: nandc@10500000 {
238		compatible = "rockchip,rk-nandc";
239		reg = <0x10500000 0x4000>;
240		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
241		nandc_id = <0>;
242		clocks = <&cru SCLK_NANDC>, <&cru HCLK_NANDC>;
243		clock-names = "clk_nandc", "hclk_nandc";
244		status = "disabled";
245	};
246
247	dmc: dmc@20004000 {
248		compatible = "rockchip,rk3128-dmc", "syscon";
249		reg = <0x0 0x20004000 0x0 0x1000>;
250	};
251
252	cru: clock-controller@20000000 {
253		compatible = "rockchip,rk3128-cru";
254		reg = <0x20000000 0x1000>;
255		rockchip,grf = <&grf>;
256		#clock-cells = <1>;
257		#reset-cells = <1>;
258		assigned-clocks = <&cru PLL_GPLL>;
259		assigned-clock-rates = <594000000>;
260	};
261
262	uart0: serial0@20060000 {
263		compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
264		reg = <0x20060000 0x100>;
265		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
266		reg-shift = <2>;
267		reg-io-width = <4>;
268		clock-frequency = <24000000>;
269		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
270		clock-names = "baudclk", "apb_pclk";
271		pinctrl-names = "default";
272		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
273		dmas = <&pdma 2>, <&pdma 3>;
274		#dma-cells = <2>;
275	};
276
277	uart1: serial1@20064000 {
278		compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
279		reg = <0x20064000 0x100>;
280		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
281		reg-shift = <2>;
282		reg-io-width = <4>;
283		clock-frequency = <24000000>;
284		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
285		clock-names = "baudclk", "apb_pclk";
286		pinctrl-names = "default";
287		pinctrl-0 = <&uart1_xfer>;
288		dmas = <&pdma 4>, <&pdma 5>;
289		#dma-cells = <2>;
290	};
291
292	uart2: serial2@20068000 {
293		compatible = "rockchip,rk3128-uart", "snps,dw-apb-uart";
294		reg = <0x20068000 0x100>;
295		interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
296		reg-shift = <2>;
297		reg-io-width = <4>;
298		clock-frequency = <24000000>;
299		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
300		clock-names = "baudclk", "apb_pclk";
301		pinctrl-names = "default";
302		pinctrl-0 = <&uart2_xfer>;
303		dmas = <&pdma 6>, <&pdma 7>;
304		#dma-cells = <2>;
305	};
306
307	saradc: saradc@2006c000 {
308		compatible = "rockchip,saradc";
309		reg = <0x2006c000 0x100>;
310		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
311		#io-channel-cells = <1>;
312		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
313		clock-names = "saradc", "apb_pclk";
314		resets = <&cru SRST_SARADC>;
315		reset-names = "saradc-apb";
316		status = "disabled";
317	};
318
319	pwm0: pwm0@20050000 {
320		compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
321		reg = <0x20050000 0x10>;
322		#pwm-cells = <3>;
323		pinctrl-names = "active";
324		pinctrl-0 = <&pwm0_pin>;
325		clocks = <&cru PCLK_PWM>;
326		clock-names = "pwm";
327	};
328
329	pwm1: pwm1@20050010 {
330		compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
331		reg = <0x20050010 0x10>;
332		#pwm-cells = <2>;
333		pinctrl-names = "active";
334		pinctrl-0 = <&pwm1_pin>;
335		clocks = <&cru PCLK_PWM>;
336		clock-names = "pwm";
337	};
338
339	pwm2: pwm2@20050020 {
340		compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
341		reg = <0x20050020 0x10>;
342		#pwm-cells = <2>;
343		pinctrl-names = "active";
344		pinctrl-0 = <&pwm2_pin>;
345		clocks = <&cru PCLK_PWM>;
346		clock-names = "pwm";
347	};
348
349	pwm3: pwm3@20050030 {
350		compatible = "rockchip,rk3128-pwm", "rockchip,rk3288-pwm";
351		reg = <0x20050030 0x10>;
352		#pwm-cells = <2>;
353		pinctrl-names = "active";
354		pinctrl-0 = <&pwm3_pin>;
355		clocks = <&cru PCLK_PWM>;
356		clock-names = "pwm";
357	};
358
359	sram: sram@10080400 {
360		compatible = "rockchip,rk3128-smp-sram", "mmio-sram";
361		reg = <0x10080400 0x1C00>;
362		map-exec;
363		map-cacheable;
364	};
365
366	pmu: syscon@100a0000 {
367		compatible = "rockchip,rk3128-pmu", "syscon", "simple-mfd";
368		reg = <0x100a0000 0x1000>;
369		#address-cells = <1>;
370		#size-cells = <1>;
371	};
372
373	vop: vop@1010e000 {
374		compatible = "rockchip,rk3126-vop";
375		reg = <0x1010e000 0x100>, <0x1010ec00 0x400>;
376		reg-names = "regs", "gamma_lut";
377		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
378		clocks = <&cru ACLK_LCDC0>, <&cru DCLK_VOP>, <&cru HCLK_LCDC0>;
379		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
380		status = "disabled";
381
382		vop_out: port {
383			#address-cells = <1>;
384			#size-cells = <0>;
385
386			vop_out_lvds: endpoint@0 {
387				reg = <0>;
388				remote-endpoint = <&lvds_in_vop>;
389			};
390
391			vop_out_dsi: endpoint@1 {
392				reg = <1>;
393				remote-endpoint = <&dsi_in_vop>;
394			};
395
396			vop_out_rgb: endpoint@2 {
397				reg = <2>;
398				remote-endpoint = <&rgb_in_vop>;
399			};
400		};
401	};
402
403	dsi: dsi@10110000 {
404		compatible = "rockchip,rk3128-mipi-dsi";
405		reg = <0x10110000 0x4000>;
406		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
407		clocks = <&cru PCLK_MIPI>, <&cru HCLK_VIO_H2P>, <&video_phy>;
408		clock-names = "pclk", "h2p", "hs_clk";
409		resets = <&cru SRST_VIO_MIPI_DSI>;
410		reset-names = "apb";
411		phys = <&video_phy>;
412		phy-names = "mipi_dphy";
413		rockchip,grf = <&grf>;
414		#address-cells = <1>;
415		#size-cells = <0>;
416		status = "disabled";
417
418		ports {
419			port {
420				dsi_in_vop: endpoint {
421					remote-endpoint = <&vop_out_dsi>;
422				};
423			};
424		};
425	};
426
427	display_subsystem: display-subsystem {
428		compatible = "rockchip,display-subsystem";
429		ports = <&vop_out>;
430
431		route {
432			route_lvds: route-lvds {
433				logo,uboot = "logo.bmp";
434				logo,kernel = "logo_kernel.bmp";
435				logo,mode = "fullscreen";
436				charge_logo,mode = "center";
437				connect = <&vop_out_lvds>;
438			};
439
440			route_dsi: route-dsi {
441				logo,uboot = "logo.bmp";
442				logo,kernel = "logo_kernel.bmp";
443				logo,mode = "fullscreen";
444				charge_logo,mode = "center";
445				connect = <&vop_out_dsi>;
446			};
447		};
448	};
449
450	gic: interrupt-controller@10139000 {
451		compatible = "arm,gic-400";
452		interrupt-controller;
453		#interrupt-cells = <3>;
454		#address-cells = <0>;
455		reg = <0x10139000 0x1000>,
456		      <0x1013a000 0x1000>,
457		      <0x1013c000 0x2000>,
458		      <0x1013e000 0x2000>;
459		interrupts = <GIC_PPI 9 0xf04>;
460	};
461
462	usb_otg: usb@10180000 {
463		compatible = "rockchip,rk3128-usb", "rockchip,rk3288-usb",
464			     "snps,dwc2";
465		reg = <0x10180000 0x40000>;
466		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
467		dr_mode = "otg";
468		g-use-dma;
469		hnp-srp-disable;
470		phys = <&u2phy_otg>;
471		phy-names = "usb";
472		status = "disabled";
473	};
474
475	usb_host_ehci: usb@101c0000 {
476		compatible = "generic-ehci";
477		reg = <0x101c0000 0x20000>;
478		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
479		phys = <&u2phy_host>;
480		phy-names = "usb";
481		status = "disabled";
482	};
483
484	usb_host_ohci: usb@101e0000 {
485		compatible = "generic-ohci";
486		reg = <0x101e0000 0x20000>;
487		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
488		phys = <&u2phy_host>;
489		phy-names = "usb";
490		status = "disabled";
491	};
492
493	sdmmc: dwmmc@10214000 {
494		compatible = "rockchip,rk312x-dw-mshc", "rockchip,rk3288-dw-mshc";
495		reg = <0x10214000 0x4000>;
496		max-frequency = <150000000>;
497		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
498		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
499			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
500		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
501		fifo-depth = <0x100>;
502		pinctrl-names = "default";
503		pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
504		bus-width = <4>;
505		status = "disabled";
506	};
507
508	emmc: dwmmc@1021c000 {
509		compatible = "rockchip,rk3128-dw-mshc", "rockchip,rk3288-dw-mshc";
510		reg = <0x1021c000 0x4000>;
511		max-frequency = <150000000>;
512		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
513		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
514			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
515		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
516		bus-width = <8>;
517		default-sample-phase = <158>;
518		num-slots = <1>;
519		fifo-depth = <0x100>;
520		pinctrl-names = "default";
521		pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
522		resets = <&cru SRST_EMMC>;
523		reset-names = "reset";
524		status = "disabled";
525	};
526
527	video_phy: video-phy@20038000 {
528		compatible = "rockchip,rk3128-video-phy";
529		reg = <0x20038000 0x4000>, <0x10110000 0x4000>;
530		clocks = <&cru SCLK_MIPI_24M>, <&cru PCLK_MIPIPHY>,
531			 <&cru PCLK_MIPI>;
532		clock-names = "ref", "pclk_phy", "pclk_host";
533		#clock-cells = <0>;
534		resets = <&cru SRST_MIPIPHY_P>;
535		reset-names = "rst";
536		#phy-cells = <0>;
537		status = "disabled";
538	};
539
540	i2c0: i2c0@20072000 {
541		compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
542		reg = <0x20072000 0x1000>;
543		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
544		#address-cells = <1>;
545		#size-cells = <0>;
546		clock-names = "i2c";
547		clocks = <&cru PCLK_I2C0>;
548		pinctrl-names = "default";
549		pinctrl-0 = <&i2c0_xfer>;
550	};
551
552	i2c1: i2c1@20056000 {
553		compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
554		reg = <0x20056000 0x1000>;
555		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
556		#address-cells = <1>;
557		#size-cells = <0>;
558		clock-names = "i2c";
559		clocks = <&cru PCLK_I2C1>;
560		pinctrl-names = "default";
561		pinctrl-0 = <&i2c1_xfer>;
562	};
563
564	i2c2: i2c2@2005a000 {
565		compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
566		reg = <0x2005a000 0x1000>;
567		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
568		#address-cells = <1>;
569		#size-cells = <0>;
570		clock-names = "i2c";
571		clocks = <&cru PCLK_I2C2>;
572		pinctrl-names = "default";
573		pinctrl-0 = <&i2c2_xfer>;
574	};
575
576	i2c3: i2c3@2005e000 {
577		compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c";
578		reg = <0x2005e000 0x1000>;
579		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
580		#address-cells = <1>;
581		#size-cells = <0>;
582		clock-names = "i2c";
583		clocks = <&cru PCLK_I2C3>;
584		pinctrl-names = "default";
585		pinctrl-0 = <&i2c3_xfer>;
586	};
587
588	spi0: spi@20074000 {
589		compatible = "rockchip,rk3128-spi", "rockchip,rk3288-spi";
590		reg = <0x20074000 0x1000>;
591		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
592		pinctrl-names = "default";
593		pinctrl-0 = <&spi0_tx &spi0_rx &spi0_clk &spi0_cs0 &spi0_cs1>;
594		clock-names = "spiclk", "apb_pclk";
595		dmas = <&pdma 8>, <&pdma 9>;
596		dma-names = "tx", "rx";
597		#address-cells = <1>;
598		#size-cells = <0>;
599		status = "disabled";
600	};
601
602	grf: syscon@20008000 {
603		compatible = "rockchip,rk3128-grf", "syscon";
604		reg = <0x20008000 0x1000>;
605		#address-cells = <1>;
606		#size-cells = <1>;
607
608		lvds: lvds {
609			compatible = "rockchip,rk3126-lvds";
610			phys = <&video_phy>;
611			phy-names = "phy";
612			status = "disabled";
613
614			ports {
615				#address-cells = <1>;
616				#size-cells = <0>;
617
618				port@0 {
619					reg = <0>;
620
621					lvds_in_vop: endpoint {
622						remote-endpoint = <&vop_out_lvds>;
623					};
624				};
625			};
626		};
627
628		rgb: rgb {
629			compatible = "rockchip,rk3128-rgb";
630			phys = <&video_phy>;
631			phy-names = "phy";
632			pinctrl-names = "default", "sleep";
633			pinctrl-0 = <&lcdc_rgb_pins>;
634			pinctrl-1 = <&lcdc_sleep_pins>;
635			status = "disabled";
636
637			ports {
638				#address-cells = <1>;
639				#size-cells = <0>;
640
641				port@0 {
642					reg = <0>;
643
644					rgb_in_vop: endpoint {
645						remote-endpoint = <&vop_out_rgb>;
646					};
647				};
648			};
649		};
650
651		u2phy: usb2-phy@17c {
652			compatible = "rockchip,rk3128-usb2phy";
653			reg = <0x017c 0x0c>;
654			clocks = <&cru SCLK_OTGPHY0>;
655			clock-names = "phyclk";
656			#clock-cells = <0>;
657			clock-output-names = "usb480m_phy";
658			assigned-clocks = <&cru SCLK_USB480M>;
659			assigned-clock-parents = <&u2phy>;
660			status = "disabled";
661
662			u2phy_otg: otg-port {
663				#phy-cells = <0>;
664				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
665					     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
666					     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
667				interrupt-names = "otg-bvalid", "otg-id",
668						  "linestate";
669				status = "disabled";
670			};
671
672			u2phy_host: host-port {
673				#phy-cells = <0>;
674				interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
675				interrupt-names = "linestate";
676				status = "disabled";
677			};
678		};
679	};
680
681	pinctrl: pinctrl@20008000 {
682		compatible = "rockchip,rk3128-pinctrl";
683		reg = <0x20008000 0xA8>,
684		      <0x200080A8 0x4C>,
685		      <0x20008118 0x20>,
686		      <0x20008100 0x04>;
687		reg-names = "base", "mux", "pull", "drv";
688		rockchip,grf = <&grf>;
689		#address-cells = <1>;
690		#size-cells = <1>;
691		ranges;
692
693		gpio0: gpio0@2007c000 {
694			compatible = "rockchip,gpio-bank";
695			reg = <0x2007c000 0x100>;
696			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
697			clocks = <&cru PCLK_GPIO0>;
698			gpio-controller;
699			#gpio-cells = <2>;
700			interrupt-controller;
701			#interrupt-cells = <2>;
702		};
703
704		gpio1: gpio1@20080000 {
705			compatible = "rockchip,gpio-bank";
706			reg = <0x20080000 0x100>;
707			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
708			clocks = <&cru PCLK_GPIO1>;
709			gpio-controller;
710			#gpio-cells = <2>;
711			interrupt-controller;
712			#interrupt-cells = <2>;
713		};
714
715		gpio2: gpio2@20084000 {
716			compatible = "rockchip,gpio-bank";
717			reg = <0x20084000 0x100>;
718			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
719			clocks = <&cru PCLK_GPIO2>;
720			gpio-controller;
721			#gpio-cells = <2>;
722			interrupt-controller;
723			#interrupt-cells = <2>;
724		};
725
726		gpio3: gpio2@20088000 {
727			compatible = "rockchip,gpio-bank";
728			reg = <0x20088000 0x100>;
729			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
730			clocks = <&cru PCLK_GPIO3>;
731			gpio-controller;
732			#gpio-cells = <2>;
733			interrupt-controller;
734			#interrupt-cells = <2>;
735		};
736
737		pcfg_pull_default: pcfg_pull_default {
738			bias-pull-pin-default;
739		};
740
741		pcfg_pull_none: pcfg-pull-none {
742			bias-disable;
743		};
744
745		emmc {
746			emmc_clk: emmc-clk {
747				rockchip,pins = <2 RK_PA7 2 &pcfg_pull_none>;
748			};
749
750			emmc_cmd: emmc-cmd {
751				rockchip,pins = <1 RK_PC6 2 &pcfg_pull_default>;
752			};
753
754			emmc_cmd1: emmc-cmd1 {
755				rockchip,pins = <2 RK_PA4 2 &pcfg_pull_default>;
756			};
757
758			emmc_pwr: emmc-pwr {
759				rockchip,pins = <2 RK_PA5 2 &pcfg_pull_default>;
760			};
761
762			emmc_bus1: emmc-bus1 {
763				rockchip,pins = <1 RK_PD0 2 &pcfg_pull_default>;
764			};
765
766			emmc_bus4: emmc-bus4 {
767				rockchip,pins = <1 RK_PD0 2 &pcfg_pull_default>,
768						<1 RK_PD1 2 &pcfg_pull_default>,
769						<1 RK_PD2 2 &pcfg_pull_default>,
770						<1 RK_PD3 2 &pcfg_pull_default>;
771			};
772
773			emmc_bus8: emmc-bus8 {
774				rockchip,pins = <1 RK_PD0 2 &pcfg_pull_default>,
775						<1 RK_PD1 2 &pcfg_pull_default>,
776						<1 RK_PD2 2 &pcfg_pull_default>,
777						<1 RK_PD3 2 &pcfg_pull_default>,
778						<1 RK_PD4 2 &pcfg_pull_default>,
779						<1 RK_PD5 2 &pcfg_pull_default>,
780						<1 RK_PD6 2 &pcfg_pull_default>,
781						<1 RK_PD7 2 &pcfg_pull_default>;
782			};
783		};
784
785		i2c0 {
786			i2c0_xfer: i2c0-xfer {
787				rockchip,pins = <0 RK_PA0 1 &pcfg_pull_none>,
788						<0 RK_PA1 1 &pcfg_pull_none>;
789			};
790		};
791
792		i2c1 {
793			i2c1_xfer: i2c1-xfer {
794				rockchip,pins = <0 RK_PA2 1 &pcfg_pull_none>,
795						<0 RK_PA3 1 &pcfg_pull_none>;
796			};
797		};
798
799		i2c2 {
800			i2c2_xfer: i2c2-xfer {
801				rockchip,pins = <2 RK_PC4 3 &pcfg_pull_none>,
802						<2 RK_PC5 3 &pcfg_pull_none>;
803			};
804		};
805
806		i2c3 {
807			i2c3_xfer: i2c3-xfer {
808				rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>,
809						<0 RK_PA7 1 &pcfg_pull_none>;
810			};
811		};
812
813		lcdc {
814			lcdc_rgb_pins: lcdc-rgb-pins {
815				rockchip,pins =
816					<2 RK_PB0 1 &pcfg_pull_none>, /* LCDC_DCLK */
817					<2 RK_PB1 1 &pcfg_pull_none>, /* LCDC_HSYNC */
818					<2 RK_PB2 1 &pcfg_pull_none>, /* LCDC_VSYNC */
819					<2 RK_PB3 1 &pcfg_pull_none>, /* LCDC_DEN */
820					<2 RK_PB4 1 &pcfg_pull_none>, /* LCDC_DATA10 */
821					<2 RK_PB5 1 &pcfg_pull_none>, /* LCDC_DATA11 */
822					<2 RK_PB6 1 &pcfg_pull_none>, /* LCDC_DATA12 */
823					<2 RK_PB7 1 &pcfg_pull_none>, /* LCDC_DATA13 */
824					<2 RK_PC0 1 &pcfg_pull_none>, /* LCDC_DATA14 */
825					<2 RK_PC1 1 &pcfg_pull_none>, /* LCDC_DATA15 */
826					<2 RK_PC2 1 &pcfg_pull_none>, /* LCDC_DATA16 */
827					<2 RK_PC3 1 &pcfg_pull_none>, /* LCDC_DATA17 */
828					<2 RK_PC4 1 &pcfg_pull_none>, /* LCDC_DATA18 */
829					<2 RK_PC5 1 &pcfg_pull_none>, /* LCDC_DATA19 */
830					<2 RK_PC6 1 &pcfg_pull_none>, /* LCDC_DATA20 */
831					<2 RK_PC7 1 &pcfg_pull_none>, /* LCDC_DATA21 */
832					<2 RK_PD0 1 &pcfg_pull_none>, /* LCDC_DATA22 */
833					<2 RK_PD1 1 &pcfg_pull_none>; /* LCDC_DATA23 */
834			};
835
836			lcdc_sleep_pins: lcdc-sleep-pins {
837				rockchip,pins =
838					<2 RK_PB0 0 &pcfg_pull_none>, /* LCDC_DCLK */
839					<2 RK_PB1 0 &pcfg_pull_none>, /* LCDC_HSYNC */
840					<2 RK_PB2 0 &pcfg_pull_none>, /* LCDC_VSYNC */
841					<2 RK_PB3 0 &pcfg_pull_none>, /* LCDC_DEN */
842					<2 RK_PB4 0 &pcfg_pull_none>, /* LCDC_DATA10 */
843					<2 RK_PB5 0 &pcfg_pull_none>, /* LCDC_DATA11 */
844					<2 RK_PB6 0 &pcfg_pull_none>, /* LCDC_DATA12 */
845					<2 RK_PB7 0 &pcfg_pull_none>, /* LCDC_DATA13 */
846					<2 RK_PC0 0 &pcfg_pull_none>, /* LCDC_DATA14 */
847					<2 RK_PC1 0 &pcfg_pull_none>, /* LCDC_DATA15 */
848					<2 RK_PC2 0 &pcfg_pull_none>, /* LCDC_DATA16 */
849					<2 RK_PC3 0 &pcfg_pull_none>, /* LCDC_DATA17 */
850					<2 RK_PC4 0 &pcfg_pull_none>, /* LCDC_DATA18 */
851					<2 RK_PC5 0 &pcfg_pull_none>, /* LCDC_DATA19 */
852					<2 RK_PC6 0 &pcfg_pull_none>, /* LCDC_DATA20 */
853					<2 RK_PC7 0 &pcfg_pull_none>, /* LCDC_DATA21 */
854					<2 RK_PD0 0 &pcfg_pull_none>, /* LCDC_DATA22 */
855					<2 RK_PD1 0 &pcfg_pull_none>; /* LCDC_DATA23 */
856			};
857		};
858
859		uart0 {
860			uart0_xfer: uart0-xfer {
861				rockchip,pins = <2 RK_PD2 2 &pcfg_pull_default>,
862						<2 RK_PD3 2 &pcfg_pull_none>;
863			};
864
865			uart0_cts: uart0-cts {
866				rockchip,pins = <2 RK_PD5 2 &pcfg_pull_none>;
867			};
868
869			uart0_rts: uart0-rts {
870				rockchip,pins = <0 RK_PC1 2 &pcfg_pull_none>;
871			};
872		};
873
874		uart1 {
875			uart1_xfer: uart1-xfer {
876				rockchip,pins = <1 RK_PB1 2 &pcfg_pull_default>,
877						<1 RK_PB2 2 &pcfg_pull_default>;
878			};
879
880			uart1_cts: uart1-cts {
881				rockchip,pins = <1 RK_PB0 2 &pcfg_pull_none>;
882			};
883
884			uart1_rts: uart1-rts {
885				rockchip,pins = <1 RK_PB3 2 &pcfg_pull_none>;
886			};
887		};
888
889		uart2 {
890			uart2_xfer: uart2-xfer {
891				rockchip,pins = <1 RK_PC2 2 &pcfg_pull_default>,
892						<1 RK_PC3 2 &pcfg_pull_none>;
893			};
894
895			uart2_cts: uart2-cts {
896				rockchip,pins = <0 RK_PD1 1 &pcfg_pull_none>;
897			};
898
899			uart2_rts: uart2-rts {
900				rockchip,pins = <0 RK_PD0 1 &pcfg_pull_none>;
901			};
902		};
903
904		sdmmc {
905			sdmmc_clk: sdmmc-clk {
906				rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none>;
907			};
908
909			sdmmc_cmd: sdmmc-cmd {
910				rockchip,pins = <1 RK_PB7 1 &pcfg_pull_default>;
911			};
912
913			sdmmc_wp: sdmmc-wp {
914				rockchip,pins = <1 RK_PA7 1 &pcfg_pull_default>;
915			};
916
917			sdmmc_pwren: sdmmc-pwren {
918				rockchip,pins = <1 RK_PB6 1 &pcfg_pull_default>;
919			};
920
921			sdmmc_bus4: sdmmc-bus4 {
922				rockchip,pins = <1 RK_PC2 1 &pcfg_pull_default>,
923						<1 RK_PC3 1 &pcfg_pull_default>,
924						<1 RK_PC4 1 &pcfg_pull_default>,
925						<1 RK_PC5 1 &pcfg_pull_default>;
926			};
927		};
928
929		sdio {
930			sdio_clk: sdio-clk {
931				rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>;
932			};
933
934			sdio_cmd: sdio-cmd {
935				rockchip,pins = <0 RK_PA3 2 &pcfg_pull_default>;
936			};
937
938			sdio_pwren: sdio-pwren {
939				rockchip,pins = <0 RK_PD6 1 &pcfg_pull_default>;
940			};
941
942			sdio_bus4: sdio-bus4 {
943				rockchip,pins = <1 RK_PA1 2 &pcfg_pull_default>,
944						<1 RK_PA2 2 &pcfg_pull_default>,
945						<1 RK_PA4 2 &pcfg_pull_default>,
946						<1 RK_PA5 2 &pcfg_pull_default>;
947			};
948		};
949
950		hdmi {
951			hdmii2c_xfer: hdmii2c-xfer {
952				rockchip,pins = <0 RK_PA6 2 &pcfg_pull_none>,
953						<0 RK_PA7 2 &pcfg_pull_none>;
954			};
955		};
956
957		i2s {
958			i2s_bus: i2s-bus {
959				rockchip,pins = <0 RK_PB0 1 &pcfg_pull_none>,
960						<0 RK_PB1 1 &pcfg_pull_none>,
961						<0 RK_PB3 1 &pcfg_pull_none>,
962						<0 RK_PB4 1 &pcfg_pull_none>,
963						<0 RK_PB5 1 &pcfg_pull_none>,
964						<0 RK_PB6 1 &pcfg_pull_none>;
965			};
966
967			i2s1_bus: i2s1-bus {
968				rockchip,pins = <1 RK_PA0 1 &pcfg_pull_none>,
969						<1 RK_PA1 1 &pcfg_pull_none>,
970						<1 RK_PA2 1 &pcfg_pull_none>,
971						<1 RK_PA3 1 &pcfg_pull_none>,
972						<1 RK_PA4 1 &pcfg_pull_none>,
973						<1 RK_PA5 1 &pcfg_pull_none>;
974			};
975		};
976
977		pwm0 {
978			pwm0_pin: pwm0-pin {
979				rockchip,pins = <0 RK_PD2 1 &pcfg_pull_none>;
980			};
981		};
982
983		pwm1 {
984			pwm1_pin: pwm1-pin {
985				rockchip,pins = <0 RK_PD3 1 &pcfg_pull_none>;
986			};
987		};
988
989		pwm2 {
990			pwm2_pin: pwm2-pin {
991				rockchip,pins = <0 RK_PD4 1 &pcfg_pull_none>;
992			};
993		};
994
995		pwm3 {
996			pwm3_pin: pwm3-pin {
997				rockchip,pins = <3 RK_PD2 1 &pcfg_pull_none>;
998			};
999		};
1000
1001		gmac {
1002			rgmii_pins: rgmii-pins {
1003				rockchip,pins = <2 RK_PB0 3 &pcfg_pull_default>,
1004						<2 RK_PB1 3 &pcfg_pull_default>,
1005						<2 RK_PB3 3 &pcfg_pull_default>,
1006						<2 RK_PB4 3 &pcfg_pull_default>,
1007						<2 RK_PB5 3 &pcfg_pull_default>,
1008						<2 RK_PB6 3 &pcfg_pull_default>,
1009						<2 RK_PC0 3 &pcfg_pull_default>,
1010						<2 RK_PC1 3 &pcfg_pull_default>,
1011						<2 RK_PC2 3 &pcfg_pull_default>,
1012						<2 RK_PC3 3 &pcfg_pull_default>,
1013						<2 RK_PD1 3 &pcfg_pull_default>,
1014						<2 RK_PC4 4 &pcfg_pull_default>,
1015						<2 RK_PC5 4 &pcfg_pull_default>,
1016						<2 RK_PC6 4 &pcfg_pull_default>,
1017						<2 RK_PC7 4 &pcfg_pull_default>;
1018			};
1019
1020			rmii_pins: rmii-pins {
1021				rockchip,pins = <2 RK_PB0 3 &pcfg_pull_default>,
1022						<2 RK_PB4 3 &pcfg_pull_default>,
1023						<2 RK_PB5 3 &pcfg_pull_default>,
1024						<2 RK_PB6 3 &pcfg_pull_default>,
1025						<2 RK_PB7 3 &pcfg_pull_default>,
1026						<2 RK_PC0 3 &pcfg_pull_default>,
1027						<2 RK_PC1 3 &pcfg_pull_default>,
1028						<2 RK_PC3 3 &pcfg_pull_default>,
1029						<2 RK_PC4 3 &pcfg_pull_default>,
1030						<2 RK_PD1 3 &pcfg_pull_default>;
1031			};
1032		};
1033
1034		spdif {
1035			spdif_tx: spdif-tx {
1036				rockchip,pins = <3 RK_PD3 1 &pcfg_pull_none>;
1037			};
1038		};
1039
1040		spi {
1041			spi0_clk: spi0-clk {
1042				rockchip,pins = <1 RK_PB0 1 &pcfg_pull_default>;
1043			};
1044
1045			spi0_cs0: spi0-cs0 {
1046				rockchip,pins = <1 RK_PB3 1 &pcfg_pull_default>;
1047			};
1048
1049			spi0_tx: spi0-tx {
1050				rockchip,pins = <1 RK_PB1 1 &pcfg_pull_default>;
1051			};
1052
1053			spi0_rx: spi0-rx {
1054				rockchip,pins = <1 RK_PB2 1 &pcfg_pull_default>;
1055			};
1056
1057			spi0_cs1: spi0-cs1 {
1058				rockchip,pins = <1 RK_PB4 1 &pcfg_pull_default>;
1059			};
1060
1061			spi1_clk: spi1-clk {
1062				rockchip,pins = <2 RK_PA0 2 &pcfg_pull_default>;
1063			};
1064
1065			spi1_cs0: spi1-cs0 {
1066				rockchip,pins = <1 RK_PD6 3 &pcfg_pull_default>;
1067			};
1068
1069			spi1_tx: spi1-tx {
1070				rockchip,pins = <1 RK_PD5 3 &pcfg_pull_default>;
1071			};
1072
1073			spi1_rx: spi1-rx {
1074				rockchip,pins = <1 RK_PD4 3 &pcfg_pull_default>;
1075			};
1076
1077			spi1_cs1: spi1-cs1 {
1078				rockchip,pins = <1 RK_PD7 3 &pcfg_pull_default>;
1079			};
1080
1081			spi2_clk: spi2-clk {
1082				rockchip,pins = <0 RK_PB1 2 &pcfg_pull_default>;
1083			};
1084
1085			spi2_cs0: spi2-cs0 {
1086				rockchip,pins = <0 RK_PB6 2 &pcfg_pull_default>;
1087			};
1088
1089			spi2_tx: spi2-tx {
1090				rockchip,pins = <0 RK_PB3 2 &pcfg_pull_default>;
1091			};
1092
1093			spi2_rx: spi2-rx {
1094				rockchip,pins = <0 RK_PB5 2 &pcfg_pull_default>;
1095			};
1096		};
1097	};
1098};
1099