• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 *  a) This file is free software; you can redistribute it and/or
8 *     modify it under the terms of the GNU General Public License as
9 *     published by the Free Software Foundation; either version 2 of the
10 *     License, or (at your option) any later version.
11 *
12 *     This file is distributed in the hope that it will be useful,
13 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *     GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 *  b) Permission is hereby granted, free of charge, to any person
20 *     obtaining a copy of this software and associated documentation
21 *     files (the "Software"), to deal in the Software without
22 *     restriction, including without limitation the rights to use,
23 *     copy, modify, merge, publish, distribute, sublicense, and/or
24 *     sell copies of the Software, and to permit persons to whom the
25 *     Software is furnished to do so, subject to the following
26 *     conditions:
27 *
28 *     The above copyright notice and this permission notice shall be
29 *     included in all copies or substantial portions of the Software.
30 *
31 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 *     OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/interrupt-controller/irq.h>
43#include <dt-bindings/interrupt-controller/arm-gic.h>
44#include <dt-bindings/pinctrl/rockchip.h>
45#include <dt-bindings/clock/rk3288-cru.h>
46#include <dt-bindings/power/rk3288-power.h>
47#include <dt-bindings/thermal/thermal.h>
48#include <dt-bindings/power/rk3288-power.h>
49#include <dt-bindings/soc/rockchip,boot-mode.h>
50
51/ {
52	#address-cells = <2>;
53	#size-cells = <2>;
54
55	compatible = "rockchip,rk3288";
56
57	interrupt-parent = <&gic>;
58
59	aliases {
60		ethernet0 = &gmac;
61		i2c0 = &i2c0;
62		i2c1 = &i2c1;
63		i2c2 = &i2c2;
64		i2c3 = &i2c3;
65		i2c4 = &i2c4;
66		i2c5 = &i2c5;
67		mshc0 = &emmc;
68		mshc1 = &sdmmc;
69		mshc2 = &sdio0;
70		mshc3 = &sdio1;
71		serial0 = &uart0;
72		serial1 = &uart1;
73		serial2 = &uart2;
74		serial3 = &uart3;
75		serial4 = &uart4;
76		spi0 = &spi0;
77		spi1 = &spi1;
78		spi2 = &spi2;
79	};
80
81	arm-pmu {
82		compatible = "arm,cortex-a12-pmu";
83		interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
84			     <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
85			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
86			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
87		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
88	};
89
90	cpus {
91		#address-cells = <1>;
92		#size-cells = <0>;
93		enable-method = "rockchip,rk3066-smp";
94		rockchip,pmu = <&pmu>;
95
96		cpu0: cpu@500 {
97			device_type = "cpu";
98			compatible = "arm,cortex-a12";
99			reg = <0x500>;
100			resets = <&cru SRST_CORE0>;
101			operating-points = <
102				/* KHz    uV */
103				1608000 1350000
104				1512000 1300000
105				1416000 1200000
106				1200000 1100000
107				1008000 1050000
108				 816000 1000000
109				 696000  950000
110				 600000  900000
111				 408000  900000
112				 312000  900000
113				 216000  900000
114				 126000  900000
115			>;
116			#cooling-cells = <2>; /* min followed by max */
117			clock-latency = <40000>;
118			clocks = <&cru ARMCLK>;
119		};
120		cpu1: cpu@501 {
121			device_type = "cpu";
122			compatible = "arm,cortex-a12";
123			reg = <0x501>;
124			resets = <&cru SRST_CORE1>;
125		};
126		cpu2: cpu@502 {
127			device_type = "cpu";
128			compatible = "arm,cortex-a12";
129			reg = <0x502>;
130			resets = <&cru SRST_CORE2>;
131		};
132		cpu3: cpu@503 {
133			device_type = "cpu";
134			compatible = "arm,cortex-a12";
135			reg = <0x503>;
136			resets = <&cru SRST_CORE3>;
137		};
138	};
139
140	amba {
141		compatible = "simple-bus";
142		#address-cells = <2>;
143		#size-cells = <2>;
144		ranges;
145
146		dmac_peri: dma-controller@ff250000 {
147			compatible = "arm,pl330", "arm,primecell";
148			reg = <0x0 0xff250000 0x0 0x4000>;
149			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
150				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
151			#dma-cells = <1>;
152			arm,pl330-broken-no-flushp;
153			clocks = <&cru ACLK_DMAC2>;
154			clock-names = "apb_pclk";
155		};
156
157		dmac_bus_ns: dma-controller@ff600000 {
158			compatible = "arm,pl330", "arm,primecell";
159			reg = <0x0 0xff600000 0x0 0x4000>;
160			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
161				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
162			#dma-cells = <1>;
163			arm,pl330-broken-no-flushp;
164			clocks = <&cru ACLK_DMAC1>;
165			clock-names = "apb_pclk";
166			status = "disabled";
167		};
168
169		dmac_bus_s: dma-controller@ffb20000 {
170			compatible = "arm,pl330", "arm,primecell";
171			reg = <0x0 0xffb20000 0x0 0x4000>;
172			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
173				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
174			#dma-cells = <1>;
175			arm,pl330-broken-no-flushp;
176			clocks = <&cru ACLK_DMAC1>;
177			clock-names = "apb_pclk";
178		};
179	};
180
181	reserved-memory {
182		#address-cells = <2>;
183		#size-cells = <2>;
184		ranges;
185
186		/*
187		 * The rk3288 cannot use the memory area above 0xfe000000
188		 * for dma operations for some reason. While there is
189		 * probably a better solution available somewhere, we
190		 * haven't found it yet and while devices with 2GB of ram
191		 * are not affected, this issue prevents 4GB from booting.
192		 * So to make these devices at least bootable, block
193		 * this area for the time being until the real solution
194		 * is found.
195		 */
196		dma-unusable@fe000000 {
197			reg = <0x0 0xfe000000 0x0 0x1000000>;
198		};
199	};
200
201	xin24m: oscillator {
202		compatible = "fixed-clock";
203		clock-frequency = <24000000>;
204		clock-output-names = "xin24m";
205		#clock-cells = <0>;
206	};
207
208	timer {
209		compatible = "arm,armv7-timer";
210		arm,cpu-registers-not-fw-configured;
211		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
212			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
213			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
214			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
215		clock-frequency = <24000000>;
216		arm,no-tick-in-suspend;
217	};
218
219	timer: timer@ff810000 {
220		compatible = "rockchip,rk3288-timer";
221		reg = <0x0 0xff810000 0x0 0x20>;
222		interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
223		clocks = <&xin24m>, <&cru PCLK_TIMER>;
224		clock-names = "timer", "pclk";
225	};
226
227	display-subsystem {
228		compatible = "rockchip,display-subsystem";
229		ports = <&vopl_out>, <&vopb_out>;
230	};
231
232	sdmmc: dwmmc@ff0c0000 {
233		compatible = "rockchip,rk3288-dw-mshc";
234		max-frequency = <150000000>;
235		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
236			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
237		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
238		fifo-depth = <0x100>;
239		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
240		reg = <0x0 0xff0c0000 0x0 0x4000>;
241		resets = <&cru SRST_MMC0>;
242		reset-names = "reset";
243		status = "disabled";
244	};
245
246	sdio0: dwmmc@ff0d0000 {
247		compatible = "rockchip,rk3288-dw-mshc";
248		max-frequency = <150000000>;
249		clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
250			 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
251		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
252		fifo-depth = <0x100>;
253		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
254		reg = <0x0 0xff0d0000 0x0 0x4000>;
255		resets = <&cru SRST_SDIO0>;
256		reset-names = "reset";
257		status = "disabled";
258	};
259
260	sdio1: dwmmc@ff0e0000 {
261		compatible = "rockchip,rk3288-dw-mshc";
262		max-frequency = <150000000>;
263		clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
264			 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
265		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
266		fifo-depth = <0x100>;
267		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
268		reg = <0x0 0xff0e0000 0x0 0x4000>;
269		resets = <&cru SRST_SDIO1>;
270		reset-names = "reset";
271		status = "disabled";
272	};
273
274	emmc: dwmmc@ff0f0000 {
275		compatible = "rockchip,rk3288-dw-mshc";
276		max-frequency = <150000000>;
277		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
278			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
279		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
280		fifo-depth = <0x100>;
281		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
282		reg = <0x0 0xff0f0000 0x0 0x4000>;
283		resets = <&cru SRST_EMMC>;
284		reset-names = "reset";
285		status = "disabled";
286	};
287
288	saradc: saradc@ff100000 {
289		compatible = "rockchip,saradc";
290		reg = <0x0 0xff100000 0x0 0x100>;
291		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
292		#io-channel-cells = <1>;
293		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
294		clock-names = "saradc", "apb_pclk";
295		resets = <&cru SRST_SARADC>;
296		reset-names = "saradc-apb";
297		status = "disabled";
298	};
299
300	spi0: spi@ff110000 {
301		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
302		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
303		clock-names = "spiclk", "apb_pclk";
304		dmas = <&dmac_peri 11>, <&dmac_peri 12>;
305		dma-names = "tx", "rx";
306		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
307		pinctrl-names = "default";
308		pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
309		reg = <0x0 0xff110000 0x0 0x1000>;
310		#address-cells = <1>;
311		#size-cells = <0>;
312		status = "disabled";
313	};
314
315	spi1: spi@ff120000 {
316		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
317		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
318		clock-names = "spiclk", "apb_pclk";
319		dmas = <&dmac_peri 13>, <&dmac_peri 14>;
320		dma-names = "tx", "rx";
321		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
322		pinctrl-names = "default";
323		pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
324		reg = <0x0 0xff120000 0x0 0x1000>;
325		#address-cells = <1>;
326		#size-cells = <0>;
327		status = "disabled";
328	};
329
330	spi2: spi@ff130000 {
331		compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
332		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
333		clock-names = "spiclk", "apb_pclk";
334		dmas = <&dmac_peri 15>, <&dmac_peri 16>;
335		dma-names = "tx", "rx";
336		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
337		pinctrl-names = "default";
338		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
339		reg = <0x0 0xff130000 0x0 0x1000>;
340		#address-cells = <1>;
341		#size-cells = <0>;
342		status = "disabled";
343	};
344
345	i2c1: i2c@ff140000 {
346		compatible = "rockchip,rk3288-i2c";
347		reg = <0x0 0xff140000 0x0 0x1000>;
348		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
349		#address-cells = <1>;
350		#size-cells = <0>;
351		clock-names = "i2c";
352		clocks = <&cru PCLK_I2C1>;
353		pinctrl-names = "default";
354		pinctrl-0 = <&i2c1_xfer>;
355		status = "disabled";
356	};
357
358	i2c3: i2c@ff150000 {
359		compatible = "rockchip,rk3288-i2c";
360		reg = <0x0 0xff150000 0x0 0x1000>;
361		interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
362		#address-cells = <1>;
363		#size-cells = <0>;
364		clock-names = "i2c";
365		clocks = <&cru PCLK_I2C3>;
366		pinctrl-names = "default";
367		pinctrl-0 = <&i2c3_xfer>;
368		status = "disabled";
369	};
370
371	i2c4: i2c@ff160000 {
372		compatible = "rockchip,rk3288-i2c";
373		reg = <0x0 0xff160000 0x0 0x1000>;
374		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
375		#address-cells = <1>;
376		#size-cells = <0>;
377		clock-names = "i2c";
378		clocks = <&cru PCLK_I2C4>;
379		pinctrl-names = "default";
380		pinctrl-0 = <&i2c4_xfer>;
381		status = "disabled";
382	};
383
384	i2c5: i2c@ff170000 {
385		compatible = "rockchip,rk3288-i2c";
386		reg = <0x0 0xff170000 0x0 0x1000>;
387		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
388		#address-cells = <1>;
389		#size-cells = <0>;
390		clock-names = "i2c";
391		clocks = <&cru PCLK_I2C5>;
392		pinctrl-names = "default";
393		pinctrl-0 = <&i2c5_xfer>;
394		status = "disabled";
395	};
396
397	uart0: serial@ff180000 {
398		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
399		reg = <0x0 0xff180000 0x0 0x100>;
400		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
401		reg-shift = <2>;
402		reg-io-width = <4>;
403		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
404		clock-names = "baudclk", "apb_pclk";
405		pinctrl-names = "default";
406		pinctrl-0 = <&uart0_xfer>;
407		status = "disabled";
408	};
409
410	uart1: serial@ff190000 {
411		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
412		reg = <0x0 0xff190000 0x0 0x100>;
413		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
414		reg-shift = <2>;
415		reg-io-width = <4>;
416		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
417		clock-names = "baudclk", "apb_pclk";
418		pinctrl-names = "default";
419		pinctrl-0 = <&uart1_xfer>;
420		status = "disabled";
421	};
422
423	uart2: serial@ff690000 {
424		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
425		reg = <0x0 0xff690000 0x0 0x100>;
426		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
427		reg-shift = <2>;
428		reg-io-width = <4>;
429		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
430		clock-names = "baudclk", "apb_pclk";
431		pinctrl-names = "default";
432		pinctrl-0 = <&uart2_xfer>;
433		status = "disabled";
434	};
435
436	uart3: serial@ff1b0000 {
437		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
438		reg = <0x0 0xff1b0000 0x0 0x100>;
439		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
440		reg-shift = <2>;
441		reg-io-width = <4>;
442		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
443		clock-names = "baudclk", "apb_pclk";
444		pinctrl-names = "default";
445		pinctrl-0 = <&uart3_xfer>;
446		status = "disabled";
447	};
448
449	uart4: serial@ff1c0000 {
450		compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
451		reg = <0x0 0xff1c0000 0x0 0x100>;
452		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
453		reg-shift = <2>;
454		reg-io-width = <4>;
455		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
456		clock-names = "baudclk", "apb_pclk";
457		pinctrl-names = "default";
458		pinctrl-0 = <&uart4_xfer>;
459		status = "disabled";
460	};
461
462	thermal-zones {
463		reserve_thermal: reserve_thermal {
464			polling-delay-passive = <1000>; /* milliseconds */
465			polling-delay = <5000>; /* milliseconds */
466
467			thermal-sensors = <&tsadc 0>;
468		};
469
470		cpu_thermal: cpu_thermal {
471			polling-delay-passive = <100>; /* milliseconds */
472			polling-delay = <5000>; /* milliseconds */
473
474			thermal-sensors = <&tsadc 1>;
475
476			trips {
477				cpu_alert0: cpu_alert0 {
478					temperature = <70000>; /* millicelsius */
479					hysteresis = <2000>; /* millicelsius */
480					type = "passive";
481				};
482				cpu_alert1: cpu_alert1 {
483					temperature = <75000>; /* millicelsius */
484					hysteresis = <2000>; /* millicelsius */
485					type = "passive";
486				};
487				cpu_crit: cpu_crit {
488					temperature = <90000>; /* millicelsius */
489					hysteresis = <2000>; /* millicelsius */
490					type = "critical";
491				};
492			};
493
494			cooling-maps {
495				map0 {
496					trip = <&cpu_alert0>;
497					cooling-device =
498						<&cpu0 THERMAL_NO_LIMIT 6>;
499				};
500				map1 {
501					trip = <&cpu_alert1>;
502					cooling-device =
503						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
504				};
505			};
506		};
507
508		gpu_thermal: gpu_thermal {
509			polling-delay-passive = <100>; /* milliseconds */
510			polling-delay = <5000>; /* milliseconds */
511
512			thermal-sensors = <&tsadc 2>;
513
514			trips {
515				gpu_alert0: gpu_alert0 {
516					temperature = <70000>; /* millicelsius */
517					hysteresis = <2000>; /* millicelsius */
518					type = "passive";
519				};
520				gpu_crit: gpu_crit {
521					temperature = <90000>; /* millicelsius */
522					hysteresis = <2000>; /* millicelsius */
523					type = "critical";
524				};
525			};
526
527			cooling-maps {
528				map0 {
529					trip = <&gpu_alert0>;
530					cooling-device =
531						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
532				};
533			};
534		};
535	};
536
537	tsadc: tsadc@ff280000 {
538		compatible = "rockchip,rk3288-tsadc";
539		reg = <0x0 0xff280000 0x0 0x100>;
540		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
541		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
542		clock-names = "tsadc", "apb_pclk";
543		resets = <&cru SRST_TSADC>;
544		reset-names = "tsadc-apb";
545		pinctrl-names = "init", "default", "sleep";
546		pinctrl-0 = <&otp_gpio>;
547		pinctrl-1 = <&otp_out>;
548		pinctrl-2 = <&otp_gpio>;
549		#thermal-sensor-cells = <1>;
550		rockchip,hw-tshut-temp = <95000>;
551		status = "disabled";
552	};
553
554	gmac: ethernet@ff290000 {
555		compatible = "rockchip,rk3288-gmac";
556		reg = <0x0 0xff290000 0x0 0x10000>;
557		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
558				<GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
559		interrupt-names = "macirq", "eth_wake_irq";
560		rockchip,grf = <&grf>;
561		clocks = <&cru SCLK_MAC>,
562			<&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
563			<&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
564			<&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
565		clock-names = "stmmaceth",
566			"mac_clk_rx", "mac_clk_tx",
567			"clk_mac_ref", "clk_mac_refout",
568			"aclk_mac", "pclk_mac";
569		resets = <&cru SRST_MAC>;
570		reset-names = "stmmaceth";
571		status = "disabled";
572	};
573
574	usb_host0_ehci: usb@ff500000 {
575		compatible = "generic-ehci";
576		reg = <0x0 0xff500000 0x0 0x100>;
577		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
578		clocks = <&cru HCLK_USBHOST0>;
579		clock-names = "usbhost";
580		phys = <&usbphy1>;
581		phy-names = "usb";
582		status = "disabled";
583	};
584
585	/* NOTE: ohci@ff520000 doesn't actually work on hardware */
586
587	usb_host1: usb@ff540000 {
588		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
589				"snps,dwc2";
590		reg = <0x0 0xff540000 0x0 0x40000>;
591		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
592		clocks = <&cru HCLK_USBHOST1>;
593		clock-names = "otg";
594		dr_mode = "host";
595		phys = <&usbphy2>;
596		phy-names = "usb2-phy";
597		status = "disabled";
598	};
599
600	usb_otg: usb@ff580000 {
601		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
602				"snps,dwc2";
603		reg = <0x0 0xff580000 0x0 0x40000>;
604		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
605		clocks = <&cru HCLK_OTG0>;
606		clock-names = "otg";
607		dr_mode = "otg";
608		g-np-tx-fifo-size = <16>;
609		g-rx-fifo-size = <275>;
610		g-tx-fifo-size = <256 128 128 64 64 32>;
611		phys = <&usbphy0>;
612		phy-names = "usb2-phy";
613		status = "disabled";
614	};
615
616	usb_hsic: usb@ff5c0000 {
617		compatible = "generic-ehci";
618		reg = <0x0 0xff5c0000 0x0 0x100>;
619		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
620		clocks = <&cru HCLK_HSIC>;
621		clock-names = "usbhost";
622		status = "disabled";
623	};
624
625	i2c0: i2c@ff650000 {
626		compatible = "rockchip,rk3288-i2c";
627		reg = <0x0 0xff650000 0x0 0x1000>;
628		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
629		#address-cells = <1>;
630		#size-cells = <0>;
631		clock-names = "i2c";
632		clocks = <&cru PCLK_I2C0>;
633		pinctrl-names = "default";
634		pinctrl-0 = <&i2c0_xfer>;
635		status = "disabled";
636	};
637
638	i2c2: i2c@ff660000 {
639		compatible = "rockchip,rk3288-i2c";
640		reg = <0x0 0xff660000 0x0 0x1000>;
641		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
642		#address-cells = <1>;
643		#size-cells = <0>;
644		clock-names = "i2c";
645		clocks = <&cru PCLK_I2C2>;
646		pinctrl-names = "default";
647		pinctrl-0 = <&i2c2_xfer>;
648		status = "disabled";
649	};
650
651	pwm0: pwm@ff680000 {
652		compatible = "rockchip,rk3288-pwm";
653		reg = <0x0 0xff680000 0x0 0x10>;
654		#pwm-cells = <3>;
655		pinctrl-names = "default";
656		pinctrl-0 = <&pwm0_pin>;
657		clocks = <&cru PCLK_PWM>;
658		clock-names = "pwm";
659		status = "disabled";
660	};
661
662	pwm1: pwm@ff680010 {
663		compatible = "rockchip,rk3288-pwm";
664		reg = <0x0 0xff680010 0x0 0x10>;
665		#pwm-cells = <3>;
666		pinctrl-names = "default";
667		pinctrl-0 = <&pwm1_pin>;
668		clocks = <&cru PCLK_PWM>;
669		clock-names = "pwm";
670		status = "disabled";
671	};
672
673	pwm2: pwm@ff680020 {
674		compatible = "rockchip,rk3288-pwm";
675		reg = <0x0 0xff680020 0x0 0x10>;
676		#pwm-cells = <3>;
677		pinctrl-names = "default";
678		pinctrl-0 = <&pwm2_pin>;
679		clocks = <&cru PCLK_PWM>;
680		clock-names = "pwm";
681		status = "disabled";
682	};
683
684	pwm3: pwm@ff680030 {
685		compatible = "rockchip,rk3288-pwm";
686		reg = <0x0 0xff680030 0x0 0x10>;
687		#pwm-cells = <2>;
688		pinctrl-names = "default";
689		pinctrl-0 = <&pwm3_pin>;
690		clocks = <&cru PCLK_PWM>;
691		clock-names = "pwm";
692		status = "disabled";
693	};
694
695	bus_intmem@ff700000 {
696		compatible = "mmio-sram";
697		reg = <0x0 0xff700000 0x0 0x18000>;
698		#address-cells = <1>;
699		#size-cells = <1>;
700		ranges = <0 0x0 0xff700000 0x18000>;
701		smp-sram@0 {
702			compatible = "rockchip,rk3066-smp-sram";
703			reg = <0x00 0x10>;
704		};
705	};
706
707	sram@ff720000 {
708		compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
709		reg = <0x0 0xff720000 0x0 0x1000>;
710	};
711
712	pmu: power-management@ff730000 {
713		compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
714		reg = <0x0 0xff730000 0x0 0x100>;
715
716		power: power-controller {
717			compatible = "rockchip,rk3288-power-controller";
718			#power-domain-cells = <1>;
719			#address-cells = <1>;
720			#size-cells = <0>;
721
722			assigned-clocks = <&cru SCLK_EDP_24M>;
723			assigned-clock-parents = <&xin24m>;
724
725			/*
726			 * Note: Although SCLK_* are the working clocks
727			 * of device without including on the NOC, needed for
728			 * synchronous reset.
729			 *
730			 * The clocks on the which NOC:
731			 * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
732			 * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
733			 * ACLK_RGA is on ACLK_RGA_NIU.
734			 * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
735			 *
736			 * Which clock are device clocks:
737			 *	clocks		devices
738			 *	*_IEP		IEP:Image Enhancement Processor
739			 *	*_ISP		ISP:Image Signal Processing
740			 *	*_VIP		VIP:Video Input Processor
741			 *	*_VOP*		VOP:Visual Output Processor
742			 *	*_RGA		RGA
743			 *	*_EDP*		EDP
744			 *	*_LVDS_*	LVDS
745			 *	*_HDMI		HDMI
746			 *	*_MIPI_*	MIPI
747			 */
748			pd_vio@RK3288_PD_VIO {
749				reg = <RK3288_PD_VIO>;
750				clocks = <&cru ACLK_IEP>,
751					 <&cru ACLK_ISP>,
752					 <&cru ACLK_RGA>,
753					 <&cru ACLK_VIP>,
754					 <&cru ACLK_VOP0>,
755					 <&cru ACLK_VOP1>,
756					 <&cru DCLK_VOP0>,
757					 <&cru DCLK_VOP1>,
758					 <&cru HCLK_IEP>,
759					 <&cru HCLK_ISP>,
760					 <&cru HCLK_RGA>,
761					 <&cru HCLK_VIP>,
762					 <&cru HCLK_VOP0>,
763					 <&cru HCLK_VOP1>,
764					 <&cru PCLK_EDP_CTRL>,
765					 <&cru PCLK_HDMI_CTRL>,
766					 <&cru PCLK_LVDS_PHY>,
767					 <&cru PCLK_MIPI_CSI>,
768					 <&cru PCLK_MIPI_DSI0>,
769					 <&cru PCLK_MIPI_DSI1>,
770					 <&cru SCLK_EDP_24M>,
771					 <&cru SCLK_EDP>,
772					 <&cru SCLK_ISP_JPE>,
773					 <&cru SCLK_ISP>,
774					 <&cru SCLK_RGA>;
775				pm_qos = <&qos_vio0_iep>,
776					 <&qos_vio1_vop>,
777					 <&qos_vio1_isp_w0>,
778					 <&qos_vio1_isp_w1>,
779					 <&qos_vio0_vop>,
780					 <&qos_vio0_vip>,
781					 <&qos_vio2_rga_r>,
782					 <&qos_vio2_rga_w>,
783					 <&qos_vio1_isp_r>;
784			};
785
786			/*
787			 * Note: The following 3 are HEVC(H.265) clocks,
788			 * and on the ACLK_HEVC_NIU (NOC).
789			 */
790			pd_hevc@RK3288_PD_HEVC {
791				reg = <RK3288_PD_HEVC>;
792				clocks = <&cru ACLK_HEVC>,
793					 <&cru SCLK_HEVC_CABAC>,
794					 <&cru SCLK_HEVC_CORE>;
795				pm_qos = <&qos_hevc_r>,
796					 <&qos_hevc_w>;
797			};
798
799			/*
800			 * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
801			 * (video endecoder & decoder) clocks that on the
802			 * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
803			 */
804			pd_video@RK3288_PD_VIDEO {
805				reg = <RK3288_PD_VIDEO>;
806				clocks = <&cru ACLK_VCODEC>,
807					 <&cru HCLK_VCODEC>;
808				pm_qos = <&qos_video>;
809			};
810
811			/*
812			 * Note: ACLK_GPU is the GPU clock,
813			 * and on the ACLK_GPU_NIU (NOC).
814			 */
815			pd_gpu@RK3288_PD_GPU {
816				reg = <RK3288_PD_GPU>;
817				clocks = <&cru ACLK_GPU>;
818				pm_qos = <&qos_gpu_r>,
819					 <&qos_gpu_w>;
820			};
821		};
822
823		reboot-mode {
824			compatible = "syscon-reboot-mode";
825			offset = <0x94>;
826			mode-normal = <BOOT_NORMAL>;
827			mode-recovery = <BOOT_RECOVERY>;
828			mode-bootloader = <BOOT_FASTBOOT>;
829			mode-loader = <BOOT_BL_DOWNLOAD>;
830		};
831	};
832
833	sgrf: syscon@ff740000 {
834		compatible = "rockchip,rk3288-sgrf", "syscon";
835		reg = <0x0 0xff740000 0x0 0x1000>;
836	};
837
838	cru: clock-controller@ff760000 {
839		compatible = "rockchip,rk3288-cru";
840		reg = <0x0 0xff760000 0x0 0x1000>;
841		rockchip,grf = <&grf>;
842		#clock-cells = <1>;
843		#reset-cells = <1>;
844		assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
845				  <&cru PLL_NPLL>, <&cru ACLK_CPU>,
846				  <&cru HCLK_CPU>, <&cru PCLK_CPU>,
847				  <&cru ACLK_PERI>, <&cru HCLK_PERI>,
848				  <&cru PCLK_PERI>;
849		assigned-clock-rates = <594000000>, <400000000>,
850				       <500000000>, <300000000>,
851				       <150000000>, <75000000>,
852				       <300000000>, <150000000>,
853				       <75000000>;
854	};
855
856	grf: syscon@ff770000 {
857		compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
858		reg = <0x0 0xff770000 0x0 0x1000>;
859
860		edp_phy: edp-phy {
861			compatible = "rockchip,rk3288-dp-phy";
862			clocks = <&cru SCLK_EDP_24M>;
863			clock-names = "24m";
864			#phy-cells = <0>;
865			status = "disabled";
866		};
867
868		io_domains: io-domains {
869			compatible = "rockchip,rk3288-io-voltage-domain";
870			status = "disabled";
871		};
872
873		usbphy: usbphy {
874			compatible = "rockchip,rk3288-usb-phy";
875			#address-cells = <1>;
876			#size-cells = <0>;
877			status = "disabled";
878
879			usbphy0: usb-phy@320 {
880				#phy-cells = <0>;
881				reg = <0x320>;
882				clocks = <&cru SCLK_OTGPHY0>;
883				clock-names = "phyclk";
884				#clock-cells = <0>;
885			};
886
887			usbphy1: usb-phy@334 {
888				#phy-cells = <0>;
889				reg = <0x334>;
890				clocks = <&cru SCLK_OTGPHY1>;
891				clock-names = "phyclk";
892				#clock-cells = <0>;
893			};
894
895			usbphy2: usb-phy@348 {
896				#phy-cells = <0>;
897				reg = <0x348>;
898				clocks = <&cru SCLK_OTGPHY2>;
899				clock-names = "phyclk";
900				#clock-cells = <0>;
901			};
902		};
903	};
904
905	wdt: watchdog@ff800000 {
906		compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
907		reg = <0x0 0xff800000 0x0 0x100>;
908		clocks = <&cru PCLK_WDT>;
909		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
910		status = "disabled";
911	};
912
913	spdif: sound@ff88b0000 {
914		compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
915		reg = <0x0 0xff8b0000 0x0 0x10000>;
916		#sound-dai-cells = <0>;
917		clock-names = "hclk", "mclk";
918		clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
919		dmas = <&dmac_bus_s 3>;
920		dma-names = "tx";
921		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
922		pinctrl-names = "default";
923		pinctrl-0 = <&spdif_tx>;
924		rockchip,grf = <&grf>;
925		status = "disabled";
926	};
927
928	i2s: i2s@ff890000 {
929		compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
930		reg = <0x0 0xff890000 0x0 0x10000>;
931		#sound-dai-cells = <0>;
932		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
933		#address-cells = <1>;
934		#size-cells = <0>;
935		dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
936		dma-names = "tx", "rx";
937		clock-names = "i2s_hclk", "i2s_clk";
938		clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
939		pinctrl-names = "default";
940		pinctrl-0 = <&i2s0_bus>;
941		rockchip,playback-channels = <8>;
942		rockchip,capture-channels = <2>;
943		status = "disabled";
944	};
945
946	crypto: cypto-controller@ff8a0000 {
947		compatible = "rockchip,rk3288-crypto";
948		reg = <0x0 0xff8a0000 0x0 0x4000>;
949		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
950		clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
951			 <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
952		clock-names = "aclk", "hclk", "sclk", "apb_pclk";
953		resets = <&cru SRST_CRYPTO>;
954		reset-names = "crypto-rst";
955		status = "okay";
956	};
957
958	iep_mmu: iommu@ff900800 {
959		compatible = "rockchip,iommu";
960		reg = <0x0 0xff900800 0x0 0x40>;
961		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
962		interrupt-names = "iep_mmu";
963		#iommu-cells = <0>;
964		status = "disabled";
965	};
966
967	isp_mmu: iommu@ff914000 {
968		compatible = "rockchip,iommu";
969		reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
970		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
971		interrupt-names = "isp_mmu";
972		#iommu-cells = <0>;
973		rockchip,disable-mmu-reset;
974		status = "disabled";
975	};
976
977	vopb: vop@ff930000 {
978		compatible = "rockchip,rk3288-vop";
979		reg = <0x0 0xff930000 0x0 0x19c>;
980		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
981		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
982		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
983		power-domains = <&power RK3288_PD_VIO>;
984		resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
985		reset-names = "axi", "ahb", "dclk";
986		iommus = <&vopb_mmu>;
987		status = "disabled";
988
989		vopb_out: port {
990			#address-cells = <1>;
991			#size-cells = <0>;
992
993			vopb_out_hdmi: endpoint@0 {
994				reg = <0>;
995				remote-endpoint = <&hdmi_in_vopb>;
996			};
997
998			vopb_out_edp: endpoint@1 {
999				reg = <1>;
1000				remote-endpoint = <&edp_in_vopb>;
1001			};
1002
1003			vopb_out_mipi: endpoint@2 {
1004				reg = <2>;
1005				remote-endpoint = <&mipi_in_vopb>;
1006			};
1007		};
1008	};
1009
1010	vopb_mmu: iommu@ff930300 {
1011		compatible = "rockchip,iommu";
1012		reg = <0x0 0xff930300 0x0 0x100>;
1013		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1014		interrupt-names = "vopb_mmu";
1015		power-domains = <&power RK3288_PD_VIO>;
1016		#iommu-cells = <0>;
1017		status = "disabled";
1018	};
1019
1020	vopl: vop@ff940000 {
1021		compatible = "rockchip,rk3288-vop";
1022		reg = <0x0 0xff940000 0x0 0x19c>;
1023		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1024		clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
1025		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1026		power-domains = <&power RK3288_PD_VIO>;
1027		resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
1028		reset-names = "axi", "ahb", "dclk";
1029		iommus = <&vopl_mmu>;
1030		status = "disabled";
1031
1032		vopl_out: port {
1033			#address-cells = <1>;
1034			#size-cells = <0>;
1035
1036			vopl_out_hdmi: endpoint@0 {
1037				reg = <0>;
1038				remote-endpoint = <&hdmi_in_vopl>;
1039			};
1040
1041			vopl_out_edp: endpoint@1 {
1042				reg = <1>;
1043				remote-endpoint = <&edp_in_vopl>;
1044			};
1045
1046			vopl_out_mipi: endpoint@2 {
1047				reg = <2>;
1048				remote-endpoint = <&mipi_in_vopl>;
1049			};
1050		};
1051	};
1052
1053	vopl_mmu: iommu@ff940300 {
1054		compatible = "rockchip,iommu";
1055		reg = <0x0 0xff940300 0x0 0x100>;
1056		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1057		interrupt-names = "vopl_mmu";
1058		power-domains = <&power RK3288_PD_VIO>;
1059		#iommu-cells = <0>;
1060		status = "disabled";
1061	};
1062
1063	mipi_dsi: mipi@ff960000 {
1064		compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
1065		reg = <0x0 0xff960000 0x0 0x4000>;
1066		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
1067		clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
1068		clock-names = "ref", "pclk";
1069		power-domains = <&power RK3288_PD_VIO>;
1070		rockchip,grf = <&grf>;
1071		#address-cells = <1>;
1072		#size-cells = <0>;
1073		status = "disabled";
1074
1075		ports {
1076			mipi_in: port {
1077				#address-cells = <1>;
1078				#size-cells = <0>;
1079				mipi_in_vopb: endpoint@0 {
1080					reg = <0>;
1081					remote-endpoint = <&vopb_out_mipi>;
1082				};
1083				mipi_in_vopl: endpoint@1 {
1084					reg = <1>;
1085					remote-endpoint = <&vopl_out_mipi>;
1086				};
1087			};
1088		};
1089	};
1090
1091	edp: dp@ff970000 {
1092		compatible = "rockchip,rk3288-dp";
1093		reg = <0x0 0xff970000 0x0 0x4000>;
1094		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1095		clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>;
1096		clock-names = "dp", "pclk";
1097		phys = <&edp_phy>;
1098		phy-names = "dp";
1099		resets = <&cru SRST_EDP>;
1100		reset-names = "dp";
1101		rockchip,grf = <&grf>;
1102		status = "disabled";
1103
1104		ports {
1105			#address-cells = <1>;
1106			#size-cells = <0>;
1107			edp_in: port@0 {
1108				reg = <0>;
1109				#address-cells = <1>;
1110				#size-cells = <0>;
1111				edp_in_vopb: endpoint@0 {
1112					reg = <0>;
1113					remote-endpoint = <&vopb_out_edp>;
1114				};
1115				edp_in_vopl: endpoint@1 {
1116					reg = <1>;
1117					remote-endpoint = <&vopl_out_edp>;
1118				};
1119			};
1120		};
1121	};
1122
1123	hdmi: hdmi@ff980000 {
1124		compatible = "rockchip,rk3288-dw-hdmi";
1125		reg = <0x0 0xff980000 0x0 0x20000>;
1126		reg-io-width = <4>;
1127		#sound-dai-cells = <0>;
1128		rockchip,grf = <&grf>;
1129		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1130		clocks = <&cru  PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
1131		clock-names = "iahb", "isfr";
1132		power-domains = <&power RK3288_PD_VIO>;
1133		status = "disabled";
1134
1135		ports {
1136			hdmi_in: port {
1137				#address-cells = <1>;
1138				#size-cells = <0>;
1139				hdmi_in_vopb: endpoint@0 {
1140					reg = <0>;
1141					remote-endpoint = <&vopb_out_hdmi>;
1142				};
1143				hdmi_in_vopl: endpoint@1 {
1144					reg = <1>;
1145					remote-endpoint = <&vopl_out_hdmi>;
1146				};
1147			};
1148		};
1149	};
1150
1151	vpu_mmu: iommu@ff9a0800 {
1152		compatible = "rockchip,iommu";
1153		reg = <0x0 0xff9a0800 0x0 0x100>;
1154		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1155		interrupt-names = "vpu_mmu";
1156		#iommu-cells = <0>;
1157		status = "disabled";
1158	};
1159
1160	hevc_mmu: iommu@ff9c0440 {
1161		compatible = "rockchip,iommu";
1162		reg = <0x0 0xff9c0440 0x0 0x40>, <0x0 0xff9c0480 0x0 0x40>;
1163		interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1164		interrupt-names = "hevc_mmu";
1165		#iommu-cells = <0>;
1166		status = "disabled";
1167	};
1168
1169	gpu: gpu@ffa30000 {
1170		compatible = "rockchip,rk3288-mali", "arm,mali-t760";
1171		reg = <0x0 0xffa30000 0x0 0x10000>;
1172		interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
1173			     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
1174			     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1175		interrupt-names = "job", "mmu", "gpu";
1176		clocks = <&cru ACLK_GPU>;
1177		operating-points-v2 = <&gpu_opp_table>;
1178		power-domains = <&power RK3288_PD_GPU>;
1179		status = "disabled";
1180	};
1181
1182	gpu_opp_table: gpu-opp-table {
1183		compatible = "operating-points-v2";
1184
1185		opp-100000000 {
1186			opp-hz = /bits/ 64 <100000000>;
1187			opp-microvolt = <950000>;
1188		};
1189		opp-200000000 {
1190			opp-hz = /bits/ 64 <200000000>;
1191			opp-microvolt = <950000>;
1192		};
1193		opp-300000000 {
1194			opp-hz = /bits/ 64 <300000000>;
1195			opp-microvolt = <1000000>;
1196		};
1197		opp-400000000 {
1198			opp-hz = /bits/ 64 <400000000>;
1199			opp-microvolt = <1100000>;
1200		};
1201		opp-500000000 {
1202			opp-hz = /bits/ 64 <500000000>;
1203			opp-microvolt = <1200000>;
1204		};
1205		opp-600000000 {
1206			opp-hz = /bits/ 64 <600000000>;
1207			opp-microvolt = <1250000>;
1208		};
1209	};
1210
1211	qos_gpu_r: qos@ffaa0000 {
1212		compatible = "syscon";
1213		reg = <0x0 0xffaa0000 0x0 0x20>;
1214	};
1215
1216	qos_gpu_w: qos@ffaa0080 {
1217		compatible = "syscon";
1218		reg = <0x0 0xffaa0080 0x0 0x20>;
1219	};
1220
1221	qos_vio1_vop: qos@ffad0000 {
1222		compatible = "syscon";
1223		reg = <0x0 0xffad0000 0x0 0x20>;
1224	};
1225
1226	qos_vio1_isp_w0: qos@ffad0100 {
1227		compatible = "syscon";
1228		reg = <0x0 0xffad0100 0x0 0x20>;
1229	};
1230
1231	qos_vio1_isp_w1: qos@ffad0180 {
1232		compatible = "syscon";
1233		reg = <0x0 0xffad0180 0x0 0x20>;
1234	};
1235
1236	qos_vio0_vop: qos@ffad0400 {
1237		compatible = "syscon";
1238		reg = <0x0 0xffad0400 0x0 0x20>;
1239	};
1240
1241	qos_vio0_vip: qos@ffad0480 {
1242		compatible = "syscon";
1243		reg = <0x0 0xffad0480 0x0 0x20>;
1244	};
1245
1246	qos_vio0_iep: qos@ffad0500 {
1247		compatible = "syscon";
1248		reg = <0x0 0xffad0500 0x0 0x20>;
1249	};
1250
1251	qos_vio2_rga_r: qos@ffad0800 {
1252		compatible = "syscon";
1253		reg = <0x0 0xffad0800 0x0 0x20>;
1254	};
1255
1256	qos_vio2_rga_w: qos@ffad0880 {
1257		compatible = "syscon";
1258		reg = <0x0 0xffad0880 0x0 0x20>;
1259	};
1260
1261	qos_vio1_isp_r: qos@ffad0900 {
1262		compatible = "syscon";
1263		reg = <0x0 0xffad0900 0x0 0x20>;
1264	};
1265
1266	qos_video: qos@ffae0000 {
1267		compatible = "syscon";
1268		reg = <0x0 0xffae0000 0x0 0x20>;
1269	};
1270
1271	qos_hevc_r: qos@ffaf0000 {
1272		compatible = "syscon";
1273		reg = <0x0 0xffaf0000 0x0 0x20>;
1274	};
1275
1276	qos_hevc_w: qos@ffaf0080 {
1277		compatible = "syscon";
1278		reg = <0x0 0xffaf0080 0x0 0x20>;
1279	};
1280
1281	gic: interrupt-controller@ffc01000 {
1282		compatible = "arm,gic-400";
1283		interrupt-controller;
1284		#interrupt-cells = <3>;
1285		#address-cells = <0>;
1286
1287		reg = <0x0 0xffc01000 0x0 0x1000>,
1288		      <0x0 0xffc02000 0x0 0x2000>,
1289		      <0x0 0xffc04000 0x0 0x2000>,
1290		      <0x0 0xffc06000 0x0 0x2000>;
1291		interrupts = <GIC_PPI 9 0xf04>;
1292	};
1293
1294	efuse: efuse@ffb40000 {
1295		compatible = "rockchip,rk3288-efuse";
1296		reg = <0x0 0xffb40000 0x0 0x20>;
1297		#address-cells = <1>;
1298		#size-cells = <1>;
1299		clocks = <&cru PCLK_EFUSE256>;
1300		clock-names = "pclk_efuse";
1301
1302		cpu_leakage: cpu_leakage@17 {
1303			reg = <0x17 0x1>;
1304		};
1305	};
1306
1307	pinctrl: pinctrl {
1308		compatible = "rockchip,rk3288-pinctrl";
1309		rockchip,grf = <&grf>;
1310		rockchip,pmu = <&pmu>;
1311		#address-cells = <2>;
1312		#size-cells = <2>;
1313		ranges;
1314
1315		gpio0: gpio0@ff750000 {
1316			compatible = "rockchip,gpio-bank";
1317			reg = <0x0 0xff750000 0x0 0x100>;
1318			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1319			clocks = <&cru PCLK_GPIO0>;
1320
1321			gpio-controller;
1322			#gpio-cells = <2>;
1323
1324			interrupt-controller;
1325			#interrupt-cells = <2>;
1326		};
1327
1328		gpio1: gpio1@ff780000 {
1329			compatible = "rockchip,gpio-bank";
1330			reg = <0x0 0xff780000 0x0 0x100>;
1331			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1332			clocks = <&cru PCLK_GPIO1>;
1333
1334			gpio-controller;
1335			#gpio-cells = <2>;
1336
1337			interrupt-controller;
1338			#interrupt-cells = <2>;
1339		};
1340
1341		gpio2: gpio2@ff790000 {
1342			compatible = "rockchip,gpio-bank";
1343			reg = <0x0 0xff790000 0x0 0x100>;
1344			interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1345			clocks = <&cru PCLK_GPIO2>;
1346
1347			gpio-controller;
1348			#gpio-cells = <2>;
1349
1350			interrupt-controller;
1351			#interrupt-cells = <2>;
1352		};
1353
1354		gpio3: gpio3@ff7a0000 {
1355			compatible = "rockchip,gpio-bank";
1356			reg = <0x0 0xff7a0000 0x0 0x100>;
1357			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1358			clocks = <&cru PCLK_GPIO3>;
1359
1360			gpio-controller;
1361			#gpio-cells = <2>;
1362
1363			interrupt-controller;
1364			#interrupt-cells = <2>;
1365		};
1366
1367		gpio4: gpio4@ff7b0000 {
1368			compatible = "rockchip,gpio-bank";
1369			reg = <0x0 0xff7b0000 0x0 0x100>;
1370			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1371			clocks = <&cru PCLK_GPIO4>;
1372
1373			gpio-controller;
1374			#gpio-cells = <2>;
1375
1376			interrupt-controller;
1377			#interrupt-cells = <2>;
1378		};
1379
1380		gpio5: gpio5@ff7c0000 {
1381			compatible = "rockchip,gpio-bank";
1382			reg = <0x0 0xff7c0000 0x0 0x100>;
1383			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1384			clocks = <&cru PCLK_GPIO5>;
1385
1386			gpio-controller;
1387			#gpio-cells = <2>;
1388
1389			interrupt-controller;
1390			#interrupt-cells = <2>;
1391		};
1392
1393		gpio6: gpio6@ff7d0000 {
1394			compatible = "rockchip,gpio-bank";
1395			reg = <0x0 0xff7d0000 0x0 0x100>;
1396			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1397			clocks = <&cru PCLK_GPIO6>;
1398
1399			gpio-controller;
1400			#gpio-cells = <2>;
1401
1402			interrupt-controller;
1403			#interrupt-cells = <2>;
1404		};
1405
1406		gpio7: gpio7@ff7e0000 {
1407			compatible = "rockchip,gpio-bank";
1408			reg = <0x0 0xff7e0000 0x0 0x100>;
1409			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1410			clocks = <&cru PCLK_GPIO7>;
1411
1412			gpio-controller;
1413			#gpio-cells = <2>;
1414
1415			interrupt-controller;
1416			#interrupt-cells = <2>;
1417		};
1418
1419		gpio8: gpio8@ff7f0000 {
1420			compatible = "rockchip,gpio-bank";
1421			reg = <0x0 0xff7f0000 0x0 0x100>;
1422			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1423			clocks = <&cru PCLK_GPIO8>;
1424
1425			gpio-controller;
1426			#gpio-cells = <2>;
1427
1428			interrupt-controller;
1429			#interrupt-cells = <2>;
1430		};
1431
1432		hdmi {
1433			hdmi_ddc: hdmi-ddc {
1434				rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1435						<7 20 RK_FUNC_2 &pcfg_pull_none>;
1436			};
1437		};
1438
1439		pcfg_pull_up: pcfg-pull-up {
1440			bias-pull-up;
1441		};
1442
1443		pcfg_pull_down: pcfg-pull-down {
1444			bias-pull-down;
1445		};
1446
1447		pcfg_pull_none: pcfg-pull-none {
1448			bias-disable;
1449		};
1450
1451		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1452			bias-disable;
1453			drive-strength = <12>;
1454		};
1455
1456		sleep {
1457			global_pwroff: global-pwroff {
1458				rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1459			};
1460
1461			ddrio_pwroff: ddrio-pwroff {
1462				rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1463			};
1464
1465			ddr0_retention: ddr0-retention {
1466				rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1467			};
1468
1469			ddr1_retention: ddr1-retention {
1470				rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1471			};
1472		};
1473
1474		edp {
1475			edp_hpd: edp-hpd {
1476				rockchip,pins = <7 11 RK_FUNC_2 &pcfg_pull_down>;
1477			};
1478		};
1479
1480		i2c0 {
1481			i2c0_xfer: i2c0-xfer {
1482				rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1483						<0 16 RK_FUNC_1 &pcfg_pull_none>;
1484			};
1485		};
1486
1487		i2c1 {
1488			i2c1_xfer: i2c1-xfer {
1489				rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1490						<8 5 RK_FUNC_1 &pcfg_pull_none>;
1491			};
1492		};
1493
1494		i2c2 {
1495			i2c2_xfer: i2c2-xfer {
1496				rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1497						<6 10 RK_FUNC_1 &pcfg_pull_none>;
1498			};
1499		};
1500
1501		i2c3 {
1502			i2c3_xfer: i2c3-xfer {
1503				rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1504						<2 17 RK_FUNC_1 &pcfg_pull_none>;
1505			};
1506		};
1507
1508		i2c4 {
1509			i2c4_xfer: i2c4-xfer {
1510				rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1511						<7 18 RK_FUNC_1 &pcfg_pull_none>;
1512			};
1513		};
1514
1515		i2c5 {
1516			i2c5_xfer: i2c5-xfer {
1517				rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1518						<7 20 RK_FUNC_1 &pcfg_pull_none>;
1519			};
1520		};
1521
1522		i2s0 {
1523			i2s0_bus: i2s0-bus {
1524				rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1525						<6 1 RK_FUNC_1 &pcfg_pull_none>,
1526						<6 2 RK_FUNC_1 &pcfg_pull_none>,
1527						<6 3 RK_FUNC_1 &pcfg_pull_none>,
1528						<6 4 RK_FUNC_1 &pcfg_pull_none>,
1529						<6 8 RK_FUNC_1 &pcfg_pull_none>;
1530			};
1531		};
1532
1533		sdmmc {
1534			sdmmc_clk: sdmmc-clk {
1535				rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1536			};
1537
1538			sdmmc_cmd: sdmmc-cmd {
1539				rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1540			};
1541
1542			sdmmc_cd: sdmmc-cd {
1543				rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1544			};
1545
1546			sdmmc_bus1: sdmmc-bus1 {
1547				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1548			};
1549
1550			sdmmc_bus4: sdmmc-bus4 {
1551				rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1552						<6 17 RK_FUNC_1 &pcfg_pull_up>,
1553						<6 18 RK_FUNC_1 &pcfg_pull_up>,
1554						<6 19 RK_FUNC_1 &pcfg_pull_up>;
1555			};
1556		};
1557
1558		sdio0 {
1559			sdio0_bus1: sdio0-bus1 {
1560				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1561			};
1562
1563			sdio0_bus4: sdio0-bus4 {
1564				rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1565						<4 21 RK_FUNC_1 &pcfg_pull_up>,
1566						<4 22 RK_FUNC_1 &pcfg_pull_up>,
1567						<4 23 RK_FUNC_1 &pcfg_pull_up>;
1568			};
1569
1570			sdio0_cmd: sdio0-cmd {
1571				rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1572			};
1573
1574			sdio0_clk: sdio0-clk {
1575				rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1576			};
1577
1578			sdio0_cd: sdio0-cd {
1579				rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1580			};
1581
1582			sdio0_wp: sdio0-wp {
1583				rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1584			};
1585
1586			sdio0_pwr: sdio0-pwr {
1587				rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1588			};
1589
1590			sdio0_bkpwr: sdio0-bkpwr {
1591				rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1592			};
1593
1594			sdio0_int: sdio0-int {
1595				rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1596			};
1597		};
1598
1599		sdio1 {
1600			sdio1_bus1: sdio1-bus1 {
1601				rockchip,pins = <3 24 4 &pcfg_pull_up>;
1602			};
1603
1604			sdio1_bus4: sdio1-bus4 {
1605				rockchip,pins = <3 24 4 &pcfg_pull_up>,
1606						<3 25 4 &pcfg_pull_up>,
1607						<3 26 4 &pcfg_pull_up>,
1608						<3 27 4 &pcfg_pull_up>;
1609			};
1610
1611			sdio1_cd: sdio1-cd {
1612				rockchip,pins = <3 28 4 &pcfg_pull_up>;
1613			};
1614
1615			sdio1_wp: sdio1-wp {
1616				rockchip,pins = <3 29 4 &pcfg_pull_up>;
1617			};
1618
1619			sdio1_bkpwr: sdio1-bkpwr {
1620				rockchip,pins = <3 30 4 &pcfg_pull_up>;
1621			};
1622
1623			sdio1_int: sdio1-int {
1624				rockchip,pins = <3 31 4 &pcfg_pull_up>;
1625			};
1626
1627			sdio1_cmd: sdio1-cmd {
1628				rockchip,pins = <4 6 4 &pcfg_pull_up>;
1629			};
1630
1631			sdio1_clk: sdio1-clk {
1632				rockchip,pins = <4 7 4 &pcfg_pull_none>;
1633			};
1634
1635			sdio1_pwr: sdio1-pwr {
1636				rockchip,pins = <4 9 4 &pcfg_pull_up>;
1637			};
1638		};
1639
1640		emmc {
1641			emmc_clk: emmc-clk {
1642				rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1643			};
1644
1645			emmc_cmd: emmc-cmd {
1646				rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1647			};
1648
1649			emmc_pwr: emmc-pwr {
1650				rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1651			};
1652
1653			emmc_bus1: emmc-bus1 {
1654				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1655			};
1656
1657			emmc_bus4: emmc-bus4 {
1658				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1659						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1660						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1661						<3 3 RK_FUNC_2 &pcfg_pull_up>;
1662			};
1663
1664			emmc_bus8: emmc-bus8 {
1665				rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1666						<3 1 RK_FUNC_2 &pcfg_pull_up>,
1667						<3 2 RK_FUNC_2 &pcfg_pull_up>,
1668						<3 3 RK_FUNC_2 &pcfg_pull_up>,
1669						<3 4 RK_FUNC_2 &pcfg_pull_up>,
1670						<3 5 RK_FUNC_2 &pcfg_pull_up>,
1671						<3 6 RK_FUNC_2 &pcfg_pull_up>,
1672						<3 7 RK_FUNC_2 &pcfg_pull_up>;
1673			};
1674		};
1675
1676		spi0 {
1677			spi0_clk: spi0-clk {
1678				rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1679			};
1680			spi0_cs0: spi0-cs0 {
1681				rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1682			};
1683			spi0_tx: spi0-tx {
1684				rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1685			};
1686			spi0_rx: spi0-rx {
1687				rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1688			};
1689			spi0_cs1: spi0-cs1 {
1690				rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1691			};
1692		};
1693		spi1 {
1694			spi1_clk: spi1-clk {
1695				rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1696			};
1697			spi1_cs0: spi1-cs0 {
1698				rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1699			};
1700			spi1_rx: spi1-rx {
1701				rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1702			};
1703			spi1_tx: spi1-tx {
1704				rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1705			};
1706		};
1707
1708		spi2 {
1709			spi2_cs1: spi2-cs1 {
1710				rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1711			};
1712			spi2_clk: spi2-clk {
1713				rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1714			};
1715			spi2_cs0: spi2-cs0 {
1716				rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1717			};
1718			spi2_rx: spi2-rx {
1719				rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1720			};
1721			spi2_tx: spi2-tx {
1722				rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1723			};
1724		};
1725
1726		uart0 {
1727			uart0_xfer: uart0-xfer {
1728				rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1729						<4 17 RK_FUNC_1 &pcfg_pull_none>;
1730			};
1731
1732			uart0_cts: uart0-cts {
1733				rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
1734			};
1735
1736			uart0_rts: uart0-rts {
1737				rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1738			};
1739		};
1740
1741		uart1 {
1742			uart1_xfer: uart1-xfer {
1743				rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1744						<5 9 RK_FUNC_1 &pcfg_pull_none>;
1745			};
1746
1747			uart1_cts: uart1-cts {
1748				rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
1749			};
1750
1751			uart1_rts: uart1-rts {
1752				rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1753			};
1754		};
1755
1756		uart2 {
1757			uart2_xfer: uart2-xfer {
1758				rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1759						<7 23 RK_FUNC_1 &pcfg_pull_none>;
1760			};
1761			/* no rts / cts for uart2 */
1762		};
1763
1764		uart3 {
1765			uart3_xfer: uart3-xfer {
1766				rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1767						<7 8 RK_FUNC_1 &pcfg_pull_none>;
1768			};
1769
1770			uart3_cts: uart3-cts {
1771				rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
1772			};
1773
1774			uart3_rts: uart3-rts {
1775				rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1776			};
1777		};
1778
1779		uart4 {
1780			uart4_xfer: uart4-xfer {
1781				rockchip,pins = <5 12 3 &pcfg_pull_up>,
1782						<5 13 3 &pcfg_pull_none>;
1783			};
1784
1785			uart4_cts: uart4-cts {
1786				rockchip,pins = <5 14 3 &pcfg_pull_up>;
1787			};
1788
1789			uart4_rts: uart4-rts {
1790				rockchip,pins = <5 15 3 &pcfg_pull_none>;
1791			};
1792		};
1793
1794		tsadc {
1795			otp_gpio: otp-gpio {
1796				rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
1797			};
1798
1799			otp_out: otp-out {
1800				rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1801			};
1802		};
1803
1804		pwm0 {
1805			pwm0_pin: pwm0-pin {
1806				rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1807			};
1808		};
1809
1810		pwm1 {
1811			pwm1_pin: pwm1-pin {
1812				rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1813			};
1814		};
1815
1816		pwm2 {
1817			pwm2_pin: pwm2-pin {
1818				rockchip,pins = <7 22 3 &pcfg_pull_none>;
1819			};
1820		};
1821
1822		pwm3 {
1823			pwm3_pin: pwm3-pin {
1824				rockchip,pins = <7 23 3 &pcfg_pull_none>;
1825			};
1826		};
1827
1828		gmac {
1829			rgmii_pins: rgmii-pins {
1830				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1831						<3 31 3 &pcfg_pull_none>,
1832						<3 26 3 &pcfg_pull_none>,
1833						<3 27 3 &pcfg_pull_none>,
1834						<3 28 3 &pcfg_pull_none_12ma>,
1835						<3 29 3 &pcfg_pull_none_12ma>,
1836						<3 24 3 &pcfg_pull_none_12ma>,
1837						<3 25 3 &pcfg_pull_none_12ma>,
1838						<4 0 3 &pcfg_pull_none>,
1839						<4 5 3 &pcfg_pull_none>,
1840						<4 6 3 &pcfg_pull_none>,
1841						<4 9 3 &pcfg_pull_none_12ma>,
1842						<4 4 3 &pcfg_pull_none_12ma>,
1843						<4 1 3 &pcfg_pull_none>,
1844						<4 3 3 &pcfg_pull_none>;
1845			};
1846
1847			rmii_pins: rmii-pins {
1848				rockchip,pins = <3 30 3 &pcfg_pull_none>,
1849						<3 31 3 &pcfg_pull_none>,
1850						<3 28 3 &pcfg_pull_none>,
1851						<3 29 3 &pcfg_pull_none>,
1852						<4 0 3 &pcfg_pull_none>,
1853						<4 5 3 &pcfg_pull_none>,
1854						<4 4 3 &pcfg_pull_none>,
1855						<4 1 3 &pcfg_pull_none>,
1856						<4 2 3 &pcfg_pull_none>,
1857						<4 3 3 &pcfg_pull_none>;
1858			};
1859		};
1860
1861		spdif {
1862			spdif_tx: spdif-tx {
1863				rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1864			};
1865		};
1866	};
1867};
1868