xref: /openbmc/u-boot/arch/arm/dts/rk3288.dtsi (revision 23ff8633)
1/*
2 * SPDX-License-Identifier:	GPL-2.0+
3 */
4
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/interrupt-controller/irq.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/pinctrl/rockchip.h>
9#include <dt-bindings/clock/rk3288-cru.h>
10#include <dt-bindings/power-domain/rk3288.h>
11#include <dt-bindings/thermal/thermal.h>
12#include "skeleton.dtsi"
13
14/ {
15	compatible = "rockchip,rk3288";
16
17	interrupt-parent = <&gic>;
18	aliases {
19		gpio0 = &gpio0;
20		gpio1 = &gpio1;
21		gpio2 = &gpio2;
22		gpio3 = &gpio3;
23		gpio4 = &gpio4;
24		gpio5 = &gpio5;
25		gpio6 = &gpio6;
26		gpio7 = &gpio7;
27		gpio8 = &gpio8;
28		i2c0 = &i2c0;
29		i2c1 = &i2c1;
30		i2c2 = &i2c2;
31		i2c3 = &i2c3;
32		i2c4 = &i2c4;
33		i2c5 = &i2c5;
34		mmc0 = &emmc;
35		mmc1 = &sdmmc;
36		mmc2 = &sdio0;
37		mmc3 = &sdio1;
38		mshc0 = &emmc;
39		mshc1 = &sdmmc;
40		mshc2 = &sdio0;
41		mshc3 = &sdio1;
42		serial0 = &uart0;
43		serial1 = &uart1;
44		serial2 = &uart2;
45		serial3 = &uart3;
46		serial4 = &uart4;
47		spi0 = &spi0;
48		spi1 = &spi1;
49		spi2 = &spi2;
50	};
51
52	cpus {
53		#address-cells = <1>;
54		#size-cells = <0>;
55		enable-method = "rockchip,rk3066-smp";
56		rockchip,pmu = <&pmu>;
57
58		cpu0: cpu@500 {
59			device_type = "cpu";
60			compatible = "arm,cortex-a12";
61			reg = <0x500>;
62			operating-points = <
63				/* KHz    uV */
64				1800000 1400000
65				1704000 1350000
66				1608000 1300000
67				1512000 1250000
68				1416000 1200000
69				1200000 1100000
70				1008000 1050000
71				 816000 1000000
72				 696000  950000
73				 600000  900000
74				 408000  900000
75				 216000  900000
76				 126000  900000
77			>;
78			#cooling-cells = <2>; /* min followed by max */
79			clock-latency = <40000>;
80			clocks = <&cru ARMCLK>;
81			resets = <&cru SRST_CORE0>;
82		};
83		cpu@501 {
84			device_type = "cpu";
85			compatible = "arm,cortex-a12";
86			reg = <0x501>;
87			resets = <&cru SRST_CORE1>;
88		};
89		cpu@502 {
90			device_type = "cpu";
91			compatible = "arm,cortex-a12";
92			reg = <0x502>;
93			resets = <&cru SRST_CORE2>;
94		};
95		cpu@503 {
96			device_type = "cpu";
97			compatible = "arm,cortex-a12";
98			reg = <0x503>;
99			resets = <&cru SRST_CORE3>;
100		};
101	};
102
103	amba {
104		compatible = "arm,amba-bus";
105		#address-cells = <1>;
106		#size-cells = <1>;
107		ranges;
108
109		dmac_peri: dma-controller@ff250000 {
110			compatible = "arm,pl330", "arm,primecell";
111			broken-no-flushp;
112			reg = <0xff250000 0x4000>;
113			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
114				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
115			#dma-cells = <1>;
116			clocks = <&cru ACLK_DMAC2>;
117			clock-names = "apb_pclk";
118		};
119
120		dmac_bus_ns: dma-controller@ff600000 {
121			compatible = "arm,pl330", "arm,primecell";
122			broken-no-flushp;
123			reg = <0xff600000 0x4000>;
124			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
125				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
126			#dma-cells = <1>;
127			clocks = <&cru ACLK_DMAC1>;
128			clock-names = "apb_pclk";
129			status = "disabled";
130		};
131
132		dmac_bus_s: dma-controller@ffb20000 {
133			compatible = "arm,pl330", "arm,primecell";
134			broken-no-flushp;
135			reg = <0xffb20000 0x4000>;
136			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
137				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
138			#dma-cells = <1>;
139			clocks = <&cru ACLK_DMAC1>;
140			clock-names = "apb_pclk";
141		};
142	};
143
144	xin24m: oscillator {
145		compatible = "fixed-clock";
146		clock-frequency = <24000000>;
147		clock-output-names = "xin24m";
148		#clock-cells = <0>;
149	};
150
151	timer {
152	        arm,use-physical-timer;
153		compatible = "arm,armv7-timer";
154		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
155			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
156			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
157			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
158		clock-frequency = <24000000>;
159		always-on;
160	};
161
162	display-subsystem {
163		compatible = "rockchip,display-subsystem";
164		ports = <&vopl_out>, <&vopb_out>;
165	};
166
167	sdmmc: dwmmc@ff0c0000 {
168		compatible = "rockchip,rk3288-dw-mshc";
169		clock-freq-min-max = <400000 150000000>;
170		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
171			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
172		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
173		fifo-depth = <0x100>;
174		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
175		reg = <0xff0c0000 0x4000>;
176		status = "disabled";
177	};
178
179	sdio0: dwmmc@ff0d0000 {
180		compatible = "rockchip,rk3288-dw-mshc";
181		clock-freq-min-max = <400000 150000000>;
182		clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
183			 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
184		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
185		fifo-depth = <0x100>;
186		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
187		reg = <0xff0d0000 0x4000>;
188		status = "disabled";
189	};
190
191	sdio1: dwmmc@ff0e0000 {
192		compatible = "rockchip,rk3288-dw-mshc";
193		clock-freq-min-max = <400000 150000000>;
194		clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
195			 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
196		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
197		fifo-depth = <0x100>;
198		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
199		reg = <0xff0e0000 0x4000>;
200		status = "disabled";
201	};
202
203	emmc: dwmmc@ff0f0000 {
204		compatible = "rockchip,rk3288-dw-mshc";
205		clock-freq-min-max = <400000 150000000>;
206		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
207			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
208		clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
209		fifo-depth = <0x100>;
210		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
211		reg = <0xff0f0000 0x4000>;
212		status = "disabled";
213	};
214
215	saradc: saradc@ff100000 {
216		compatible = "rockchip,saradc";
217		reg = <0xff100000 0x100>;
218		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
219		#io-channel-cells = <1>;
220		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
221		clock-names = "saradc", "apb_pclk";
222		status = "disabled";
223	};
224
225	spi0: spi@ff110000 {
226		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
227		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
228		clock-names = "spiclk", "apb_pclk";
229		dmas = <&dmac_peri 11>, <&dmac_peri 12>;
230		dma-names = "tx", "rx";
231		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
232		pinctrl-names = "default";
233		pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
234		reg = <0xff110000 0x1000>;
235		#address-cells = <1>;
236		#size-cells = <0>;
237		status = "disabled";
238	};
239
240	spi1: spi@ff120000 {
241		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
242		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
243		clock-names = "spiclk", "apb_pclk";
244		dmas = <&dmac_peri 13>, <&dmac_peri 14>;
245		dma-names = "tx", "rx";
246		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
247		pinctrl-names = "default";
248		pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
249		reg = <0xff120000 0x1000>;
250		#address-cells = <1>;
251		#size-cells = <0>;
252		status = "disabled";
253	};
254
255	spi2: spi@ff130000 {
256		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
257		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
258		clock-names = "spiclk", "apb_pclk";
259		dmas = <&dmac_peri 15>, <&dmac_peri 16>;
260		dma-names = "tx", "rx";
261		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
262		pinctrl-names = "default";
263		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
264		reg = <0xff130000 0x1000>;
265		#address-cells = <1>;
266		#size-cells = <0>;
267		status = "disabled";
268	};
269
270	i2c1: i2c@ff140000 {
271		compatible = "rockchip,rk3288-i2c";
272		reg = <0xff140000 0x1000>;
273		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
274		#address-cells = <1>;
275		#size-cells = <0>;
276		clock-names = "i2c";
277		clocks = <&cru PCLK_I2C1>;
278		pinctrl-names = "default";
279		pinctrl-0 = <&i2c1_xfer>;
280		status = "disabled";
281	};
282
283	i2c3: i2c@ff150000 {
284		compatible = "rockchip,rk3288-i2c";
285		reg = <0xff150000 0x1000>;
286		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
287		#address-cells = <1>;
288		#size-cells = <0>;
289		clock-names = "i2c";
290		clocks = <&cru PCLK_I2C3>;
291		pinctrl-names = "default";
292		pinctrl-0 = <&i2c3_xfer>;
293		status = "disabled";
294	};
295
296	i2c4: i2c@ff160000 {
297		compatible = "rockchip,rk3288-i2c";
298		reg = <0xff160000 0x1000>;
299		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
300		#address-cells = <1>;
301		#size-cells = <0>;
302		clock-names = "i2c";
303		clocks = <&cru PCLK_I2C4>;
304		pinctrl-names = "default";
305		pinctrl-0 = <&i2c4_xfer>;
306		status = "disabled";
307	};
308
309	i2c5: i2c@ff170000 {
310		compatible = "rockchip,rk3288-i2c";
311		reg = <0xff170000 0x1000>;
312		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
313		#address-cells = <1>;
314		#size-cells = <0>;
315		clock-names = "i2c";
316		clocks = <&cru PCLK_I2C5>;
317		pinctrl-names = "default";
318		pinctrl-0 = <&i2c5_xfer>;
319		status = "disabled";
320	};
321	uart0: serial@ff180000 {
322		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
323		reg = <0xff180000 0x100>;
324		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
325		reg-shift = <2>;
326		reg-io-width = <4>;
327		clock-frequency = <24000000>;
328		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
329		clock-names = "baudclk", "apb_pclk";
330		pinctrl-names = "default";
331		pinctrl-0 = <&uart0_xfer>;
332		status = "disabled";
333	};
334
335	uart1: serial@ff190000 {
336		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
337		reg = <0xff190000 0x100>;
338		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
339		reg-shift = <2>;
340		reg-io-width = <4>;
341		clock-frequency = <24000000>;
342		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
343		clock-names = "baudclk", "apb_pclk";
344		pinctrl-names = "default";
345		pinctrl-0 = <&uart1_xfer>;
346		status = "disabled";
347	};
348
349	uart2: serial@ff690000 {
350		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
351		reg = <0xff690000 0x100>;
352		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
353		reg-shift = <2>;
354		reg-io-width = <4>;
355		clock-frequency = <24000000>;
356		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
357		clock-names = "baudclk", "apb_pclk";
358		pinctrl-names = "default";
359		pinctrl-0 = <&uart2_xfer>;
360		status = "disabled";
361	};
362	uart3: serial@ff1b0000 {
363		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
364		reg = <0xff1b0000 0x100>;
365		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
366		reg-shift = <2>;
367		reg-io-width = <4>;
368		clock-frequency = <24000000>;
369		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
370		clock-names = "baudclk", "apb_pclk";
371		pinctrl-names = "default";
372		pinctrl-0 = <&uart3_xfer>;
373		status = "disabled";
374	};
375
376	uart4: serial@ff1c0000 {
377		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
378		reg = <0xff1c0000 0x100>;
379		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
380		reg-shift = <2>;
381		reg-io-width = <4>;
382		clock-frequency = <24000000>;
383		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
384		clock-names = "baudclk", "apb_pclk";
385		pinctrl-names = "default";
386		pinctrl-0 = <&uart4_xfer>;
387		status = "disabled";
388	};
389	thermal: thermal-zones {
390		#include "rk3288-thermal.dtsi"
391	};
392
393	tsadc: tsadc@ff280000 {
394		compatible = "rockchip,rk3288-tsadc";
395		reg = <0xff280000 0x100>;
396		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
397		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
398		clock-names = "tsadc", "apb_pclk";
399		resets = <&cru SRST_TSADC>;
400		reset-names = "tsadc-apb";
401		pinctrl-names = "otp_out";
402		pinctrl-0 = <&otp_out>;
403		#thermal-sensor-cells = <1>;
404		hw-shut-temp = <125000>;
405		status = "disabled";
406	};
407
408	gmac: ethernet@ff290000 {
409		compatible = "rockchip,rk3288-gmac";
410		reg = <0xff290000 0x10000>;
411		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
412		interrupt-names = "macirq";
413		rockchip,grf = <&grf>;
414		clocks = <&cru SCLK_MAC>,
415			<&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
416			<&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
417			<&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
418		clock-names = "stmmaceth",
419			"mac_clk_rx", "mac_clk_tx",
420			"clk_mac_ref", "clk_mac_refout",
421			"aclk_mac", "pclk_mac";
422	};
423
424	usb_host0_ehci: usb@ff500000 {
425		compatible = "generic-ehci";
426		reg = <0xff500000 0x100>;
427		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
428		clocks = <&cru HCLK_USBHOST0>;
429		clock-names = "usbhost";
430		phys = <&usbphy1>;
431		phy-names = "usb";
432		status = "disabled";
433	};
434
435	/* NOTE: ohci@ff520000 doesn't actually work on hardware */
436
437	usb_host1: usb@ff540000 {
438		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
439				"snps,dwc2";
440		reg = <0xff540000 0x40000>;
441		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
442		clocks = <&cru HCLK_USBHOST1>;
443		clock-names = "otg";
444		phys = <&usbphy2>;
445		phy-names = "usb2-phy";
446		status = "disabled";
447	};
448
449	usb_otg: usb@ff580000 {
450		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
451				"snps,dwc2";
452		reg = <0xff580000 0x40000>;
453		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
454		clocks = <&cru HCLK_OTG0>;
455		clock-names = "otg";
456		phys = <&usbphy0>;
457		phy-names = "usb2-phy";
458		status = "disabled";
459	};
460
461	usb_hsic: usb@ff5c0000 {
462		compatible = "generic-ehci";
463		reg = <0xff5c0000 0x100>;
464		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
465		clocks = <&cru HCLK_HSIC>;
466		clock-names = "usbhost";
467		status = "disabled";
468	};
469
470	dmc: dmc@ff610000 {
471		u-boot,dm-pre-reloc;
472		compatible = "rockchip,rk3288-dmc", "syscon";
473		rockchip,cru = <&cru>;
474		rockchip,grf = <&grf>;
475		rockchip,pmu = <&pmu>;
476		rockchip,sgrf = <&sgrf>;
477		rockchip,noc = <&noc>;
478		reg = <0xff610000 0x3fc
479		       0xff620000 0x294
480		       0xff630000 0x3fc
481		       0xff640000 0x294>;
482		rockchip,sram = <&ddr_sram>;
483		clocks = <&cru PCLK_DDRUPCTL0>, <&cru PCLK_PUBL0>,
484			 <&cru PCLK_DDRUPCTL1>, <&cru PCLK_PUBL1>,
485			 <&cru ARMCLK>;
486		clock-names = "pclk_ddrupctl0", "pclk_publ0",
487			      "pclk_ddrupctl1", "pclk_publ1",
488			      "arm_clk";
489	};
490
491	i2c0: i2c@ff650000 {
492		compatible = "rockchip,rk3288-i2c";
493		reg = <0xff650000 0x1000>;
494		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
495		#address-cells = <1>;
496		#size-cells = <0>;
497		clock-names = "i2c";
498		clocks = <&cru PCLK_I2C0>;
499		pinctrl-names = "default";
500		pinctrl-0 = <&i2c0_xfer>;
501		status = "disabled";
502	};
503
504	i2c2: i2c@ff660000 {
505		compatible = "rockchip,rk3288-i2c";
506		reg = <0xff660000 0x1000>;
507		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
508		#address-cells = <1>;
509		#size-cells = <0>;
510		clock-names = "i2c";
511		clocks = <&cru PCLK_I2C2>;
512		pinctrl-names = "default";
513		pinctrl-0 = <&i2c2_xfer>;
514		status = "disabled";
515	};
516
517	pwm0: pwm@ff680000 {
518		compatible = "rockchip,rk3288-pwm";
519		reg = <0xff680000 0x10>;
520		#pwm-cells = <3>;
521		pinctrl-names = "default";
522		pinctrl-0 = <&pwm0_pin>;
523		clocks = <&cru PCLK_PWM>;
524		clock-names = "pwm";
525		rockchip,grf = <&grf>;
526		status = "disabled";
527	};
528
529	pwm1: pwm@ff680010 {
530		compatible = "rockchip,rk3288-pwm";
531		reg = <0xff680010 0x10>;
532		#pwm-cells = <3>;
533		pinctrl-names = "default";
534		pinctrl-0 = <&pwm1_pin>;
535		clocks = <&cru PCLK_PWM>;
536		clock-names = "pwm";
537		rockchip,grf = <&grf>;
538		status = "disabled";
539	};
540
541	pwm2: pwm@ff680020 {
542		compatible = "rockchip,rk3288-pwm";
543		reg = <0xff680020 0x10>;
544		#pwm-cells = <3>;
545		pinctrl-names = "default";
546		pinctrl-0 = <&pwm2_pin>;
547		clocks = <&cru PCLK_PWM>;
548		clock-names = "pwm";
549		rockchip,grf = <&grf>;
550		status = "disabled";
551	};
552
553	pwm3: pwm@ff680030 {
554		compatible = "rockchip,rk3288-pwm";
555		reg = <0xff680030 0x10>;
556		#pwm-cells = <2>;
557		pinctrl-names = "default";
558		pinctrl-0 = <&pwm3_pin>;
559		clocks = <&cru PCLK_PWM>;
560		clock-names = "pwm";
561		rockchip,grf = <&grf>;
562		status = "disabled";
563	};
564
565	bus_intmem@ff700000 {
566		compatible = "mmio-sram";
567		reg = <0xff700000 0x18000>;
568		#address-cells = <1>;
569		#size-cells = <1>;
570		ranges = <0 0xff700000 0x18000>;
571		smp-sram@0 {
572			compatible = "rockchip,rk3066-smp-sram";
573			reg = <0x00 0x10>;
574		};
575		ddr_sram: ddr-sram@1000 {
576			compatible = "rockchip,rk3288-ddr-sram";
577			reg = <0x1000 0x4000>;
578		};
579	};
580
581	sram@ff720000 {
582		compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
583		reg = <0xff720000 0x1000>;
584	};
585
586	pmu: power-management@ff730000 {
587		u-boot,dm-pre-reloc;
588		compatible = "rockchip,rk3288-pmu", "syscon";
589		reg = <0xff730000 0x100>;
590	};
591
592	sgrf: syscon@ff740000 {
593		u-boot,dm-pre-reloc;
594		compatible = "rockchip,rk3288-sgrf", "syscon";
595		reg = <0xff740000 0x1000>;
596	};
597
598	cru: clock-controller@ff760000 {
599		compatible = "rockchip,rk3288-cru";
600		reg = <0xff760000 0x1000>;
601		rockchip,grf = <&grf>;
602		u-boot,dm-pre-reloc;
603		#clock-cells = <1>;
604		#reset-cells = <1>;
605		assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>,
606				  <&cru PLL_GPLL>, <&cru PLL_CPLL>,
607				  <&cru PLL_NPLL>, <&cru ACLK_CPU>,
608				  <&cru HCLK_CPU>, <&cru PCLK_CPU>,
609				  <&cru ACLK_PERI>, <&cru HCLK_PERI>,
610				  <&cru PCLK_PERI>;
611		assigned-clock-rates = <0>, <0>,
612				       <594000000>, <400000000>,
613				       <500000000>, <300000000>,
614				       <150000000>, <75000000>,
615				       <300000000>, <150000000>,
616				       <75000000>;
617		assigned-clock-parents = <&cru PLL_NPLL>, <&cru PLL_GPLL>;
618	};
619
620	grf: syscon@ff770000 {
621		u-boot,dm-pre-reloc;
622		compatible = "rockchip,rk3288-grf", "syscon";
623		reg = <0xff770000 0x1000>;
624	};
625
626	wdt: watchdog@ff800000 {
627		compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
628		reg = <0xff800000 0x100>;
629		clocks = <&cru PCLK_WDT>;
630		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
631		status = "disabled";
632	};
633
634	i2s: i2s@ff890000 {
635		compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
636		reg = <0xff890000 0x10000>;
637		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
638		#address-cells = <1>;
639		#size-cells = <0>;
640		dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
641		dma-names = "tx", "rx";
642		clock-names = "i2s_hclk", "i2s_clk";
643		clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
644		pinctrl-names = "default";
645		pinctrl-0 = <&i2s0_bus>;
646		status = "disabled";
647	};
648
649	vopb: vop@ff930000 {
650		compatible = "rockchip,rk3288-vop";
651		reg = <0xff930000 0x19c>;
652		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
653		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
654		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
655		resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
656		reset-names = "axi", "ahb", "dclk";
657		iommus = <&vopb_mmu>;
658		power-domains = <&power RK3288_PD_VIO>;
659		status = "disabled";
660		vopb_out: port {
661			#address-cells = <1>;
662			#size-cells = <0>;
663			vopb_out_edp: endpoint@0 {
664				reg = <0>;
665				remote-endpoint = <&edp_in_vopb>;
666			};
667			vopb_out_hdmi: endpoint@1 {
668				reg = <1>;
669				remote-endpoint = <&hdmi_in_vopb>;
670			};
671		};
672	};
673
674	vopb_mmu: iommu@ff930300 {
675		compatible = "rockchip,iommu";
676		reg = <0xff930300 0x100>;
677		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
678		interrupt-names = "vopb_mmu";
679		power-domains = <&power RK3288_PD_VIO>;
680		#iommu-cells = <0>;
681		status = "disabled";
682	};
683
684	vopl: vop@ff940000 {
685		compatible = "rockchip,rk3288-vop";
686		reg = <0xff940000 0x19c>;
687		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
688		clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
689		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
690		resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
691		reset-names = "axi", "ahb", "dclk";
692		iommus = <&vopl_mmu>;
693		power-domains = <&power RK3288_PD_VIO>;
694		status = "disabled";
695		vopl_out: port {
696			#address-cells = <1>;
697			#size-cells = <0>;
698			vopl_out_edp: endpoint@0 {
699				reg = <0>;
700				remote-endpoint = <&edp_in_vopl>;
701			};
702			vopl_out_hdmi: endpoint@1 {
703				reg = <1>;
704				remote-endpoint = <&hdmi_in_vopl>;
705			};
706
707		};
708	};
709
710	vopl_mmu: iommu@ff940300 {
711		compatible = "rockchip,iommu";
712		reg = <0xff940300 0x100>;
713		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
714		interrupt-names = "vopl_mmu";
715		power-domains = <&power RK3288_PD_VIO>;
716		#iommu-cells = <0>;
717		status = "disabled";
718	};
719
720	edp: edp@ff970000 {
721		compatible = "rockchip,rk3288-edp";
722		reg = <0xff970000 0x4000>;
723		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
724		clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
725		rockchip,grf = <&grf>;
726		clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
727		resets = <&cru 111>;
728		reset-names = "edp";
729		power-domains = <&power RK3288_PD_VIO>;
730		status = "disabled";
731		ports {
732			edp_in: port {
733				#address-cells = <1>;
734				#size-cells = <0>;
735				edp_in_vopb: endpoint@0 {
736					reg = <0>;
737					remote-endpoint = <&vopb_out_edp>;
738				};
739				edp_in_vopl: endpoint@1 {
740					reg = <1>;
741					remote-endpoint = <&vopl_out_edp>;
742				};
743			};
744		};
745	};
746
747	hdmi: hdmi@ff980000 {
748		compatible = "rockchip,rk3288-dw-hdmi";
749		reg = <0xff980000 0x20000>;
750		reg-io-width = <4>;
751		ddc-i2c-bus = <&i2c5>;
752		rockchip,grf = <&grf>;
753		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
754		clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
755		clock-names = "iahb", "isfr";
756		status = "disabled";
757		ports {
758			hdmi_in: port {
759				#address-cells = <1>;
760				#size-cells = <0>;
761				hdmi_in_vopb: endpoint@0 {
762					reg = <0>;
763					remote-endpoint = <&vopb_out_hdmi>;
764				};
765				hdmi_in_vopl: endpoint@1 {
766					reg = <1>;
767					remote-endpoint = <&vopl_out_hdmi>;
768				};
769			};
770		};
771	};
772
773	hdmi_audio: hdmi_audio {
774		compatible = "rockchip,rk3288-hdmi-audio";
775		i2s-controller = <&i2s>;
776		status = "disable";
777	};
778
779	vpu: video-codec@ff9a0000 {
780		compatible = "rockchip,rk3288-vpu";
781		reg = <0xff9a0000 0x800>;
782		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
783				<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
784		interrupt-names = "vepu", "vdpu";
785		clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
786		clock-names = "aclk_vcodec", "hclk_vcodec";
787		power-domains = <&power RK3288_PD_VIDEO>;
788		iommus = <&vpu_mmu>;
789	};
790
791	vpu_mmu: iommu@ff9a0800 {
792		compatible = "rockchip,iommu";
793		reg = <0xff9a0800 0x100>;
794		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
795		interrupt-names = "vpu_mmu";
796		power-domains = <&power RK3288_PD_VIDEO>;
797		#iommu-cells = <0>;
798	};
799
800	gpu: gpu@ffa30000 {
801		compatible = "arm,malit764",
802			     "arm,malit76x",
803			     "arm,malit7xx",
804			     "arm,mali-midgard";
805		reg = <0xffa30000 0x10000>;
806		interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
807			     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
808			     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
809		interrupt-names = "JOB", "MMU", "GPU";
810		clocks = <&cru ACLK_GPU>;
811		clock-names = "aclk_gpu";
812		operating-points = <
813			/* KHz uV */
814			100000 950000
815			200000 950000
816			300000 1000000
817			400000 1100000
818			/* 500000 1200000 - See crosbug.com/p/33857 */
819			600000 1250000
820		>;
821		power-domains = <&power RK3288_PD_GPU>;
822		status = "disabled";
823	};
824
825	noc: syscon@ffac0000 {
826		u-boot,dm-pre-reloc;
827		compatible = "rockchip,rk3288-noc", "syscon";
828		reg = <0xffac0000 0x2000>;
829	};
830
831	efuse: efuse@ffb40000 {
832		compatible = "rockchip,rk3288-efuse";
833		reg = <0xffb40000 0x10000>;
834		status = "disabled";
835	};
836
837	gic: interrupt-controller@ffc01000 {
838		compatible = "arm,gic-400";
839		interrupt-controller;
840		#interrupt-cells = <3>;
841		#address-cells = <0>;
842
843		reg = <0xffc01000 0x1000>,
844		      <0xffc02000 0x1000>,
845		      <0xffc04000 0x2000>,
846		      <0xffc06000 0x2000>;
847		interrupts = <GIC_PPI 9 0xf04>;
848	};
849
850	cpuidle: cpuidle {
851		compatible = "rockchip,rk3288-cpuidle";
852	};
853
854	usbphy: phy {
855		compatible = "rockchip,rk3288-usb-phy";
856		rockchip,grf = <&grf>;
857		#address-cells = <1>;
858		#size-cells = <0>;
859		status = "disabled";
860
861		usbphy0: usb-phy0 {
862			#phy-cells = <0>;
863			reg = <0x320>;
864			clocks = <&cru SCLK_OTGPHY0>;
865			clock-names = "phyclk";
866		};
867
868		usbphy1: usb-phy1 {
869			#phy-cells = <0>;
870			reg = <0x334>;
871			clocks = <&cru SCLK_OTGPHY1>;
872			clock-names = "phyclk";
873		};
874
875		usbphy2: usb-phy2 {
876			#phy-cells = <0>;
877			reg = <0x348>;
878			clocks = <&cru SCLK_OTGPHY2>;
879			clock-names = "phyclk";
880		};
881	};
882
883	pinctrl: pinctrl {
884		compatible = "rockchip,rk3288-pinctrl";
885		rockchip,grf = <&grf>;
886		rockchip,pmu = <&pmu>;
887		#address-cells = <1>;
888		#size-cells = <1>;
889		ranges;
890
891		gpio0: gpio0@ff750000 {
892			compatible = "rockchip,gpio-bank";
893			reg =	<0xff750000 0x100>;
894			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
895			clocks = <&cru PCLK_GPIO0>;
896
897			gpio-controller;
898			#gpio-cells = <2>;
899
900			interrupt-controller;
901			#interrupt-cells = <2>;
902		};
903
904		gpio1: gpio1@ff780000 {
905			compatible = "rockchip,gpio-bank";
906			reg = <0xff780000 0x100>;
907			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
908			clocks = <&cru PCLK_GPIO1>;
909
910			gpio-controller;
911			#gpio-cells = <2>;
912
913			interrupt-controller;
914			#interrupt-cells = <2>;
915		};
916
917		gpio2: gpio2@ff790000 {
918			compatible = "rockchip,gpio-bank";
919			reg = <0xff790000 0x100>;
920			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
921			clocks = <&cru PCLK_GPIO2>;
922
923			gpio-controller;
924			#gpio-cells = <2>;
925
926			interrupt-controller;
927			#interrupt-cells = <2>;
928		};
929
930		gpio3: gpio3@ff7a0000 {
931			compatible = "rockchip,gpio-bank";
932			reg = <0xff7a0000 0x100>;
933			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
934			clocks = <&cru PCLK_GPIO3>;
935
936			gpio-controller;
937			#gpio-cells = <2>;
938
939			interrupt-controller;
940			#interrupt-cells = <2>;
941		};
942
943		gpio4: gpio4@ff7b0000 {
944			compatible = "rockchip,gpio-bank";
945			reg = <0xff7b0000 0x100>;
946			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
947			clocks = <&cru PCLK_GPIO4>;
948
949			gpio-controller;
950			#gpio-cells = <2>;
951
952			interrupt-controller;
953			#interrupt-cells = <2>;
954		};
955
956		gpio5: gpio5@ff7c0000 {
957			compatible = "rockchip,gpio-bank";
958			reg = <0xff7c0000 0x100>;
959			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
960			clocks = <&cru PCLK_GPIO5>;
961
962			gpio-controller;
963			#gpio-cells = <2>;
964
965			interrupt-controller;
966			#interrupt-cells = <2>;
967		};
968
969		gpio6: gpio6@ff7d0000 {
970			compatible = "rockchip,gpio-bank";
971			reg = <0xff7d0000 0x100>;
972			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
973			clocks = <&cru PCLK_GPIO6>;
974
975			gpio-controller;
976			#gpio-cells = <2>;
977
978			interrupt-controller;
979			#interrupt-cells = <2>;
980		};
981
982		gpio7: gpio7@ff7e0000 {
983			compatible = "rockchip,gpio-bank";
984			reg = <0xff7e0000 0x100>;
985			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
986			clocks = <&cru PCLK_GPIO7>;
987
988			gpio-controller;
989			#gpio-cells = <2>;
990
991			interrupt-controller;
992			#interrupt-cells = <2>;
993		};
994
995		gpio8: gpio8@ff7f0000 {
996			compatible = "rockchip,gpio-bank";
997			reg = <0xff7f0000 0x100>;
998			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
999			clocks = <&cru PCLK_GPIO8>;
1000
1001			gpio-controller;
1002			#gpio-cells = <2>;
1003
1004			interrupt-controller;
1005			#interrupt-cells = <2>;
1006		};
1007
1008		pcfg_pull_up: pcfg-pull-up {
1009			bias-pull-up;
1010		};
1011
1012		pcfg_pull_down: pcfg-pull-down {
1013			bias-pull-down;
1014		};
1015
1016		pcfg_pull_none: pcfg-pull-none {
1017			bias-disable;
1018		};
1019
1020		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1021			bias-disable;
1022			drive-strength = <12>;
1023		};
1024
1025		sleep {
1026			global_pwroff: global-pwroff {
1027				rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1028			};
1029
1030			ddrio_pwroff: ddrio-pwroff {
1031				rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1032			};
1033
1034			ddr0_retention: ddr0-retention {
1035				rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1036			};
1037
1038			ddr1_retention: ddr1-retention {
1039				rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1040			};
1041		};
1042
1043		i2c0 {
1044			i2c0_xfer: i2c0-xfer {
1045				rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1046						<0 16 RK_FUNC_1 &pcfg_pull_none>;
1047			};
1048		};
1049
1050		i2c1 {
1051			i2c1_xfer: i2c1-xfer {
1052				rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1053						<8 5 RK_FUNC_1 &pcfg_pull_none>;
1054			};
1055		};
1056
1057		i2c2 {
1058			i2c2_xfer: i2c2-xfer {
1059				rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1060						<6 10 RK_FUNC_1 &pcfg_pull_none>;
1061			};
1062		};
1063
1064		i2c3 {
1065			i2c3_xfer: i2c3-xfer {
1066				rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1067						<2 17 RK_FUNC_1 &pcfg_pull_none>;
1068			};
1069		};
1070
1071		i2c4 {
1072			i2c4_xfer: i2c4-xfer {
1073				rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1074						<7 18 RK_FUNC_1 &pcfg_pull_none>;
1075			};
1076		};
1077
1078		i2c5 {
1079			i2c5_xfer: i2c5-xfer {
1080				rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1081						<7 20 RK_FUNC_1 &pcfg_pull_none>;
1082			};
1083		};
1084
1085		i2s0 {
1086			i2s0_bus: i2s0-bus {
1087				rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1088						<6 1 RK_FUNC_1 &pcfg_pull_none>,
1089						<6 2 RK_FUNC_1 &pcfg_pull_none>,
1090						<6 3 RK_FUNC_1 &pcfg_pull_none>,
1091						<6 4 RK_FUNC_1 &pcfg_pull_none>,
1092						<6 8 RK_FUNC_1 &pcfg_pull_none>;
1093			};
1094		};
1095
1096		sdmmc {
1097			sdmmc_clk: sdmmc-clk {
1098				rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1099			};
1100
1101			sdmmc_cmd: sdmmc-cmd {
1102				rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1103			};
1104
1105			sdmmc_cd: sdmcc-cd {
1106				rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1107			};
1108
1109			sdmmc_bus1: sdmmc-bus1 {
1110				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1111			};
1112
1113			sdmmc_bus4: sdmmc-bus4 {
1114				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1115						<6 17 RK_FUNC_1 &pcfg_pull_up>,
1116						<6 18 RK_FUNC_1 &pcfg_pull_up>,
1117						<6 19 RK_FUNC_1 &pcfg_pull_up>;
1118			};
1119		};
1120
1121		sdio0 {
1122			sdio0_bus1: sdio0-bus1 {
1123				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1124			};
1125
1126			sdio0_bus4: sdio0-bus4 {
1127				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1128						<4 21 RK_FUNC_1 &pcfg_pull_up>,
1129						<4 22 RK_FUNC_1 &pcfg_pull_up>,
1130						<4 23 RK_FUNC_1 &pcfg_pull_up>;
1131			};
1132
1133			sdio0_cmd: sdio0-cmd {
1134				rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1135			};
1136
1137			sdio0_clk: sdio0-clk {
1138				rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1139			};
1140
1141			sdio0_cd: sdio0-cd {
1142				rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1143			};
1144
1145			sdio0_wp: sdio0-wp {
1146				rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1147			};
1148
1149			sdio0_pwr: sdio0-pwr {
1150				rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1151			};
1152
1153			sdio0_bkpwr: sdio0-bkpwr {
1154				rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1155			};
1156
1157			sdio0_int: sdio0-int {
1158				rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1159			};
1160		};
1161
1162		sdio1 {
1163			sdio1_bus1: sdio1-bus1 {
1164				rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>;
1165			};
1166
1167			sdio1_bus4: sdio1-bus4 {
1168				rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>,
1169						<3 25 RK_FUNC_4 &pcfg_pull_up>,
1170						<3 26 RK_FUNC_4 &pcfg_pull_up>,
1171						<3 27 RK_FUNC_4 &pcfg_pull_up>;
1172			};
1173
1174			sdio1_cd: sdio1-cd {
1175				rockchip,pins = <3 28 RK_FUNC_4 &pcfg_pull_up>;
1176			};
1177
1178			sdio1_wp: sdio1-wp {
1179				rockchip,pins = <3 29 RK_FUNC_4 &pcfg_pull_up>;
1180			};
1181
1182			sdio1_bkpwr: sdio1-bkpwr {
1183				rockchip,pins = <3 30 RK_FUNC_4 &pcfg_pull_up>;
1184			};
1185
1186			sdio1_int: sdio1-int {
1187				rockchip,pins = <3 31 RK_FUNC_4 &pcfg_pull_up>;
1188			};
1189
1190			sdio1_cmd: sdio1-cmd {
1191				rockchip,pins = <4 6 RK_FUNC_4 &pcfg_pull_up>;
1192			};
1193
1194			sdio1_clk: sdio1-clk {
1195				rockchip,pins = <4 7 RK_FUNC_4 &pcfg_pull_none>;
1196			};
1197
1198			sdio1_pwr: sdio1-pwr {
1199				rockchip,pins = <4 9 RK_FUNC_4 &pcfg_pull_up>;
1200			};
1201		};
1202
1203		emmc {
1204			emmc_clk: emmc-clk {
1205				rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1206			};
1207
1208			emmc_cmd: emmc-cmd {
1209				rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1210			};
1211
1212			emmc_pwr: emmc-pwr {
1213				rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1214			};
1215
1216			emmc_bus1: emmc-bus1 {
1217				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1218			};
1219
1220			emmc_bus4: emmc-bus4 {
1221				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1222						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1223						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1224						<3 3 RK_FUNC_2 &pcfg_pull_up>;
1225			};
1226
1227			emmc_bus8: emmc-bus8 {
1228				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1229						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1230						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1231						<3 3 RK_FUNC_2 &pcfg_pull_up>,
1232						<3 4 RK_FUNC_2 &pcfg_pull_up>,
1233						<3 5 RK_FUNC_2 &pcfg_pull_up>,
1234						<3 6 RK_FUNC_2 &pcfg_pull_up>,
1235						<3 7 RK_FUNC_2 &pcfg_pull_up>;
1236			};
1237		};
1238
1239		spi0 {
1240			spi0_clk: spi0-clk {
1241				rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1242			};
1243			spi0_cs0: spi0-cs0 {
1244				rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1245			};
1246			spi0_tx: spi0-tx {
1247				rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1248			};
1249			spi0_rx: spi0-rx {
1250				rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1251			};
1252			spi0_cs1: spi0-cs1 {
1253				rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1254			};
1255		};
1256		spi1 {
1257			spi1_clk: spi1-clk {
1258				rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1259			};
1260			spi1_cs0: spi1-cs0 {
1261				rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1262			};
1263			spi1_rx: spi1-rx {
1264				rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1265			};
1266			spi1_tx: spi1-tx {
1267				rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1268			};
1269		};
1270
1271		spi2 {
1272			spi2_cs1: spi2-cs1 {
1273				rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1274			};
1275			spi2_clk: spi2-clk {
1276				rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1277			};
1278			spi2_cs0: spi2-cs0 {
1279				rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1280			};
1281			spi2_rx: spi2-rx {
1282				rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1283			};
1284			spi2_tx: spi2-tx {
1285				rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1286			};
1287		};
1288
1289		uart0 {
1290			uart0_xfer: uart0-xfer {
1291				rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1292						<4 17 RK_FUNC_1 &pcfg_pull_none>;
1293			};
1294
1295			uart0_cts: uart0-cts {
1296				rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
1297			};
1298
1299			uart0_rts: uart0-rts {
1300				rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1301			};
1302		};
1303
1304		uart1 {
1305			uart1_xfer: uart1-xfer {
1306				rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1307						<5 9 RK_FUNC_1 &pcfg_pull_none>;
1308			};
1309
1310			uart1_cts: uart1-cts {
1311				rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
1312			};
1313
1314			uart1_rts: uart1-rts {
1315				rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1316			};
1317		};
1318
1319		uart2 {
1320			uart2_xfer: uart2-xfer {
1321				rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1322						<7 23 RK_FUNC_1 &pcfg_pull_none>;
1323			};
1324			/* no rts / cts for uart2 */
1325		};
1326
1327		uart3 {
1328			uart3_xfer: uart3-xfer {
1329				rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1330						<7 8 RK_FUNC_1 &pcfg_pull_none>;
1331			};
1332
1333			uart3_cts: uart3-cts {
1334				rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
1335			};
1336
1337			uart3_rts: uart3-rts {
1338				rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1339			};
1340		};
1341
1342		uart4 {
1343			uart4_xfer: uart4-xfer {
1344				rockchip,pins = <5 12 3 &pcfg_pull_up>,
1345						<5 13 3 &pcfg_pull_none>;
1346			};
1347
1348			uart4_cts: uart4-cts {
1349				rockchip,pins = <5 14 3 &pcfg_pull_none>;
1350			};
1351
1352			uart4_rts: uart4-rts {
1353				rockchip,pins = <5 15 3 &pcfg_pull_none>;
1354			};
1355		};
1356
1357		tsadc {
1358			otp_out: otp-out {
1359				rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1360			};
1361		};
1362
1363		pwm0 {
1364			pwm0_pin: pwm0-pin {
1365				rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1366			};
1367		};
1368
1369		pwm1 {
1370			pwm1_pin: pwm1-pin {
1371				rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1372			};
1373		};
1374
1375		pwm2 {
1376			pwm2_pin: pwm2-pin {
1377				rockchip,pins = <7 22 RK_FUNC_3 &pcfg_pull_none>;
1378			};
1379		};
1380
1381		pwm3 {
1382			pwm3_pin: pwm3-pin {
1383				rockchip,pins = <7 23 RK_FUNC_3 &pcfg_pull_none>;
1384			};
1385		};
1386
1387		gmac {
1388			rgmii_pins: rgmii-pins {
1389				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1390						<3 31 3 &pcfg_pull_none>,
1391						<3 26 3 &pcfg_pull_none>,
1392						<3 27 3 &pcfg_pull_none>,
1393						<3 28 3 &pcfg_pull_none_12ma>,
1394						<3 29 3 &pcfg_pull_none_12ma>,
1395						<3 24 3 &pcfg_pull_none_12ma>,
1396						<3 25 3 &pcfg_pull_none_12ma>,
1397						<4 0 3 &pcfg_pull_none>,
1398						<4 5 3 &pcfg_pull_none>,
1399						<4 6 3 &pcfg_pull_none>,
1400						<4 9 3 &pcfg_pull_none_12ma>,
1401						<4 4 3 &pcfg_pull_none_12ma>,
1402						<4 1 3 &pcfg_pull_none>,
1403						<4 3 3 &pcfg_pull_none>;
1404			};
1405
1406			rmii_pins: rmii-pins {
1407				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1408						<3 31 3 &pcfg_pull_none>,
1409						<3 28 3 &pcfg_pull_none>,
1410						<3 29 3 &pcfg_pull_none>,
1411						<4 0 3 &pcfg_pull_none>,
1412						<4 5 3 &pcfg_pull_none>,
1413						<4 4 3 &pcfg_pull_none>,
1414						<4 1 3 &pcfg_pull_none>,
1415						<4 2 3 &pcfg_pull_none>,
1416						<4 3 3 &pcfg_pull_none>;
1417			};
1418		};
1419	};
1420
1421	power: power-controller {
1422		compatible = "rockchip,rk3288-power-controller";
1423		#power-domain-cells = <1>;
1424		rockchip,pmu = <&pmu>;
1425		#address-cells = <1>;
1426		#size-cells = <0>;
1427
1428		pd_gpu {
1429			reg = <RK3288_PD_GPU>;
1430			clocks = <&cru ACLK_GPU>;
1431		};
1432
1433		pd_hevc {
1434			reg = <RK3288_PD_HEVC>;
1435			clocks = <&cru ACLK_HEVC>,
1436				 <&cru SCLK_HEVC_CABAC>,
1437				 <&cru SCLK_HEVC_CORE>,
1438				 <&cru HCLK_HEVC>;
1439		};
1440
1441		pd_vio {
1442			reg = <RK3288_PD_VIO>;
1443			clocks = <&cru ACLK_IEP>,
1444				 <&cru ACLK_ISP>,
1445				 <&cru ACLK_RGA>,
1446				 <&cru ACLK_VIP>,
1447				 <&cru ACLK_VOP0>,
1448				 <&cru ACLK_VOP1>,
1449				 <&cru DCLK_VOP0>,
1450				 <&cru DCLK_VOP1>,
1451				 <&cru HCLK_IEP>,
1452				 <&cru HCLK_ISP>,
1453				 <&cru HCLK_RGA>,
1454				 <&cru HCLK_VIP>,
1455				 <&cru HCLK_VOP0>,
1456				 <&cru HCLK_VOP1>,
1457				 <&cru PCLK_EDP_CTRL>,
1458				 <&cru PCLK_HDMI_CTRL>,
1459				 <&cru PCLK_LVDS_PHY>,
1460				 <&cru PCLK_MIPI_CSI>,
1461				 <&cru PCLK_MIPI_DSI0>,
1462				 <&cru PCLK_MIPI_DSI1>,
1463				 <&cru SCLK_EDP_24M>,
1464				 <&cru SCLK_EDP>,
1465				 <&cru SCLK_HDMI_CEC>,
1466				 <&cru SCLK_HDMI_HDCP>,
1467				 <&cru SCLK_ISP_JPE>,
1468				 <&cru SCLK_ISP>,
1469				 <&cru SCLK_RGA>;
1470		};
1471
1472		pd_video {
1473			reg = <RK3288_PD_VIDEO>;
1474			clocks = <&cru ACLK_VCODEC>,
1475				 <&cru HCLK_VCODEC>;
1476		};
1477	};
1478};
1479