blob: 31f7e20ef418d07197d60ae6e3706b69423da385 [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>
Caesar Wangb63af762015-09-08 14:18:23 +080047#include <dt-bindings/power/rk3288-power.h>
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020048#include "skeleton.dtsi"
49
50/ {
51 compatible = "rockchip,rk3288";
52
53 interrupt-parent = <&gic>;
54
55 aliases {
Sjoerd Simons85ef8d62015-11-06 11:46:37 +010056 ethernet0 = &gmac;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020057 i2c0 = &i2c0;
58 i2c1 = &i2c1;
59 i2c2 = &i2c2;
60 i2c3 = &i2c3;
61 i2c4 = &i2c4;
62 i2c5 = &i2c5;
Doug Andersond7f9a382014-09-03 16:05:23 -070063 mshc0 = &emmc;
64 mshc1 = &sdmmc;
65 mshc2 = &sdio0;
66 mshc3 = &sdio1;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020067 serial0 = &uart0;
68 serial1 = &uart1;
69 serial2 = &uart2;
70 serial3 = &uart3;
71 serial4 = &uart4;
huang lin1f531702014-09-05 09:53:11 -070072 spi0 = &spi0;
73 spi1 = &spi1;
74 spi2 = &spi2;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020075 };
76
Sonny Raof1840782015-04-07 10:52:39 -070077 arm-pmu {
78 compatible = "arm,cortex-a12-pmu";
79 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
80 <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
81 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
82 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner4863dcd2015-07-15 23:03:09 +020083 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
Sonny Raof1840782015-04-07 10:52:39 -070084 };
85
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020086 cpus {
87 #address-cells = <1>;
88 #size-cells = <0>;
Olof Johansson08bcc752014-12-04 23:33:38 -080089 enable-method = "rockchip,rk3066-smp";
Kever Yangfbdbc732014-10-15 10:23:02 -070090 rockchip,pmu = <&pmu>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020091
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +020092 cpu0: cpu@500 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +020093 device_type = "cpu";
94 compatible = "arm,cortex-a12";
95 reg = <0x500>;
Kever Yang044542a2014-10-15 10:23:05 -070096 resets = <&cru SRST_CORE0>;
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +020097 operating-points = <
98 /* KHz uV */
99 1608000 1350000
100 1512000 1300000
101 1416000 1200000
102 1200000 1100000
103 1008000 1050000
104 816000 1000000
105 696000 950000
106 600000 900000
107 408000 900000
108 312000 900000
109 216000 900000
110 126000 900000
111 >;
Caesar Wangb67d6bc2014-11-24 12:59:01 +0800112 #cooling-cells = <2>; /* min followed by max */
Heiko Stuebnerbe8a77c2014-09-13 00:34:29 +0200113 clock-latency = <40000>;
114 clocks = <&cru ARMCLK>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200115 };
Heiko Stuebner4863dcd2015-07-15 23:03:09 +0200116 cpu1: cpu@501 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200117 device_type = "cpu";
118 compatible = "arm,cortex-a12";
119 reg = <0x501>;
Kever Yang044542a2014-10-15 10:23:05 -0700120 resets = <&cru SRST_CORE1>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200121 };
Heiko Stuebner4863dcd2015-07-15 23:03:09 +0200122 cpu2: cpu@502 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200123 device_type = "cpu";
124 compatible = "arm,cortex-a12";
125 reg = <0x502>;
Kever Yang044542a2014-10-15 10:23:05 -0700126 resets = <&cru SRST_CORE2>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200127 };
Heiko Stuebner4863dcd2015-07-15 23:03:09 +0200128 cpu3: cpu@503 {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200129 device_type = "cpu";
130 compatible = "arm,cortex-a12";
131 reg = <0x503>;
Kever Yang044542a2014-10-15 10:23:05 -0700132 resets = <&cru SRST_CORE3>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200133 };
134 };
135
Heiko Stübner982891c2014-08-14 23:01:25 +0200136 amba {
Masahiro Yamada2ef7d5f2016-03-09 13:26:45 +0900137 compatible = "simple-bus";
Heiko Stübner982891c2014-08-14 23:01:25 +0200138 #address-cells = <1>;
139 #size-cells = <1>;
140 ranges;
141
142 dmac_peri: dma-controller@ff250000 {
143 compatible = "arm,pl330", "arm,primecell";
144 reg = <0xff250000 0x4000>;
145 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
146 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
147 #dma-cells = <1>;
Addy Kee7d6c9b2016-01-22 19:06:47 +0800148 arm,pl330-broken-no-flushp;
Heiko Stübner982891c2014-08-14 23:01:25 +0200149 clocks = <&cru ACLK_DMAC2>;
150 clock-names = "apb_pclk";
151 };
152
153 dmac_bus_ns: dma-controller@ff600000 {
154 compatible = "arm,pl330", "arm,primecell";
155 reg = <0xff600000 0x4000>;
156 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
157 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
158 #dma-cells = <1>;
Addy Kee7d6c9b2016-01-22 19:06:47 +0800159 arm,pl330-broken-no-flushp;
Heiko Stübner982891c2014-08-14 23:01:25 +0200160 clocks = <&cru ACLK_DMAC1>;
161 clock-names = "apb_pclk";
162 status = "disabled";
163 };
164
165 dmac_bus_s: dma-controller@ffb20000 {
166 compatible = "arm,pl330", "arm,primecell";
167 reg = <0xffb20000 0x4000>;
168 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
169 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
170 #dma-cells = <1>;
Addy Kee7d6c9b2016-01-22 19:06:47 +0800171 arm,pl330-broken-no-flushp;
Heiko Stübner982891c2014-08-14 23:01:25 +0200172 clocks = <&cru ACLK_DMAC1>;
173 clock-names = "apb_pclk";
174 };
175 };
176
Heiko Stuebnerb21bcfc2015-08-01 13:00:49 +0200177 reserved-memory {
178 #address-cells = <1>;
179 #size-cells = <1>;
180 ranges;
181
182 /*
183 * The rk3288 cannot use the memory area above 0xfe000000
184 * for dma operations for some reason. While there is
185 * probably a better solution available somewhere, we
186 * haven't found it yet and while devices with 2GB of ram
187 * are not affected, this issue prevents 4GB from booting.
188 * So to make these devices at least bootable, block
189 * this area for the time being until the real solution
190 * is found.
191 */
192 dma-unusable@fe000000 {
193 reg = <0xfe000000 0x1000000>;
194 };
195 };
196
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200197 xin24m: oscillator {
198 compatible = "fixed-clock";
199 clock-frequency = <24000000>;
200 clock-output-names = "xin24m";
201 #clock-cells = <0>;
202 };
203
204 timer {
205 compatible = "arm,armv7-timer";
Sonny Raoe2405a52014-11-25 10:54:00 -0800206 arm,cpu-registers-not-fw-configured;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200207 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
208 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
209 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
210 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
211 clock-frequency = <24000000>;
212 };
213
Daniel Lezcanoe48cc182015-01-25 10:42:59 +0100214 timer: timer@ff810000 {
215 compatible = "rockchip,rk3288-timer";
216 reg = <0xff810000 0x20>;
217 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
218 clocks = <&xin24m>, <&cru PCLK_TIMER>;
219 clock-names = "timer", "pclk";
220 };
221
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800222 display-subsystem {
223 compatible = "rockchip,display-subsystem";
224 ports = <&vopl_out>, <&vopb_out>;
225 };
226
Doug Anderson85095bf2014-08-12 16:21:13 -0700227 sdmmc: dwmmc@ff0c0000 {
228 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800229 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200230 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
231 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
232 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Doug Anderson85095bf2014-08-12 16:21:13 -0700233 fifo-depth = <0x100>;
234 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
235 reg = <0xff0c0000 0x4000>;
236 status = "disabled";
237 };
238
Addy Kef1a07232014-08-19 18:21:08 +0800239 sdio0: dwmmc@ff0d0000 {
240 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800241 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200242 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
243 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
244 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Addy Kef1a07232014-08-19 18:21:08 +0800245 fifo-depth = <0x100>;
246 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
247 reg = <0xff0d0000 0x4000>;
248 status = "disabled";
249 };
250
251 sdio1: dwmmc@ff0e0000 {
252 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800253 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200254 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
255 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
256 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Addy Kef1a07232014-08-19 18:21:08 +0800257 fifo-depth = <0x100>;
258 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
259 reg = <0xff0e0000 0x4000>;
260 status = "disabled";
261 };
262
Doug Anderson85095bf2014-08-12 16:21:13 -0700263 emmc: dwmmc@ff0f0000 {
264 compatible = "rockchip,rk3288-dw-mshc";
Addy Kef74ba112014-12-04 10:49:35 +0800265 clock-freq-min-max = <400000 150000000>;
Alexandru M Stanf71ddc52015-10-12 14:48:29 +0200266 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
267 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
268 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Doug Anderson85095bf2014-08-12 16:21:13 -0700269 fifo-depth = <0x100>;
270 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
271 reg = <0xff0f0000 0x4000>;
272 status = "disabled";
273 };
274
Heiko Stübnerf23a6172014-08-20 21:09:24 +0200275 saradc: saradc@ff100000 {
276 compatible = "rockchip,saradc";
277 reg = <0xff100000 0x100>;
278 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
279 #io-channel-cells = <1>;
280 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
281 clock-names = "saradc", "apb_pclk";
282 status = "disabled";
283 };
284
huang lin1f531702014-09-05 09:53:11 -0700285 spi0: spi@ff110000 {
286 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
287 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
288 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700289 dmas = <&dmac_peri 11>, <&dmac_peri 12>;
290 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700291 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
292 pinctrl-names = "default";
293 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
294 reg = <0xff110000 0x1000>;
295 #address-cells = <1>;
296 #size-cells = <0>;
297 status = "disabled";
298 };
299
300 spi1: spi@ff120000 {
301 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
302 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
303 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700304 dmas = <&dmac_peri 13>, <&dmac_peri 14>;
305 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700306 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
307 pinctrl-names = "default";
308 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
309 reg = <0xff120000 0x1000>;
310 #address-cells = <1>;
311 #size-cells = <0>;
312 status = "disabled";
313 };
314
315 spi2: spi@ff130000 {
316 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
317 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
318 clock-names = "spiclk", "apb_pclk";
Doug Anderson11bd57b2014-10-24 14:42:06 -0700319 dmas = <&dmac_peri 15>, <&dmac_peri 16>;
320 dma-names = "tx", "rx";
huang lin1f531702014-09-05 09:53:11 -0700321 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
322 pinctrl-names = "default";
323 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
324 reg = <0xff130000 0x1000>;
325 #address-cells = <1>;
326 #size-cells = <0>;
327 status = "disabled";
328 };
329
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200330 i2c1: i2c@ff140000 {
331 compatible = "rockchip,rk3288-i2c";
332 reg = <0xff140000 0x1000>;
333 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
334 #address-cells = <1>;
335 #size-cells = <0>;
336 clock-names = "i2c";
337 clocks = <&cru PCLK_I2C1>;
338 pinctrl-names = "default";
339 pinctrl-0 = <&i2c1_xfer>;
340 status = "disabled";
341 };
342
343 i2c3: i2c@ff150000 {
344 compatible = "rockchip,rk3288-i2c";
345 reg = <0xff150000 0x1000>;
346 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
347 #address-cells = <1>;
348 #size-cells = <0>;
349 clock-names = "i2c";
350 clocks = <&cru PCLK_I2C3>;
351 pinctrl-names = "default";
352 pinctrl-0 = <&i2c3_xfer>;
353 status = "disabled";
354 };
355
356 i2c4: i2c@ff160000 {
357 compatible = "rockchip,rk3288-i2c";
358 reg = <0xff160000 0x1000>;
359 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
360 #address-cells = <1>;
361 #size-cells = <0>;
362 clock-names = "i2c";
363 clocks = <&cru PCLK_I2C4>;
364 pinctrl-names = "default";
365 pinctrl-0 = <&i2c4_xfer>;
366 status = "disabled";
367 };
368
369 i2c5: i2c@ff170000 {
370 compatible = "rockchip,rk3288-i2c";
371 reg = <0xff170000 0x1000>;
372 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
373 #address-cells = <1>;
374 #size-cells = <0>;
375 clock-names = "i2c";
376 clocks = <&cru PCLK_I2C5>;
377 pinctrl-names = "default";
378 pinctrl-0 = <&i2c5_xfer>;
379 status = "disabled";
380 };
381
382 uart0: serial@ff180000 {
383 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
384 reg = <0xff180000 0x100>;
385 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
386 reg-shift = <2>;
387 reg-io-width = <4>;
388 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
389 clock-names = "baudclk", "apb_pclk";
390 pinctrl-names = "default";
391 pinctrl-0 = <&uart0_xfer>;
392 status = "disabled";
393 };
394
395 uart1: serial@ff190000 {
396 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
397 reg = <0xff190000 0x100>;
398 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
399 reg-shift = <2>;
400 reg-io-width = <4>;
401 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
402 clock-names = "baudclk", "apb_pclk";
403 pinctrl-names = "default";
404 pinctrl-0 = <&uart1_xfer>;
405 status = "disabled";
406 };
407
408 uart2: serial@ff690000 {
409 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
410 reg = <0xff690000 0x100>;
411 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
412 reg-shift = <2>;
413 reg-io-width = <4>;
414 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
415 clock-names = "baudclk", "apb_pclk";
416 pinctrl-names = "default";
417 pinctrl-0 = <&uart2_xfer>;
418 status = "disabled";
419 };
420
421 uart3: serial@ff1b0000 {
422 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
423 reg = <0xff1b0000 0x100>;
424 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
425 reg-shift = <2>;
426 reg-io-width = <4>;
427 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
428 clock-names = "baudclk", "apb_pclk";
429 pinctrl-names = "default";
430 pinctrl-0 = <&uart3_xfer>;
431 status = "disabled";
432 };
433
434 uart4: serial@ff1c0000 {
435 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
436 reg = <0xff1c0000 0x100>;
437 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
438 reg-shift = <2>;
439 reg-io-width = <4>;
440 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
441 clock-names = "baudclk", "apb_pclk";
442 pinctrl-names = "default";
443 pinctrl-0 = <&uart4_xfer>;
444 status = "disabled";
445 };
446
Caesar Wangb67d6bc2014-11-24 12:59:01 +0800447 thermal-zones {
448 #include "rk3288-thermal.dtsi"
449 };
450
451 tsadc: tsadc@ff280000 {
452 compatible = "rockchip,rk3288-tsadc";
453 reg = <0xff280000 0x100>;
454 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
455 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
456 clock-names = "tsadc", "apb_pclk";
457 resets = <&cru SRST_TSADC>;
458 reset-names = "tsadc-apb";
Caesar Wang784359b2015-10-23 19:25:28 +0800459 pinctrl-names = "init", "default", "sleep";
460 pinctrl-0 = <&otp_gpio>;
461 pinctrl-1 = <&otp_out>;
462 pinctrl-2 = <&otp_gpio>;
Caesar Wangb67d6bc2014-11-24 12:59:01 +0800463 #thermal-sensor-cells = <1>;
464 rockchip,hw-tshut-temp = <95000>;
465 status = "disabled";
466 };
467
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800468 gmac: ethernet@ff290000 {
469 compatible = "rockchip,rk3288-gmac";
470 reg = <0xff290000 0x10000>;
471 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
472 interrupt-names = "macirq";
473 rockchip,grf = <&grf>;
474 clocks = <&cru SCLK_MAC>,
475 <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
476 <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
477 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
478 clock-names = "stmmaceth",
479 "mac_clk_rx", "mac_clk_tx",
480 "clk_mac_ref", "clk_mac_refout",
481 "aclk_mac", "pclk_mac";
Romain Periere6b54642015-06-20 12:27:16 +0000482 resets = <&cru SRST_MAC>;
483 reset-names = "stmmaceth";
Alexandru M Stan54b0bc62015-03-13 17:55:32 -0700484 status = "disabled";
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800485 };
486
Doug Andersonc9c32c52014-08-07 17:44:19 +0200487 usb_host0_ehci: usb@ff500000 {
488 compatible = "generic-ehci";
489 reg = <0xff500000 0x100>;
490 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
491 clocks = <&cru HCLK_USBHOST0>;
492 clock-names = "usbhost";
Yunzhi Lif6db7022014-12-12 23:12:21 +0800493 phys = <&usbphy1>;
494 phy-names = "usb";
Doug Andersonc9c32c52014-08-07 17:44:19 +0200495 status = "disabled";
496 };
497
498 /* NOTE: ohci@ff520000 doesn't actually work on hardware */
499
Kever Yang12dd3652014-08-08 11:55:58 +0800500 usb_host1: usb@ff540000 {
501 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
502 "snps,dwc2";
503 reg = <0xff540000 0x40000>;
504 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
505 clocks = <&cru HCLK_USBHOST1>;
506 clock-names = "otg";
Yunzhi Licabd2ea2015-04-26 17:41:38 +0800507 dr_mode = "host";
Yunzhi Lif6db7022014-12-12 23:12:21 +0800508 phys = <&usbphy2>;
509 phy-names = "usb2-phy";
Kever Yang12dd3652014-08-08 11:55:58 +0800510 status = "disabled";
511 };
512
513 usb_otg: usb@ff580000 {
514 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
515 "snps,dwc2";
516 reg = <0xff580000 0x40000>;
517 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
518 clocks = <&cru HCLK_OTG0>;
519 clock-names = "otg";
Yunzhi Licabd2ea2015-04-26 17:41:38 +0800520 dr_mode = "otg";
521 g-np-tx-fifo-size = <16>;
522 g-rx-fifo-size = <275>;
523 g-tx-fifo-size = <256 128 128 64 64 32>;
524 g-use-dma;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800525 phys = <&usbphy0>;
526 phy-names = "usb2-phy";
Kever Yang12dd3652014-08-08 11:55:58 +0800527 status = "disabled";
528 };
529
Doug Andersonc9c32c52014-08-07 17:44:19 +0200530 usb_hsic: usb@ff5c0000 {
531 compatible = "generic-ehci";
532 reg = <0xff5c0000 0x100>;
533 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
534 clocks = <&cru HCLK_HSIC>;
535 clock-names = "usbhost";
536 status = "disabled";
537 };
538
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200539 i2c0: i2c@ff650000 {
540 compatible = "rockchip,rk3288-i2c";
541 reg = <0xff650000 0x1000>;
542 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
543 #address-cells = <1>;
544 #size-cells = <0>;
545 clock-names = "i2c";
546 clocks = <&cru PCLK_I2C0>;
547 pinctrl-names = "default";
548 pinctrl-0 = <&i2c0_xfer>;
549 status = "disabled";
550 };
551
552 i2c2: i2c@ff660000 {
553 compatible = "rockchip,rk3288-i2c";
554 reg = <0xff660000 0x1000>;
555 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
556 #address-cells = <1>;
557 #size-cells = <0>;
558 clock-names = "i2c";
559 clocks = <&cru PCLK_I2C2>;
560 pinctrl-names = "default";
561 pinctrl-0 = <&i2c2_xfer>;
562 status = "disabled";
563 };
564
Doug Andersondf542df2014-08-25 15:59:26 -0700565 pwm0: pwm@ff680000 {
566 compatible = "rockchip,rk3288-pwm";
567 reg = <0xff680000 0x10>;
568 #pwm-cells = <3>;
569 pinctrl-names = "default";
570 pinctrl-0 = <&pwm0_pin>;
571 clocks = <&cru PCLK_PWM>;
572 clock-names = "pwm";
573 status = "disabled";
574 };
575
576 pwm1: pwm@ff680010 {
577 compatible = "rockchip,rk3288-pwm";
578 reg = <0xff680010 0x10>;
579 #pwm-cells = <3>;
580 pinctrl-names = "default";
581 pinctrl-0 = <&pwm1_pin>;
582 clocks = <&cru PCLK_PWM>;
583 clock-names = "pwm";
584 status = "disabled";
585 };
586
587 pwm2: pwm@ff680020 {
588 compatible = "rockchip,rk3288-pwm";
589 reg = <0xff680020 0x10>;
590 #pwm-cells = <3>;
591 pinctrl-names = "default";
592 pinctrl-0 = <&pwm2_pin>;
593 clocks = <&cru PCLK_PWM>;
594 clock-names = "pwm";
595 status = "disabled";
596 };
597
598 pwm3: pwm@ff680030 {
599 compatible = "rockchip,rk3288-pwm";
600 reg = <0xff680030 0x10>;
601 #pwm-cells = <2>;
602 pinctrl-names = "default";
603 pinctrl-0 = <&pwm3_pin>;
604 clocks = <&cru PCLK_PWM>;
605 clock-names = "pwm";
606 status = "disabled";
607 };
608
Kever Yang1123d412014-10-15 10:23:04 -0700609 bus_intmem@ff700000 {
610 compatible = "mmio-sram";
611 reg = <0xff700000 0x18000>;
612 #address-cells = <1>;
613 #size-cells = <1>;
614 ranges = <0 0xff700000 0x18000>;
615 smp-sram@0 {
616 compatible = "rockchip,rk3066-smp-sram";
617 reg = <0x00 0x10>;
618 };
619 };
620
Chris Zhongeecfe982014-12-01 16:52:19 +0800621 sram@ff720000 {
622 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
623 reg = <0xff720000 0x1000>;
624 };
625
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200626 pmu: power-management@ff730000 {
Caesar Wangb63af762015-09-08 14:18:23 +0800627 compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200628 reg = <0xff730000 0x100>;
Caesar Wangb63af762015-09-08 14:18:23 +0800629
630 power: power-controller {
631 compatible = "rockchip,rk3288-power-controller";
632 #power-domain-cells = <1>;
633 #address-cells = <1>;
634 #size-cells = <0>;
635
Sjoerd Simonsdf5ea012016-01-25 12:19:26 +0100636 assigned-clocks = <&cru SCLK_EDP_24M>;
637 assigned-clock-parents = <&xin24m>;
638
Caesar Wangb63af762015-09-08 14:18:23 +0800639 /*
640 * Note: Although SCLK_* are the working clocks
641 * of device without including on the NOC, needed for
642 * synchronous reset.
643 *
644 * The clocks on the which NOC:
645 * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
646 * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
647 * ACLK_RGA is on ACLK_RGA_NIU.
648 * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
649 *
650 * Which clock are device clocks:
651 * clocks devices
652 * *_IEP IEP:Image Enhancement Processor
653 * *_ISP ISP:Image Signal Processing
654 * *_VIP VIP:Video Input Processor
655 * *_VOP* VOP:Visual Output Processor
656 * *_RGA RGA
657 * *_EDP* EDP
658 * *_LVDS_* LVDS
659 * *_HDMI HDMI
660 * *_MIPI_* MIPI
661 */
662 pd_vio {
663 reg = <RK3288_PD_VIO>;
664 clocks = <&cru ACLK_IEP>,
665 <&cru ACLK_ISP>,
666 <&cru ACLK_RGA>,
667 <&cru ACLK_VIP>,
668 <&cru ACLK_VOP0>,
669 <&cru ACLK_VOP1>,
670 <&cru DCLK_VOP0>,
671 <&cru DCLK_VOP1>,
672 <&cru HCLK_IEP>,
673 <&cru HCLK_ISP>,
674 <&cru HCLK_RGA>,
675 <&cru HCLK_VIP>,
676 <&cru HCLK_VOP0>,
677 <&cru HCLK_VOP1>,
678 <&cru PCLK_EDP_CTRL>,
679 <&cru PCLK_HDMI_CTRL>,
680 <&cru PCLK_LVDS_PHY>,
681 <&cru PCLK_MIPI_CSI>,
682 <&cru PCLK_MIPI_DSI0>,
683 <&cru PCLK_MIPI_DSI1>,
684 <&cru SCLK_EDP_24M>,
685 <&cru SCLK_EDP>,
686 <&cru SCLK_ISP_JPE>,
687 <&cru SCLK_ISP>,
688 <&cru SCLK_RGA>;
689 };
690
691 /*
692 * Note: The following 3 are HEVC(H.265) clocks,
693 * and on the ACLK_HEVC_NIU (NOC).
694 */
695 pd_hevc {
696 reg = <RK3288_PD_HEVC>;
697 clocks = <&cru ACLK_HEVC>,
698 <&cru SCLK_HEVC_CABAC>,
699 <&cru SCLK_HEVC_CORE>;
700 };
701
702 /*
703 * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
704 * (video endecoder & decoder) clocks that on the
705 * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
706 */
707 pd_video {
708 reg = <RK3288_PD_VIDEO>;
709 clocks = <&cru ACLK_VCODEC>,
710 <&cru HCLK_VCODEC>;
711 };
712
713 /*
714 * Note: ACLK_GPU is the GPU clock,
715 * and on the ACLK_GPU_NIU (NOC).
716 */
717 pd_gpu {
718 reg = <RK3288_PD_GPU>;
719 clocks = <&cru ACLK_GPU>;
720 };
721 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200722 };
723
724 sgrf: syscon@ff740000 {
725 compatible = "rockchip,rk3288-sgrf", "syscon";
726 reg = <0xff740000 0x1000>;
727 };
728
729 cru: clock-controller@ff760000 {
730 compatible = "rockchip,rk3288-cru";
731 reg = <0xff760000 0x1000>;
732 rockchip,grf = <&grf>;
733 #clock-cells = <1>;
734 #reset-cells = <1>;
Kever Yangcd78d0c2014-10-09 21:50:30 -0700735 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
736 <&cru PLL_NPLL>, <&cru ACLK_CPU>,
737 <&cru HCLK_CPU>, <&cru PCLK_CPU>,
738 <&cru ACLK_PERI>, <&cru HCLK_PERI>,
739 <&cru PCLK_PERI>;
740 assigned-clock-rates = <594000000>, <400000000>,
741 <500000000>, <300000000>,
742 <150000000>, <75000000>,
743 <300000000>, <150000000>,
744 <75000000>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200745 };
746
747 grf: syscon@ff770000 {
748 compatible = "rockchip,rk3288-grf", "syscon";
749 reg = <0xff770000 0x1000>;
750 };
751
752 wdt: watchdog@ff800000 {
753 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
754 reg = <0xff800000 0x100>;
Heiko Stuebner39d05162015-01-20 21:12:16 +0100755 clocks = <&cru PCLK_WDT>;
Heiko Stuebner1a1b6982015-06-19 16:31:14 +0200756 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200757 status = "disabled";
758 };
759
Sjoerd Simons874e5682015-10-08 15:31:17 +0200760 spdif: sound@ff88b0000 {
761 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
762 reg = <0xff8b0000 0x10000>;
763 #sound-dai-cells = <0>;
764 clock-names = "hclk", "mclk";
765 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
766 dmas = <&dmac_bus_s 3>;
767 dma-names = "tx";
768 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
769 pinctrl-names = "default";
770 pinctrl-0 = <&spdif_tx>;
771 rockchip,grf = <&grf>;
772 status = "disabled";
773 };
774
Jianquna0f95e32014-09-12 18:54:55 +0800775 i2s: i2s@ff890000 {
776 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
777 reg = <0xff890000 0x10000>;
778 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
779 #address-cells = <1>;
780 #size-cells = <0>;
781 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
782 dma-names = "tx", "rx";
783 clock-names = "i2s_hclk", "i2s_clk";
784 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
785 pinctrl-names = "default";
786 pinctrl-0 = <&i2s0_bus>;
Sugar Zhange2416572015-11-10 15:32:09 +0800787 rockchip,playback-channels = <8>;
788 rockchip,capture-channels = <2>;
Jianquna0f95e32014-09-12 18:54:55 +0800789 status = "disabled";
790 };
791
Zain Wangc2cb6162015-11-25 13:43:33 +0800792 crypto: cypto-controller@ff8a0000 {
793 compatible = "rockchip,rk3288-crypto";
794 reg = <0xff8a0000 0x4000>;
795 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
796 clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
797 <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
798 clock-names = "aclk", "hclk", "sclk", "apb_pclk";
799 resets = <&cru SRST_CRYPTO>;
800 reset-names = "crypto-rst";
801 status = "okay";
802 };
803
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800804 vopb: vop@ff930000 {
805 compatible = "rockchip,rk3288-vop";
806 reg = <0xff930000 0x19c>;
807 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
808 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
809 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
Caesar Wangb63af762015-09-08 14:18:23 +0800810 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800811 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
812 reset-names = "axi", "ahb", "dclk";
813 iommus = <&vopb_mmu>;
814 status = "disabled";
815
816 vopb_out: port {
817 #address-cells = <1>;
818 #size-cells = <0>;
Andy Yand5a1df42014-11-04 13:13:14 +0800819
820 vopb_out_hdmi: endpoint@0 {
821 reg = <0>;
822 remote-endpoint = <&hdmi_in_vopb>;
823 };
Chris Zhongcab6f072016-01-06 12:03:56 +0800824 vopb_out_mipi: endpoint@2 {
825 reg = <2>;
826 remote-endpoint = <&mipi_in_vopb>;
827 };
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800828 };
829 };
830
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800831 vopb_mmu: iommu@ff930300 {
832 compatible = "rockchip,iommu";
833 reg = <0xff930300 0x100>;
834 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
835 interrupt-names = "vopb_mmu";
Caesar Wangb63af762015-09-08 14:18:23 +0800836 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800837 #iommu-cells = <0>;
838 status = "disabled";
839 };
840
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800841 vopl: vop@ff940000 {
842 compatible = "rockchip,rk3288-vop";
843 reg = <0xff940000 0x19c>;
844 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
845 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
846 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
Caesar Wangb63af762015-09-08 14:18:23 +0800847 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800848 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
849 reset-names = "axi", "ahb", "dclk";
850 iommus = <&vopl_mmu>;
851 status = "disabled";
852
853 vopl_out: port {
854 #address-cells = <1>;
855 #size-cells = <0>;
Andy Yand5a1df42014-11-04 13:13:14 +0800856
857 vopl_out_hdmi: endpoint@0 {
858 reg = <0>;
859 remote-endpoint = <&hdmi_in_vopl>;
860 };
Chris Zhongcab6f072016-01-06 12:03:56 +0800861 vopl_out_mipi: endpoint@2 {
862 reg = <2>;
863 remote-endpoint = <&mipi_in_vopl>;
864 };
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800865 };
866 };
867
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800868 vopl_mmu: iommu@ff940300 {
869 compatible = "rockchip,iommu";
870 reg = <0xff940300 0x100>;
871 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
872 interrupt-names = "vopl_mmu";
Caesar Wangb63af762015-09-08 14:18:23 +0800873 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800874 #iommu-cells = <0>;
875 status = "disabled";
876 };
877
Chris Zhongcab6f072016-01-06 12:03:56 +0800878 mipi_dsi: mipi@ff960000 {
879 compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
880 reg = <0xff960000 0x4000>;
881 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
882 clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
883 clock-names = "ref", "pclk";
884 rockchip,grf = <&grf>;
885 #address-cells = <1>;
886 #size-cells = <0>;
887 status = "disabled";
888
889 ports {
890 #address-cells = <1>;
891 #size-cells = <0>;
892 reg = <1>;
893
894 mipi_in: port {
895 #address-cells = <1>;
896 #size-cells = <0>;
897 mipi_in_vopb: endpoint@0 {
898 reg = <0>;
899 remote-endpoint = <&vopb_out_mipi>;
900 };
901 mipi_in_vopl: endpoint@1 {
902 reg = <1>;
903 remote-endpoint = <&vopl_out_mipi>;
904 };
905 };
906 };
907 };
908
Andy Yand5a1df42014-11-04 13:13:14 +0800909 hdmi: hdmi@ff980000 {
910 compatible = "rockchip,rk3288-dw-hdmi";
911 reg = <0xff980000 0x20000>;
912 reg-io-width = <4>;
Andy Yand5a1df42014-11-04 13:13:14 +0800913 rockchip,grf = <&grf>;
914 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
915 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
916 clock-names = "iahb", "isfr";
Caesar Wangb63af762015-09-08 14:18:23 +0800917 power-domains = <&power RK3288_PD_VIO>;
Andy Yand5a1df42014-11-04 13:13:14 +0800918 status = "disabled";
919
920 ports {
921 hdmi_in: port {
922 #address-cells = <1>;
923 #size-cells = <0>;
924 hdmi_in_vopb: endpoint@0 {
925 reg = <0>;
926 remote-endpoint = <&vopb_out_hdmi>;
927 };
928 hdmi_in_vopl: endpoint@1 {
929 reg = <1>;
930 remote-endpoint = <&vopl_out_hdmi>;
931 };
932 };
933 };
934 };
935
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200936 gic: interrupt-controller@ffc01000 {
937 compatible = "arm,gic-400";
938 interrupt-controller;
939 #interrupt-cells = <3>;
940 #address-cells = <0>;
941
942 reg = <0xffc01000 0x1000>,
943 <0xffc02000 0x1000>,
944 <0xffc04000 0x2000>,
945 <0xffc06000 0x2000>;
946 interrupts = <GIC_PPI 9 0xf04>;
947 };
948
ZhengShunQian88185552015-08-11 18:13:44 +0800949 efuse: efuse@ffb40000 {
950 compatible = "rockchip,rockchip-efuse";
951 reg = <0xffb40000 0x20>;
952 #address-cells = <1>;
953 #size-cells = <1>;
954 clocks = <&cru PCLK_EFUSE256>;
955 clock-names = "pclk_efuse";
956
957 cpu_leakage: cpu_leakage@17 {
958 reg = <0x17 0x1>;
959 };
960 };
961
Yunzhi Lif6db7022014-12-12 23:12:21 +0800962 usbphy: phy {
963 compatible = "rockchip,rk3288-usb-phy";
964 rockchip,grf = <&grf>;
965 #address-cells = <1>;
966 #size-cells = <0>;
967 status = "disabled";
968
969 usbphy0: usb-phy0 {
970 #phy-cells = <0>;
971 reg = <0x320>;
972 clocks = <&cru SCLK_OTGPHY0>;
973 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +0100974 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800975 };
976
977 usbphy1: usb-phy1 {
978 #phy-cells = <0>;
979 reg = <0x334>;
980 clocks = <&cru SCLK_OTGPHY1>;
981 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +0100982 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800983 };
984
985 usbphy2: usb-phy2 {
986 #phy-cells = <0>;
987 reg = <0x348>;
988 clocks = <&cru SCLK_OTGPHY2>;
989 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +0100990 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800991 };
992 };
993
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200994 pinctrl: pinctrl {
995 compatible = "rockchip,rk3288-pinctrl";
996 rockchip,grf = <&grf>;
997 rockchip,pmu = <&pmu>;
998 #address-cells = <1>;
999 #size-cells = <1>;
1000 ranges;
1001
1002 gpio0: gpio0@ff750000 {
1003 compatible = "rockchip,gpio-bank";
1004 reg = <0xff750000 0x100>;
1005 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1006 clocks = <&cru PCLK_GPIO0>;
1007
1008 gpio-controller;
1009 #gpio-cells = <2>;
1010
1011 interrupt-controller;
1012 #interrupt-cells = <2>;
1013 };
1014
1015 gpio1: gpio1@ff780000 {
1016 compatible = "rockchip,gpio-bank";
1017 reg = <0xff780000 0x100>;
1018 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1019 clocks = <&cru PCLK_GPIO1>;
1020
1021 gpio-controller;
1022 #gpio-cells = <2>;
1023
1024 interrupt-controller;
1025 #interrupt-cells = <2>;
1026 };
1027
1028 gpio2: gpio2@ff790000 {
1029 compatible = "rockchip,gpio-bank";
1030 reg = <0xff790000 0x100>;
1031 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1032 clocks = <&cru PCLK_GPIO2>;
1033
1034 gpio-controller;
1035 #gpio-cells = <2>;
1036
1037 interrupt-controller;
1038 #interrupt-cells = <2>;
1039 };
1040
1041 gpio3: gpio3@ff7a0000 {
1042 compatible = "rockchip,gpio-bank";
1043 reg = <0xff7a0000 0x100>;
1044 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1045 clocks = <&cru PCLK_GPIO3>;
1046
1047 gpio-controller;
1048 #gpio-cells = <2>;
1049
1050 interrupt-controller;
1051 #interrupt-cells = <2>;
1052 };
1053
1054 gpio4: gpio4@ff7b0000 {
1055 compatible = "rockchip,gpio-bank";
1056 reg = <0xff7b0000 0x100>;
1057 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1058 clocks = <&cru PCLK_GPIO4>;
1059
1060 gpio-controller;
1061 #gpio-cells = <2>;
1062
1063 interrupt-controller;
1064 #interrupt-cells = <2>;
1065 };
1066
1067 gpio5: gpio5@ff7c0000 {
1068 compatible = "rockchip,gpio-bank";
1069 reg = <0xff7c0000 0x100>;
1070 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1071 clocks = <&cru PCLK_GPIO5>;
1072
1073 gpio-controller;
1074 #gpio-cells = <2>;
1075
1076 interrupt-controller;
1077 #interrupt-cells = <2>;
1078 };
1079
1080 gpio6: gpio6@ff7d0000 {
1081 compatible = "rockchip,gpio-bank";
1082 reg = <0xff7d0000 0x100>;
1083 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1084 clocks = <&cru PCLK_GPIO6>;
1085
1086 gpio-controller;
1087 #gpio-cells = <2>;
1088
1089 interrupt-controller;
1090 #interrupt-cells = <2>;
1091 };
1092
1093 gpio7: gpio7@ff7e0000 {
1094 compatible = "rockchip,gpio-bank";
1095 reg = <0xff7e0000 0x100>;
1096 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1097 clocks = <&cru PCLK_GPIO7>;
1098
1099 gpio-controller;
1100 #gpio-cells = <2>;
1101
1102 interrupt-controller;
1103 #interrupt-cells = <2>;
1104 };
1105
1106 gpio8: gpio8@ff7f0000 {
1107 compatible = "rockchip,gpio-bank";
1108 reg = <0xff7f0000 0x100>;
1109 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1110 clocks = <&cru PCLK_GPIO8>;
1111
1112 gpio-controller;
1113 #gpio-cells = <2>;
1114
1115 interrupt-controller;
1116 #interrupt-cells = <2>;
1117 };
1118
Douglas Andersone61ccb12015-09-02 14:54:22 -07001119 hdmi {
1120 hdmi_ddc: hdmi-ddc {
1121 rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1122 <7 20 RK_FUNC_2 &pcfg_pull_none>;
1123 };
1124 };
1125
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001126 pcfg_pull_up: pcfg-pull-up {
1127 bias-pull-up;
1128 };
1129
1130 pcfg_pull_down: pcfg-pull-down {
1131 bias-pull-down;
1132 };
1133
1134 pcfg_pull_none: pcfg-pull-none {
1135 bias-disable;
1136 };
1137
Roger Chen3d3fb74a2014-12-29 17:44:16 +08001138 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1139 bias-disable;
1140 drive-strength = <12>;
1141 };
1142
Chris Zhongeecfe982014-12-01 16:52:19 +08001143 sleep {
1144 global_pwroff: global-pwroff {
1145 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1146 };
1147
1148 ddrio_pwroff: ddrio-pwroff {
1149 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1150 };
1151
1152 ddr0_retention: ddr0-retention {
1153 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1154 };
1155
1156 ddr1_retention: ddr1-retention {
1157 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1158 };
1159 };
1160
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001161 i2c0 {
1162 i2c0_xfer: i2c0-xfer {
1163 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1164 <0 16 RK_FUNC_1 &pcfg_pull_none>;
1165 };
1166 };
1167
1168 i2c1 {
1169 i2c1_xfer: i2c1-xfer {
1170 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1171 <8 5 RK_FUNC_1 &pcfg_pull_none>;
1172 };
1173 };
1174
1175 i2c2 {
1176 i2c2_xfer: i2c2-xfer {
1177 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1178 <6 10 RK_FUNC_1 &pcfg_pull_none>;
1179 };
1180 };
1181
1182 i2c3 {
1183 i2c3_xfer: i2c3-xfer {
1184 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1185 <2 17 RK_FUNC_1 &pcfg_pull_none>;
1186 };
1187 };
1188
1189 i2c4 {
1190 i2c4_xfer: i2c4-xfer {
1191 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1192 <7 18 RK_FUNC_1 &pcfg_pull_none>;
1193 };
1194 };
1195
1196 i2c5 {
1197 i2c5_xfer: i2c5-xfer {
1198 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1199 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1200 };
1201 };
1202
Jianquna0f95e32014-09-12 18:54:55 +08001203 i2s0 {
1204 i2s0_bus: i2s0-bus {
1205 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1206 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1207 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1208 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1209 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1210 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1211 };
1212 };
1213
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001214 sdmmc {
1215 sdmmc_clk: sdmmc-clk {
1216 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1217 };
1218
1219 sdmmc_cmd: sdmmc-cmd {
1220 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1221 };
1222
Matthias Bruggerd59df5d2015-12-11 15:45:58 +01001223 sdmmc_cd: sdmmc-cd {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001224 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1225 };
1226
1227 sdmmc_bus1: sdmmc-bus1 {
1228 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1229 };
1230
1231 sdmmc_bus4: sdmmc-bus4 {
1232 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1233 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1234 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1235 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1236 };
1237 };
1238
Addy Kef1a07232014-08-19 18:21:08 +08001239 sdio0 {
1240 sdio0_bus1: sdio0-bus1 {
1241 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1242 };
1243
1244 sdio0_bus4: sdio0-bus4 {
1245 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1246 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1247 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1248 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1249 };
1250
1251 sdio0_cmd: sdio0-cmd {
1252 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1253 };
1254
1255 sdio0_clk: sdio0-clk {
1256 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1257 };
1258
1259 sdio0_cd: sdio0-cd {
1260 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1261 };
1262
1263 sdio0_wp: sdio0-wp {
1264 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1265 };
1266
1267 sdio0_pwr: sdio0-pwr {
1268 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1269 };
1270
1271 sdio0_bkpwr: sdio0-bkpwr {
1272 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1273 };
1274
1275 sdio0_int: sdio0-int {
1276 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1277 };
1278 };
1279
1280 sdio1 {
1281 sdio1_bus1: sdio1-bus1 {
1282 rockchip,pins = <3 24 4 &pcfg_pull_up>;
1283 };
1284
1285 sdio1_bus4: sdio1-bus4 {
1286 rockchip,pins = <3 24 4 &pcfg_pull_up>,
1287 <3 25 4 &pcfg_pull_up>,
1288 <3 26 4 &pcfg_pull_up>,
1289 <3 27 4 &pcfg_pull_up>;
1290 };
1291
1292 sdio1_cd: sdio1-cd {
1293 rockchip,pins = <3 28 4 &pcfg_pull_up>;
1294 };
1295
1296 sdio1_wp: sdio1-wp {
1297 rockchip,pins = <3 29 4 &pcfg_pull_up>;
1298 };
1299
1300 sdio1_bkpwr: sdio1-bkpwr {
1301 rockchip,pins = <3 30 4 &pcfg_pull_up>;
1302 };
1303
1304 sdio1_int: sdio1-int {
1305 rockchip,pins = <3 31 4 &pcfg_pull_up>;
1306 };
1307
1308 sdio1_cmd: sdio1-cmd {
1309 rockchip,pins = <4 6 4 &pcfg_pull_up>;
1310 };
1311
1312 sdio1_clk: sdio1-clk {
1313 rockchip,pins = <4 7 4 &pcfg_pull_none>;
1314 };
1315
1316 sdio1_pwr: sdio1-pwr {
1317 rockchip,pins = <4 9 4 &pcfg_pull_up>;
1318 };
1319 };
1320
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001321 emmc {
1322 emmc_clk: emmc-clk {
1323 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1324 };
1325
1326 emmc_cmd: emmc-cmd {
1327 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1328 };
1329
1330 emmc_pwr: emmc-pwr {
1331 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1332 };
1333
1334 emmc_bus1: emmc-bus1 {
1335 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1336 };
1337
1338 emmc_bus4: emmc-bus4 {
1339 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1340 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1341 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1342 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1343 };
1344
1345 emmc_bus8: emmc-bus8 {
1346 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1347 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1348 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1349 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1350 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1351 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1352 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1353 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1354 };
1355 };
1356
huang lin1f531702014-09-05 09:53:11 -07001357 spi0 {
1358 spi0_clk: spi0-clk {
1359 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1360 };
1361 spi0_cs0: spi0-cs0 {
1362 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1363 };
1364 spi0_tx: spi0-tx {
1365 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1366 };
1367 spi0_rx: spi0-rx {
1368 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1369 };
1370 spi0_cs1: spi0-cs1 {
1371 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1372 };
1373 };
1374 spi1 {
1375 spi1_clk: spi1-clk {
1376 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1377 };
1378 spi1_cs0: spi1-cs0 {
1379 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1380 };
1381 spi1_rx: spi1-rx {
1382 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1383 };
1384 spi1_tx: spi1-tx {
1385 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1386 };
1387 };
1388
1389 spi2 {
1390 spi2_cs1: spi2-cs1 {
1391 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1392 };
1393 spi2_clk: spi2-clk {
1394 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1395 };
1396 spi2_cs0: spi2-cs0 {
1397 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1398 };
1399 spi2_rx: spi2-rx {
1400 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1401 };
1402 spi2_tx: spi2-tx {
1403 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1404 };
1405 };
1406
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001407 uart0 {
1408 uart0_xfer: uart0-xfer {
1409 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1410 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1411 };
1412
1413 uart0_cts: uart0-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001414 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001415 };
1416
1417 uart0_rts: uart0-rts {
1418 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1419 };
1420 };
1421
1422 uart1 {
1423 uart1_xfer: uart1-xfer {
1424 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1425 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1426 };
1427
1428 uart1_cts: uart1-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001429 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001430 };
1431
1432 uart1_rts: uart1-rts {
1433 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1434 };
1435 };
1436
1437 uart2 {
1438 uart2_xfer: uart2-xfer {
1439 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1440 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1441 };
1442 /* no rts / cts for uart2 */
1443 };
1444
1445 uart3 {
1446 uart3_xfer: uart3-xfer {
1447 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1448 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1449 };
1450
1451 uart3_cts: uart3-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001452 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001453 };
1454
1455 uart3_rts: uart3-rts {
1456 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1457 };
1458 };
1459
1460 uart4 {
1461 uart4_xfer: uart4-xfer {
1462 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1463 <5 13 3 &pcfg_pull_none>;
1464 };
1465
1466 uart4_cts: uart4-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001467 rockchip,pins = <5 14 3 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001468 };
1469
1470 uart4_rts: uart4-rts {
1471 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1472 };
1473 };
Doug Andersondf542df2014-08-25 15:59:26 -07001474
Caesar Wangb67d6bc2014-11-24 12:59:01 +08001475 tsadc {
Caesar Wang784359b2015-10-23 19:25:28 +08001476 otp_gpio: otp-gpio {
1477 rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
1478 };
1479
Caesar Wangb67d6bc2014-11-24 12:59:01 +08001480 otp_out: otp-out {
1481 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1482 };
1483 };
1484
Doug Andersondf542df2014-08-25 15:59:26 -07001485 pwm0 {
1486 pwm0_pin: pwm0-pin {
1487 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1488 };
1489 };
1490
1491 pwm1 {
1492 pwm1_pin: pwm1-pin {
1493 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1494 };
1495 };
1496
1497 pwm2 {
1498 pwm2_pin: pwm2-pin {
1499 rockchip,pins = <7 22 3 &pcfg_pull_none>;
1500 };
1501 };
1502
1503 pwm3 {
1504 pwm3_pin: pwm3-pin {
1505 rockchip,pins = <7 23 3 &pcfg_pull_none>;
1506 };
1507 };
Roger Chen3d3fb74a2014-12-29 17:44:16 +08001508
1509 gmac {
1510 rgmii_pins: rgmii-pins {
1511 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1512 <3 31 3 &pcfg_pull_none>,
1513 <3 26 3 &pcfg_pull_none>,
1514 <3 27 3 &pcfg_pull_none>,
1515 <3 28 3 &pcfg_pull_none_12ma>,
1516 <3 29 3 &pcfg_pull_none_12ma>,
1517 <3 24 3 &pcfg_pull_none_12ma>,
1518 <3 25 3 &pcfg_pull_none_12ma>,
1519 <4 0 3 &pcfg_pull_none>,
1520 <4 5 3 &pcfg_pull_none>,
1521 <4 6 3 &pcfg_pull_none>,
1522 <4 9 3 &pcfg_pull_none_12ma>,
1523 <4 4 3 &pcfg_pull_none_12ma>,
1524 <4 1 3 &pcfg_pull_none>,
1525 <4 3 3 &pcfg_pull_none>;
1526 };
1527
1528 rmii_pins: rmii-pins {
1529 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1530 <3 31 3 &pcfg_pull_none>,
1531 <3 28 3 &pcfg_pull_none>,
1532 <3 29 3 &pcfg_pull_none>,
1533 <4 0 3 &pcfg_pull_none>,
1534 <4 5 3 &pcfg_pull_none>,
1535 <4 4 3 &pcfg_pull_none>,
1536 <4 1 3 &pcfg_pull_none>,
1537 <4 2 3 &pcfg_pull_none>,
1538 <4 3 3 &pcfg_pull_none>;
1539 };
1540 };
Sjoerd Simons874e5682015-10-08 15:31:17 +02001541
1542 spdif {
1543 spdif_tx: spdif-tx {
1544 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1545 };
1546 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001547 };
1548};