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