blob: 4e7c6b7392afdb70974078c80154b10a052fb024 [file] [log] [blame]
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001/*
Heiko Stuebnerb1772502015-03-06 19:04:02 +01002 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02006 *
Heiko Stuebnerb1772502015-03-06 19:04:02 +01007 * a) This file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This file is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 * b) Permission is hereby granted, free of charge, to any person
20 * obtaining a copy of this software and associated documentation
21 * files (the "Software"), to deal in the Software without
22 * restriction, including without limitation the rights to use,
23 * copy, modify, merge, publish, distribute, sublicense, and/or
24 * sell copies of the Software, and to permit persons to whom the
25 * Software is furnished to do so, subject to the following
26 * conditions:
27 *
28 * The above copyright notice and this permission notice shall be
29 * included in all copies or substantial portions of the Software.
30 *
31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 * OTHER DEALINGS IN THE SOFTWARE.
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020039 */
40
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/interrupt-controller/irq.h>
43#include <dt-bindings/interrupt-controller/arm-gic.h>
44#include <dt-bindings/pinctrl/rockchip.h>
45#include <dt-bindings/clock/rk3288-cru.h>
Caesar Wangb67d6bc2014-11-24 12:59:01 +080046#include <dt-bindings/thermal/thermal.h>
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020047#include "skeleton.dtsi"
48
49/ {
50 compatible = "rockchip,rk3288";
51
52 interrupt-parent = <&gic>;
53
54 aliases {
55 i2c0 = &i2c0;
56 i2c1 = &i2c1;
57 i2c2 = &i2c2;
58 i2c3 = &i2c3;
59 i2c4 = &i2c4;
60 i2c5 = &i2c5;
Doug Andersond7f9a382014-09-03 16:05:23 -070061 mshc0 = &emmc;
62 mshc1 = &sdmmc;
63 mshc2 = &sdio0;
64 mshc3 = &sdio1;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020065 serial0 = &uart0;
66 serial1 = &uart1;
67 serial2 = &uart2;
68 serial3 = &uart3;
69 serial4 = &uart4;
huang lin1f531702014-09-05 09:53:11 -070070 spi0 = &spi0;
71 spi1 = &spi1;
72 spi2 = &spi2;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020073 };
74
Sonny Raof1840782015-04-07 10:52:39 -070075 arm-pmu {
76 compatible = "arm,cortex-a12-pmu";
77 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
78 <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
79 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
80 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner4863dcd2015-07-15 23:03:09 +020081 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
Sonny Raof1840782015-04-07 10:52:39 -070082 };
83
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020084 cpus {
85 #address-cells = <1>;
86 #size-cells = <0>;
Olof Johansson08bcc752014-12-04 23:33:38 -080087 enable-method = "rockchip,rk3066-smp";
Kever Yangfbdbc732014-10-15 10:23:02 -070088 rockchip,pmu = <&pmu>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020089
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +020090 cpu0: cpu@500 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020091 device_type = "cpu";
92 compatible = "arm,cortex-a12";
93 reg = <0x500>;
Kever Yang044542a2014-10-15 10:23:05 -070094 resets = <&cru SRST_CORE0>;
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +020095 operating-points = <
96 /* KHz uV */
97 1608000 1350000
98 1512000 1300000
99 1416000 1200000
100 1200000 1100000
101 1008000 1050000
102 816000 1000000
103 696000 950000
104 600000 900000
105 408000 900000
106 312000 900000
107 216000 900000
108 126000 900000
109 >;
Caesar Wangb67d6bc2014-11-24 12:59:01 +0800110 #cooling-cells = <2>; /* min followed by max */
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +0200111 clock-latency = <40000>;
112 clocks = <&cru ARMCLK>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200113 };
Heiko Stuebner4863dcd2015-07-15 23:03:09 +0200114 cpu1: cpu@501 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200115 device_type = "cpu";
116 compatible = "arm,cortex-a12";
117 reg = <0x501>;
Kever Yang044542a2014-10-15 10:23:05 -0700118 resets = <&cru SRST_CORE1>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200119 };
Heiko Stuebner4863dcd2015-07-15 23:03:09 +0200120 cpu2: cpu@502 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200121 device_type = "cpu";
122 compatible = "arm,cortex-a12";
123 reg = <0x502>;
Kever Yang044542a2014-10-15 10:23:05 -0700124 resets = <&cru SRST_CORE2>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200125 };
Heiko Stuebner4863dcd2015-07-15 23:03:09 +0200126 cpu3: cpu@503 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200127 device_type = "cpu";
128 compatible = "arm,cortex-a12";
129 reg = <0x503>;
Kever Yang044542a2014-10-15 10:23:05 -0700130 resets = <&cru SRST_CORE3>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200131 };
132 };
133
Heiko Stübner982891c2014-08-14 23:01:25 +0200134 amba {
135 compatible = "arm,amba-bus";
136 #address-cells = <1>;
137 #size-cells = <1>;
138 ranges;
139
140 dmac_peri: dma-controller@ff250000 {
141 compatible = "arm,pl330", "arm,primecell";
142 reg = <0xff250000 0x4000>;
143 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
144 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
145 #dma-cells = <1>;
146 clocks = <&cru ACLK_DMAC2>;
147 clock-names = "apb_pclk";
148 };
149
150 dmac_bus_ns: dma-controller@ff600000 {
151 compatible = "arm,pl330", "arm,primecell";
152 reg = <0xff600000 0x4000>;
153 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
154 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
155 #dma-cells = <1>;
156 clocks = <&cru ACLK_DMAC1>;
157 clock-names = "apb_pclk";
158 status = "disabled";
159 };
160
161 dmac_bus_s: dma-controller@ffb20000 {
162 compatible = "arm,pl330", "arm,primecell";
163 reg = <0xffb20000 0x4000>;
164 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
165 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
166 #dma-cells = <1>;
167 clocks = <&cru ACLK_DMAC1>;
168 clock-names = "apb_pclk";
169 };
170 };
171
Heiko Stuebnerb21bcfc2015-08-01 13:00:49 +0200172 reserved-memory {
173 #address-cells = <1>;
174 #size-cells = <1>;
175 ranges;
176
177 /*
178 * The rk3288 cannot use the memory area above 0xfe000000
179 * for dma operations for some reason. While there is
180 * probably a better solution available somewhere, we
181 * haven't found it yet and while devices with 2GB of ram
182 * are not affected, this issue prevents 4GB from booting.
183 * So to make these devices at least bootable, block
184 * this area for the time being until the real solution
185 * is found.
186 */
187 dma-unusable@fe000000 {
188 reg = <0xfe000000 0x1000000>;
189 };
190 };
191
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200192 xin24m: oscillator {
193 compatible = "fixed-clock";
194 clock-frequency = <24000000>;
195 clock-output-names = "xin24m";
196 #clock-cells = <0>;
197 };
198
199 timer {
200 compatible = "arm,armv7-timer";
Sonny Raoe2405a52014-11-25 10:54:00 -0800201 arm,cpu-registers-not-fw-configured;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200202 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
203 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
204 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
205 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
206 clock-frequency = <24000000>;
207 };
208
Daniel Lezcanoe48cc182015-01-25 10:42:59 +0100209 timer: timer@ff810000 {
210 compatible = "rockchip,rk3288-timer";
211 reg = <0xff810000 0x20>;
212 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&xin24m>, <&cru PCLK_TIMER>;
214 clock-names = "timer", "pclk";
215 };
216
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800217 display-subsystem {
218 compatible = "rockchip,display-subsystem";
219 ports = <&vopl_out>, <&vopb_out>;
220 };
221
Doug Anderson85095bf2014-08-12 16:21:13 -0700222 sdmmc: dwmmc@ff0c0000 {
223 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800224 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200225 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
226 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
227 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Doug Anderson85095bf2014-08-12 16:21:13 -0700228 fifo-depth = <0x100>;
229 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
230 reg = <0xff0c0000 0x4000>;
231 status = "disabled";
232 };
233
Addy Kef1a07232014-08-19 18:21:08 +0800234 sdio0: dwmmc@ff0d0000 {
235 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800236 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200237 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
238 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
239 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Addy Kef1a07232014-08-19 18:21:08 +0800240 fifo-depth = <0x100>;
241 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
242 reg = <0xff0d0000 0x4000>;
243 status = "disabled";
244 };
245
246 sdio1: dwmmc@ff0e0000 {
247 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800248 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200249 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
250 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
251 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Addy Kef1a07232014-08-19 18:21:08 +0800252 fifo-depth = <0x100>;
253 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
254 reg = <0xff0e0000 0x4000>;
255 status = "disabled";
256 };
257
Doug Anderson85095bf2014-08-12 16:21:13 -0700258 emmc: dwmmc@ff0f0000 {
259 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800260 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200261 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
262 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
263 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Doug Anderson85095bf2014-08-12 16:21:13 -0700264 fifo-depth = <0x100>;
265 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
266 reg = <0xff0f0000 0x4000>;
267 status = "disabled";
268 };
269
Heiko Stübnerf23a6172014-08-20 21:09:24 +0200270 saradc: saradc@ff100000 {
271 compatible = "rockchip,saradc";
272 reg = <0xff100000 0x100>;
273 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
274 #io-channel-cells = <1>;
275 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
276 clock-names = "saradc", "apb_pclk";
277 status = "disabled";
278 };
279
huang lin1f531702014-09-05 09:53:11 -0700280 spi0: spi@ff110000 {
281 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
282 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
283 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700284 dmas = <&dmac_peri 11>, <&dmac_peri 12>;
285 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700286 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
287 pinctrl-names = "default";
288 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
289 reg = <0xff110000 0x1000>;
290 #address-cells = <1>;
291 #size-cells = <0>;
292 status = "disabled";
293 };
294
295 spi1: spi@ff120000 {
296 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
297 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
298 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700299 dmas = <&dmac_peri 13>, <&dmac_peri 14>;
300 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700301 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
302 pinctrl-names = "default";
303 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
304 reg = <0xff120000 0x1000>;
305 #address-cells = <1>;
306 #size-cells = <0>;
307 status = "disabled";
308 };
309
310 spi2: spi@ff130000 {
311 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
312 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
313 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700314 dmas = <&dmac_peri 15>, <&dmac_peri 16>;
315 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700316 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
317 pinctrl-names = "default";
318 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
319 reg = <0xff130000 0x1000>;
320 #address-cells = <1>;
321 #size-cells = <0>;
322 status = "disabled";
323 };
324
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200325 i2c1: i2c@ff140000 {
326 compatible = "rockchip,rk3288-i2c";
327 reg = <0xff140000 0x1000>;
328 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
329 #address-cells = <1>;
330 #size-cells = <0>;
331 clock-names = "i2c";
332 clocks = <&cru PCLK_I2C1>;
333 pinctrl-names = "default";
334 pinctrl-0 = <&i2c1_xfer>;
335 status = "disabled";
336 };
337
338 i2c3: i2c@ff150000 {
339 compatible = "rockchip,rk3288-i2c";
340 reg = <0xff150000 0x1000>;
341 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
342 #address-cells = <1>;
343 #size-cells = <0>;
344 clock-names = "i2c";
345 clocks = <&cru PCLK_I2C3>;
346 pinctrl-names = "default";
347 pinctrl-0 = <&i2c3_xfer>;
348 status = "disabled";
349 };
350
351 i2c4: i2c@ff160000 {
352 compatible = "rockchip,rk3288-i2c";
353 reg = <0xff160000 0x1000>;
354 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
355 #address-cells = <1>;
356 #size-cells = <0>;
357 clock-names = "i2c";
358 clocks = <&cru PCLK_I2C4>;
359 pinctrl-names = "default";
360 pinctrl-0 = <&i2c4_xfer>;
361 status = "disabled";
362 };
363
364 i2c5: i2c@ff170000 {
365 compatible = "rockchip,rk3288-i2c";
366 reg = <0xff170000 0x1000>;
367 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
368 #address-cells = <1>;
369 #size-cells = <0>;
370 clock-names = "i2c";
371 clocks = <&cru PCLK_I2C5>;
372 pinctrl-names = "default";
373 pinctrl-0 = <&i2c5_xfer>;
374 status = "disabled";
375 };
376
377 uart0: serial@ff180000 {
378 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
379 reg = <0xff180000 0x100>;
380 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
381 reg-shift = <2>;
382 reg-io-width = <4>;
383 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
384 clock-names = "baudclk", "apb_pclk";
385 pinctrl-names = "default";
386 pinctrl-0 = <&uart0_xfer>;
387 status = "disabled";
388 };
389
390 uart1: serial@ff190000 {
391 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
392 reg = <0xff190000 0x100>;
393 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
394 reg-shift = <2>;
395 reg-io-width = <4>;
396 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
397 clock-names = "baudclk", "apb_pclk";
398 pinctrl-names = "default";
399 pinctrl-0 = <&uart1_xfer>;
400 status = "disabled";
401 };
402
403 uart2: serial@ff690000 {
404 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
405 reg = <0xff690000 0x100>;
406 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
407 reg-shift = <2>;
408 reg-io-width = <4>;
409 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
410 clock-names = "baudclk", "apb_pclk";
411 pinctrl-names = "default";
412 pinctrl-0 = <&uart2_xfer>;
413 status = "disabled";
414 };
415
416 uart3: serial@ff1b0000 {
417 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
418 reg = <0xff1b0000 0x100>;
419 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
420 reg-shift = <2>;
421 reg-io-width = <4>;
422 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
423 clock-names = "baudclk", "apb_pclk";
424 pinctrl-names = "default";
425 pinctrl-0 = <&uart3_xfer>;
426 status = "disabled";
427 };
428
429 uart4: serial@ff1c0000 {
430 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
431 reg = <0xff1c0000 0x100>;
432 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
433 reg-shift = <2>;
434 reg-io-width = <4>;
435 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
436 clock-names = "baudclk", "apb_pclk";
437 pinctrl-names = "default";
438 pinctrl-0 = <&uart4_xfer>;
439 status = "disabled";
440 };
441
Caesar Wangb67d6bc2014-11-24 12:59:01 +0800442 thermal-zones {
443 #include "rk3288-thermal.dtsi"
444 };
445
446 tsadc: tsadc@ff280000 {
447 compatible = "rockchip,rk3288-tsadc";
448 reg = <0xff280000 0x100>;
449 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
450 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
451 clock-names = "tsadc", "apb_pclk";
452 resets = <&cru SRST_TSADC>;
453 reset-names = "tsadc-apb";
454 pinctrl-names = "default";
455 pinctrl-0 = <&otp_out>;
456 #thermal-sensor-cells = <1>;
457 rockchip,hw-tshut-temp = <95000>;
458 status = "disabled";
459 };
460
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800461 gmac: ethernet@ff290000 {
462 compatible = "rockchip,rk3288-gmac";
463 reg = <0xff290000 0x10000>;
464 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
465 interrupt-names = "macirq";
466 rockchip,grf = <&grf>;
467 clocks = <&cru SCLK_MAC>,
468 <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
469 <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
470 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
471 clock-names = "stmmaceth",
472 "mac_clk_rx", "mac_clk_tx",
473 "clk_mac_ref", "clk_mac_refout",
474 "aclk_mac", "pclk_mac";
Romain Periere6b54642015-06-20 12:27:16 +0000475 resets = <&cru SRST_MAC>;
476 reset-names = "stmmaceth";
Alexandru M Stan54b0bc62015-03-13 17:55:32 -0700477 status = "disabled";
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800478 };
479
Doug Andersonc9c32c52014-08-07 17:44:19 +0200480 usb_host0_ehci: usb@ff500000 {
481 compatible = "generic-ehci";
482 reg = <0xff500000 0x100>;
483 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
484 clocks = <&cru HCLK_USBHOST0>;
485 clock-names = "usbhost";
Yunzhi Lif6db7022014-12-12 23:12:21 +0800486 phys = <&usbphy1>;
487 phy-names = "usb";
Doug Andersonc9c32c52014-08-07 17:44:19 +0200488 status = "disabled";
489 };
490
491 /* NOTE: ohci@ff520000 doesn't actually work on hardware */
492
Kever Yang12dd3652014-08-08 11:55:58 +0800493 usb_host1: usb@ff540000 {
494 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
495 "snps,dwc2";
496 reg = <0xff540000 0x40000>;
497 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
498 clocks = <&cru HCLK_USBHOST1>;
499 clock-names = "otg";
Yunzhi Licabd2ea2015-04-26 17:41:38 +0800500 dr_mode = "host";
Yunzhi Lif6db7022014-12-12 23:12:21 +0800501 phys = <&usbphy2>;
502 phy-names = "usb2-phy";
Kever Yang12dd3652014-08-08 11:55:58 +0800503 status = "disabled";
504 };
505
506 usb_otg: usb@ff580000 {
507 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
508 "snps,dwc2";
509 reg = <0xff580000 0x40000>;
510 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
511 clocks = <&cru HCLK_OTG0>;
512 clock-names = "otg";
Yunzhi Licabd2ea2015-04-26 17:41:38 +0800513 dr_mode = "otg";
514 g-np-tx-fifo-size = <16>;
515 g-rx-fifo-size = <275>;
516 g-tx-fifo-size = <256 128 128 64 64 32>;
517 g-use-dma;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800518 phys = <&usbphy0>;
519 phy-names = "usb2-phy";
Kever Yang12dd3652014-08-08 11:55:58 +0800520 status = "disabled";
521 };
522
Doug Andersonc9c32c52014-08-07 17:44:19 +0200523 usb_hsic: usb@ff5c0000 {
524 compatible = "generic-ehci";
525 reg = <0xff5c0000 0x100>;
526 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
527 clocks = <&cru HCLK_HSIC>;
528 clock-names = "usbhost";
529 status = "disabled";
530 };
531
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200532 i2c0: i2c@ff650000 {
533 compatible = "rockchip,rk3288-i2c";
534 reg = <0xff650000 0x1000>;
535 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
536 #address-cells = <1>;
537 #size-cells = <0>;
538 clock-names = "i2c";
539 clocks = <&cru PCLK_I2C0>;
540 pinctrl-names = "default";
541 pinctrl-0 = <&i2c0_xfer>;
542 status = "disabled";
543 };
544
545 i2c2: i2c@ff660000 {
546 compatible = "rockchip,rk3288-i2c";
547 reg = <0xff660000 0x1000>;
548 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
549 #address-cells = <1>;
550 #size-cells = <0>;
551 clock-names = "i2c";
552 clocks = <&cru PCLK_I2C2>;
553 pinctrl-names = "default";
554 pinctrl-0 = <&i2c2_xfer>;
555 status = "disabled";
556 };
557
Doug Andersondf542df2014-08-25 15:59:26 -0700558 pwm0: pwm@ff680000 {
559 compatible = "rockchip,rk3288-pwm";
560 reg = <0xff680000 0x10>;
561 #pwm-cells = <3>;
562 pinctrl-names = "default";
563 pinctrl-0 = <&pwm0_pin>;
564 clocks = <&cru PCLK_PWM>;
565 clock-names = "pwm";
566 status = "disabled";
567 };
568
569 pwm1: pwm@ff680010 {
570 compatible = "rockchip,rk3288-pwm";
571 reg = <0xff680010 0x10>;
572 #pwm-cells = <3>;
573 pinctrl-names = "default";
574 pinctrl-0 = <&pwm1_pin>;
575 clocks = <&cru PCLK_PWM>;
576 clock-names = "pwm";
577 status = "disabled";
578 };
579
580 pwm2: pwm@ff680020 {
581 compatible = "rockchip,rk3288-pwm";
582 reg = <0xff680020 0x10>;
583 #pwm-cells = <3>;
584 pinctrl-names = "default";
585 pinctrl-0 = <&pwm2_pin>;
586 clocks = <&cru PCLK_PWM>;
587 clock-names = "pwm";
588 status = "disabled";
589 };
590
591 pwm3: pwm@ff680030 {
592 compatible = "rockchip,rk3288-pwm";
593 reg = <0xff680030 0x10>;
594 #pwm-cells = <2>;
595 pinctrl-names = "default";
596 pinctrl-0 = <&pwm3_pin>;
597 clocks = <&cru PCLK_PWM>;
598 clock-names = "pwm";
599 status = "disabled";
600 };
601
Kever Yang1123d412014-10-15 10:23:04 -0700602 bus_intmem@ff700000 {
603 compatible = "mmio-sram";
604 reg = <0xff700000 0x18000>;
605 #address-cells = <1>;
606 #size-cells = <1>;
607 ranges = <0 0xff700000 0x18000>;
608 smp-sram@0 {
609 compatible = "rockchip,rk3066-smp-sram";
610 reg = <0x00 0x10>;
611 };
612 };
613
Chris Zhongeecfe982014-12-01 16:52:19 +0800614 sram@ff720000 {
615 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
616 reg = <0xff720000 0x1000>;
617 };
618
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200619 pmu: power-management@ff730000 {
620 compatible = "rockchip,rk3288-pmu", "syscon";
621 reg = <0xff730000 0x100>;
622 };
623
624 sgrf: syscon@ff740000 {
625 compatible = "rockchip,rk3288-sgrf", "syscon";
626 reg = <0xff740000 0x1000>;
627 };
628
629 cru: clock-controller@ff760000 {
630 compatible = "rockchip,rk3288-cru";
631 reg = <0xff760000 0x1000>;
632 rockchip,grf = <&grf>;
633 #clock-cells = <1>;
634 #reset-cells = <1>;
Kever Yangcd78d0c2014-10-09 21:50:30 -0700635 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
636 <&cru PLL_NPLL>, <&cru ACLK_CPU>,
637 <&cru HCLK_CPU>, <&cru PCLK_CPU>,
638 <&cru ACLK_PERI>, <&cru HCLK_PERI>,
639 <&cru PCLK_PERI>;
640 assigned-clock-rates = <594000000>, <400000000>,
641 <500000000>, <300000000>,
642 <150000000>, <75000000>,
643 <300000000>, <150000000>,
644 <75000000>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200645 };
646
647 grf: syscon@ff770000 {
648 compatible = "rockchip,rk3288-grf", "syscon";
649 reg = <0xff770000 0x1000>;
650 };
651
652 wdt: watchdog@ff800000 {
653 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
654 reg = <0xff800000 0x100>;
Heiko Stuebner39d05162015-01-20 21:12:16 +0100655 clocks = <&cru PCLK_WDT>;
Heiko Stuebner1a1b6982015-06-19 16:31:14 +0200656 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200657 status = "disabled";
658 };
659
Jianquna0f95e32014-09-12 18:54:55 +0800660 i2s: i2s@ff890000 {
661 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
662 reg = <0xff890000 0x10000>;
663 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
664 #address-cells = <1>;
665 #size-cells = <0>;
666 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
667 dma-names = "tx", "rx";
668 clock-names = "i2s_hclk", "i2s_clk";
669 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
670 pinctrl-names = "default";
671 pinctrl-0 = <&i2s0_bus>;
672 status = "disabled";
673 };
674
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800675 vopb: vop@ff930000 {
676 compatible = "rockchip,rk3288-vop";
677 reg = <0xff930000 0x19c>;
678 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
679 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
680 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
681 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
682 reset-names = "axi", "ahb", "dclk";
683 iommus = <&vopb_mmu>;
684 status = "disabled";
685
686 vopb_out: port {
687 #address-cells = <1>;
688 #size-cells = <0>;
Andy Yand5a1df42014-11-04 13:13:14 +0800689
690 vopb_out_hdmi: endpoint@0 {
691 reg = <0>;
692 remote-endpoint = <&hdmi_in_vopb>;
693 };
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800694 };
695 };
696
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800697 vopb_mmu: iommu@ff930300 {
698 compatible = "rockchip,iommu";
699 reg = <0xff930300 0x100>;
700 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
701 interrupt-names = "vopb_mmu";
702 #iommu-cells = <0>;
703 status = "disabled";
704 };
705
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800706 vopl: vop@ff940000 {
707 compatible = "rockchip,rk3288-vop";
708 reg = <0xff940000 0x19c>;
709 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
710 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
711 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
712 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
713 reset-names = "axi", "ahb", "dclk";
714 iommus = <&vopl_mmu>;
715 status = "disabled";
716
717 vopl_out: port {
718 #address-cells = <1>;
719 #size-cells = <0>;
Andy Yand5a1df42014-11-04 13:13:14 +0800720
721 vopl_out_hdmi: endpoint@0 {
722 reg = <0>;
723 remote-endpoint = <&hdmi_in_vopl>;
724 };
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800725 };
726 };
727
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800728 vopl_mmu: iommu@ff940300 {
729 compatible = "rockchip,iommu";
730 reg = <0xff940300 0x100>;
731 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
732 interrupt-names = "vopl_mmu";
733 #iommu-cells = <0>;
734 status = "disabled";
735 };
736
Andy Yand5a1df42014-11-04 13:13:14 +0800737 hdmi: hdmi@ff980000 {
738 compatible = "rockchip,rk3288-dw-hdmi";
739 reg = <0xff980000 0x20000>;
740 reg-io-width = <4>;
Andy Yand5a1df42014-11-04 13:13:14 +0800741 rockchip,grf = <&grf>;
742 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
743 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
744 clock-names = "iahb", "isfr";
745 status = "disabled";
746
747 ports {
748 hdmi_in: port {
749 #address-cells = <1>;
750 #size-cells = <0>;
751 hdmi_in_vopb: endpoint@0 {
752 reg = <0>;
753 remote-endpoint = <&vopb_out_hdmi>;
754 };
755 hdmi_in_vopl: endpoint@1 {
756 reg = <1>;
757 remote-endpoint = <&vopl_out_hdmi>;
758 };
759 };
760 };
761 };
762
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200763 gic: interrupt-controller@ffc01000 {
764 compatible = "arm,gic-400";
765 interrupt-controller;
766 #interrupt-cells = <3>;
767 #address-cells = <0>;
768
769 reg = <0xffc01000 0x1000>,
770 <0xffc02000 0x1000>,
771 <0xffc04000 0x2000>,
772 <0xffc06000 0x2000>;
773 interrupts = <GIC_PPI 9 0xf04>;
774 };
775
Yunzhi Lif6db7022014-12-12 23:12:21 +0800776 usbphy: phy {
777 compatible = "rockchip,rk3288-usb-phy";
778 rockchip,grf = <&grf>;
779 #address-cells = <1>;
780 #size-cells = <0>;
781 status = "disabled";
782
783 usbphy0: usb-phy0 {
784 #phy-cells = <0>;
785 reg = <0x320>;
786 clocks = <&cru SCLK_OTGPHY0>;
787 clock-names = "phyclk";
788 };
789
790 usbphy1: usb-phy1 {
791 #phy-cells = <0>;
792 reg = <0x334>;
793 clocks = <&cru SCLK_OTGPHY1>;
794 clock-names = "phyclk";
795 };
796
797 usbphy2: usb-phy2 {
798 #phy-cells = <0>;
799 reg = <0x348>;
800 clocks = <&cru SCLK_OTGPHY2>;
801 clock-names = "phyclk";
802 };
803 };
804
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200805 pinctrl: pinctrl {
806 compatible = "rockchip,rk3288-pinctrl";
807 rockchip,grf = <&grf>;
808 rockchip,pmu = <&pmu>;
809 #address-cells = <1>;
810 #size-cells = <1>;
811 ranges;
812
813 gpio0: gpio0@ff750000 {
814 compatible = "rockchip,gpio-bank";
815 reg = <0xff750000 0x100>;
816 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
817 clocks = <&cru PCLK_GPIO0>;
818
819 gpio-controller;
820 #gpio-cells = <2>;
821
822 interrupt-controller;
823 #interrupt-cells = <2>;
824 };
825
826 gpio1: gpio1@ff780000 {
827 compatible = "rockchip,gpio-bank";
828 reg = <0xff780000 0x100>;
829 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
830 clocks = <&cru PCLK_GPIO1>;
831
832 gpio-controller;
833 #gpio-cells = <2>;
834
835 interrupt-controller;
836 #interrupt-cells = <2>;
837 };
838
839 gpio2: gpio2@ff790000 {
840 compatible = "rockchip,gpio-bank";
841 reg = <0xff790000 0x100>;
842 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
843 clocks = <&cru PCLK_GPIO2>;
844
845 gpio-controller;
846 #gpio-cells = <2>;
847
848 interrupt-controller;
849 #interrupt-cells = <2>;
850 };
851
852 gpio3: gpio3@ff7a0000 {
853 compatible = "rockchip,gpio-bank";
854 reg = <0xff7a0000 0x100>;
855 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
856 clocks = <&cru PCLK_GPIO3>;
857
858 gpio-controller;
859 #gpio-cells = <2>;
860
861 interrupt-controller;
862 #interrupt-cells = <2>;
863 };
864
865 gpio4: gpio4@ff7b0000 {
866 compatible = "rockchip,gpio-bank";
867 reg = <0xff7b0000 0x100>;
868 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
869 clocks = <&cru PCLK_GPIO4>;
870
871 gpio-controller;
872 #gpio-cells = <2>;
873
874 interrupt-controller;
875 #interrupt-cells = <2>;
876 };
877
878 gpio5: gpio5@ff7c0000 {
879 compatible = "rockchip,gpio-bank";
880 reg = <0xff7c0000 0x100>;
881 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
882 clocks = <&cru PCLK_GPIO5>;
883
884 gpio-controller;
885 #gpio-cells = <2>;
886
887 interrupt-controller;
888 #interrupt-cells = <2>;
889 };
890
891 gpio6: gpio6@ff7d0000 {
892 compatible = "rockchip,gpio-bank";
893 reg = <0xff7d0000 0x100>;
894 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
895 clocks = <&cru PCLK_GPIO6>;
896
897 gpio-controller;
898 #gpio-cells = <2>;
899
900 interrupt-controller;
901 #interrupt-cells = <2>;
902 };
903
904 gpio7: gpio7@ff7e0000 {
905 compatible = "rockchip,gpio-bank";
906 reg = <0xff7e0000 0x100>;
907 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
908 clocks = <&cru PCLK_GPIO7>;
909
910 gpio-controller;
911 #gpio-cells = <2>;
912
913 interrupt-controller;
914 #interrupt-cells = <2>;
915 };
916
917 gpio8: gpio8@ff7f0000 {
918 compatible = "rockchip,gpio-bank";
919 reg = <0xff7f0000 0x100>;
920 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
921 clocks = <&cru PCLK_GPIO8>;
922
923 gpio-controller;
924 #gpio-cells = <2>;
925
926 interrupt-controller;
927 #interrupt-cells = <2>;
928 };
929
930 pcfg_pull_up: pcfg-pull-up {
931 bias-pull-up;
932 };
933
934 pcfg_pull_down: pcfg-pull-down {
935 bias-pull-down;
936 };
937
938 pcfg_pull_none: pcfg-pull-none {
939 bias-disable;
940 };
941
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800942 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
943 bias-disable;
944 drive-strength = <12>;
945 };
946
Chris Zhongeecfe982014-12-01 16:52:19 +0800947 sleep {
948 global_pwroff: global-pwroff {
949 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
950 };
951
952 ddrio_pwroff: ddrio-pwroff {
953 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
954 };
955
956 ddr0_retention: ddr0-retention {
957 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
958 };
959
960 ddr1_retention: ddr1-retention {
961 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
962 };
963 };
964
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200965 i2c0 {
966 i2c0_xfer: i2c0-xfer {
967 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
968 <0 16 RK_FUNC_1 &pcfg_pull_none>;
969 };
970 };
971
972 i2c1 {
973 i2c1_xfer: i2c1-xfer {
974 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
975 <8 5 RK_FUNC_1 &pcfg_pull_none>;
976 };
977 };
978
979 i2c2 {
980 i2c2_xfer: i2c2-xfer {
981 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
982 <6 10 RK_FUNC_1 &pcfg_pull_none>;
983 };
984 };
985
986 i2c3 {
987 i2c3_xfer: i2c3-xfer {
988 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
989 <2 17 RK_FUNC_1 &pcfg_pull_none>;
990 };
991 };
992
993 i2c4 {
994 i2c4_xfer: i2c4-xfer {
995 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
996 <7 18 RK_FUNC_1 &pcfg_pull_none>;
997 };
998 };
999
1000 i2c5 {
1001 i2c5_xfer: i2c5-xfer {
1002 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1003 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1004 };
1005 };
1006
Jianquna0f95e32014-09-12 18:54:55 +08001007 i2s0 {
1008 i2s0_bus: i2s0-bus {
1009 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1010 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1011 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1012 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1013 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1014 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1015 };
1016 };
1017
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001018 sdmmc {
1019 sdmmc_clk: sdmmc-clk {
1020 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1021 };
1022
1023 sdmmc_cmd: sdmmc-cmd {
1024 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1025 };
1026
1027 sdmmc_cd: sdmcc-cd {
1028 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1029 };
1030
1031 sdmmc_bus1: sdmmc-bus1 {
1032 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1033 };
1034
1035 sdmmc_bus4: sdmmc-bus4 {
1036 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1037 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1038 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1039 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1040 };
1041 };
1042
Addy Kef1a07232014-08-19 18:21:08 +08001043 sdio0 {
1044 sdio0_bus1: sdio0-bus1 {
1045 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1046 };
1047
1048 sdio0_bus4: sdio0-bus4 {
1049 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1050 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1051 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1052 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1053 };
1054
1055 sdio0_cmd: sdio0-cmd {
1056 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1057 };
1058
1059 sdio0_clk: sdio0-clk {
1060 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1061 };
1062
1063 sdio0_cd: sdio0-cd {
1064 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1065 };
1066
1067 sdio0_wp: sdio0-wp {
1068 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1069 };
1070
1071 sdio0_pwr: sdio0-pwr {
1072 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1073 };
1074
1075 sdio0_bkpwr: sdio0-bkpwr {
1076 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1077 };
1078
1079 sdio0_int: sdio0-int {
1080 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1081 };
1082 };
1083
1084 sdio1 {
1085 sdio1_bus1: sdio1-bus1 {
1086 rockchip,pins = <3 24 4 &pcfg_pull_up>;
1087 };
1088
1089 sdio1_bus4: sdio1-bus4 {
1090 rockchip,pins = <3 24 4 &pcfg_pull_up>,
1091 <3 25 4 &pcfg_pull_up>,
1092 <3 26 4 &pcfg_pull_up>,
1093 <3 27 4 &pcfg_pull_up>;
1094 };
1095
1096 sdio1_cd: sdio1-cd {
1097 rockchip,pins = <3 28 4 &pcfg_pull_up>;
1098 };
1099
1100 sdio1_wp: sdio1-wp {
1101 rockchip,pins = <3 29 4 &pcfg_pull_up>;
1102 };
1103
1104 sdio1_bkpwr: sdio1-bkpwr {
1105 rockchip,pins = <3 30 4 &pcfg_pull_up>;
1106 };
1107
1108 sdio1_int: sdio1-int {
1109 rockchip,pins = <3 31 4 &pcfg_pull_up>;
1110 };
1111
1112 sdio1_cmd: sdio1-cmd {
1113 rockchip,pins = <4 6 4 &pcfg_pull_up>;
1114 };
1115
1116 sdio1_clk: sdio1-clk {
1117 rockchip,pins = <4 7 4 &pcfg_pull_none>;
1118 };
1119
1120 sdio1_pwr: sdio1-pwr {
1121 rockchip,pins = <4 9 4 &pcfg_pull_up>;
1122 };
1123 };
1124
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001125 emmc {
1126 emmc_clk: emmc-clk {
1127 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1128 };
1129
1130 emmc_cmd: emmc-cmd {
1131 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1132 };
1133
1134 emmc_pwr: emmc-pwr {
1135 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1136 };
1137
1138 emmc_bus1: emmc-bus1 {
1139 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1140 };
1141
1142 emmc_bus4: emmc-bus4 {
1143 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1144 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1145 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1146 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1147 };
1148
1149 emmc_bus8: emmc-bus8 {
1150 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1151 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1152 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1153 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1154 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1155 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1156 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1157 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1158 };
1159 };
1160
huang lin1f531702014-09-05 09:53:11 -07001161 spi0 {
1162 spi0_clk: spi0-clk {
1163 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1164 };
1165 spi0_cs0: spi0-cs0 {
1166 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1167 };
1168 spi0_tx: spi0-tx {
1169 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1170 };
1171 spi0_rx: spi0-rx {
1172 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1173 };
1174 spi0_cs1: spi0-cs1 {
1175 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1176 };
1177 };
1178 spi1 {
1179 spi1_clk: spi1-clk {
1180 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1181 };
1182 spi1_cs0: spi1-cs0 {
1183 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1184 };
1185 spi1_rx: spi1-rx {
1186 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1187 };
1188 spi1_tx: spi1-tx {
1189 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1190 };
1191 };
1192
1193 spi2 {
1194 spi2_cs1: spi2-cs1 {
1195 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1196 };
1197 spi2_clk: spi2-clk {
1198 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1199 };
1200 spi2_cs0: spi2-cs0 {
1201 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1202 };
1203 spi2_rx: spi2-rx {
1204 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1205 };
1206 spi2_tx: spi2-tx {
1207 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1208 };
1209 };
1210
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001211 uart0 {
1212 uart0_xfer: uart0-xfer {
1213 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1214 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1215 };
1216
1217 uart0_cts: uart0-cts {
1218 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
1219 };
1220
1221 uart0_rts: uart0-rts {
1222 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1223 };
1224 };
1225
1226 uart1 {
1227 uart1_xfer: uart1-xfer {
1228 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1229 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1230 };
1231
1232 uart1_cts: uart1-cts {
1233 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
1234 };
1235
1236 uart1_rts: uart1-rts {
1237 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1238 };
1239 };
1240
1241 uart2 {
1242 uart2_xfer: uart2-xfer {
1243 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1244 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1245 };
1246 /* no rts / cts for uart2 */
1247 };
1248
1249 uart3 {
1250 uart3_xfer: uart3-xfer {
1251 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1252 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1253 };
1254
1255 uart3_cts: uart3-cts {
1256 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
1257 };
1258
1259 uart3_rts: uart3-rts {
1260 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1261 };
1262 };
1263
1264 uart4 {
1265 uart4_xfer: uart4-xfer {
1266 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1267 <5 13 3 &pcfg_pull_none>;
1268 };
1269
1270 uart4_cts: uart4-cts {
1271 rockchip,pins = <5 14 3 &pcfg_pull_none>;
1272 };
1273
1274 uart4_rts: uart4-rts {
1275 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1276 };
1277 };
Doug Andersondf542df2014-08-25 15:59:26 -07001278
Caesar Wangb67d6bc2014-11-24 12:59:01 +08001279 tsadc {
1280 otp_out: otp-out {
1281 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1282 };
1283 };
1284
Doug Andersondf542df2014-08-25 15:59:26 -07001285 pwm0 {
1286 pwm0_pin: pwm0-pin {
1287 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1288 };
1289 };
1290
1291 pwm1 {
1292 pwm1_pin: pwm1-pin {
1293 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1294 };
1295 };
1296
1297 pwm2 {
1298 pwm2_pin: pwm2-pin {
1299 rockchip,pins = <7 22 3 &pcfg_pull_none>;
1300 };
1301 };
1302
1303 pwm3 {
1304 pwm3_pin: pwm3-pin {
1305 rockchip,pins = <7 23 3 &pcfg_pull_none>;
1306 };
1307 };
Roger Chen3d3fb74a2014-12-29 17:44:16 +08001308
1309 gmac {
1310 rgmii_pins: rgmii-pins {
1311 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1312 <3 31 3 &pcfg_pull_none>,
1313 <3 26 3 &pcfg_pull_none>,
1314 <3 27 3 &pcfg_pull_none>,
1315 <3 28 3 &pcfg_pull_none_12ma>,
1316 <3 29 3 &pcfg_pull_none_12ma>,
1317 <3 24 3 &pcfg_pull_none_12ma>,
1318 <3 25 3 &pcfg_pull_none_12ma>,
1319 <4 0 3 &pcfg_pull_none>,
1320 <4 5 3 &pcfg_pull_none>,
1321 <4 6 3 &pcfg_pull_none>,
1322 <4 9 3 &pcfg_pull_none_12ma>,
1323 <4 4 3 &pcfg_pull_none_12ma>,
1324 <4 1 3 &pcfg_pull_none>,
1325 <4 3 3 &pcfg_pull_none>;
1326 };
1327
1328 rmii_pins: rmii-pins {
1329 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1330 <3 31 3 &pcfg_pull_none>,
1331 <3 28 3 &pcfg_pull_none>,
1332 <3 29 3 &pcfg_pull_none>,
1333 <4 0 3 &pcfg_pull_none>,
1334 <4 5 3 &pcfg_pull_none>,
1335 <4 4 3 &pcfg_pull_none>,
1336 <4 1 3 &pcfg_pull_none>,
1337 <4 2 3 &pcfg_pull_none>,
1338 <4 3 3 &pcfg_pull_none>;
1339 };
1340 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001341 };
1342};