blob: ee4085dd7007239c72146a656f979762b8e142cb [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 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200662 pd_vio@RK3288_PD_VIO {
Caesar Wangb63af762015-09-08 14:18:23 +0800663 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 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200695 pd_hevc@RK3288_PD_HEVC {
Caesar Wangb63af762015-09-08 14:18:23 +0800696 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 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200707 pd_video@RK3288_PD_VIDEO {
Caesar Wangb63af762015-09-08 14:18:23 +0800708 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 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200717 pd_gpu@RK3288_PD_GPU {
Caesar Wangb63af762015-09-08 14:18:23 +0800718 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";
John Keeping57dcfa52016-02-23 13:41:00 +0000768 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
Sjoerd Simons874e5682015-10-08 15:31:17 +0200769 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>;
John Keeping57dcfa52016-02-23 13:41:00 +0000778 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
Jianquna0f95e32014-09-12 18:54:55 +0800779 #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>;
John Keeping5415ba42016-02-23 13:40:59 +0000881 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
Chris Zhongcab6f072016-01-06 12:03:56 +0800882 clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
883 clock-names = "ref", "pclk";
John Keeping1946a202016-02-23 12:39:41 +0000884 power-domains = <&power RK3288_PD_VIO>;
Chris Zhongcab6f072016-01-06 12:03:56 +0800885 rockchip,grf = <&grf>;
886 #address-cells = <1>;
887 #size-cells = <0>;
888 status = "disabled";
889
890 ports {
891 #address-cells = <1>;
892 #size-cells = <0>;
893 reg = <1>;
894
895 mipi_in: port {
896 #address-cells = <1>;
897 #size-cells = <0>;
898 mipi_in_vopb: endpoint@0 {
899 reg = <0>;
900 remote-endpoint = <&vopb_out_mipi>;
901 };
902 mipi_in_vopl: endpoint@1 {
903 reg = <1>;
904 remote-endpoint = <&vopl_out_mipi>;
905 };
906 };
907 };
908 };
909
Andy Yand5a1df42014-11-04 13:13:14 +0800910 hdmi: hdmi@ff980000 {
911 compatible = "rockchip,rk3288-dw-hdmi";
912 reg = <0xff980000 0x20000>;
913 reg-io-width = <4>;
Andy Yand5a1df42014-11-04 13:13:14 +0800914 rockchip,grf = <&grf>;
915 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
916 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
917 clock-names = "iahb", "isfr";
Caesar Wangb63af762015-09-08 14:18:23 +0800918 power-domains = <&power RK3288_PD_VIO>;
Andy Yand5a1df42014-11-04 13:13:14 +0800919 status = "disabled";
920
921 ports {
922 hdmi_in: port {
923 #address-cells = <1>;
924 #size-cells = <0>;
925 hdmi_in_vopb: endpoint@0 {
926 reg = <0>;
927 remote-endpoint = <&vopb_out_hdmi>;
928 };
929 hdmi_in_vopl: endpoint@1 {
930 reg = <1>;
931 remote-endpoint = <&vopl_out_hdmi>;
932 };
933 };
934 };
935 };
936
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200937 gic: interrupt-controller@ffc01000 {
938 compatible = "arm,gic-400";
939 interrupt-controller;
940 #interrupt-cells = <3>;
941 #address-cells = <0>;
942
943 reg = <0xffc01000 0x1000>,
944 <0xffc02000 0x1000>,
945 <0xffc04000 0x2000>,
946 <0xffc06000 0x2000>;
947 interrupts = <GIC_PPI 9 0xf04>;
948 };
949
ZhengShunQian88185552015-08-11 18:13:44 +0800950 efuse: efuse@ffb40000 {
951 compatible = "rockchip,rockchip-efuse";
952 reg = <0xffb40000 0x20>;
953 #address-cells = <1>;
954 #size-cells = <1>;
955 clocks = <&cru PCLK_EFUSE256>;
956 clock-names = "pclk_efuse";
957
958 cpu_leakage: cpu_leakage@17 {
959 reg = <0x17 0x1>;
960 };
961 };
962
Yunzhi Lif6db7022014-12-12 23:12:21 +0800963 usbphy: phy {
964 compatible = "rockchip,rk3288-usb-phy";
965 rockchip,grf = <&grf>;
966 #address-cells = <1>;
967 #size-cells = <0>;
968 status = "disabled";
969
Heiko Stuebnera8f0fa22016-03-31 20:12:14 +0200970 usbphy0: usb-phy@320 {
Yunzhi Lif6db7022014-12-12 23:12:21 +0800971 #phy-cells = <0>;
972 reg = <0x320>;
973 clocks = <&cru SCLK_OTGPHY0>;
974 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +0100975 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800976 };
977
Heiko Stuebnera8f0fa22016-03-31 20:12:14 +0200978 usbphy1: usb-phy@334 {
Yunzhi Lif6db7022014-12-12 23:12:21 +0800979 #phy-cells = <0>;
980 reg = <0x334>;
981 clocks = <&cru SCLK_OTGPHY1>;
982 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +0100983 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800984 };
985
Heiko Stuebnera8f0fa22016-03-31 20:12:14 +0200986 usbphy2: usb-phy@348 {
Yunzhi Lif6db7022014-12-12 23:12:21 +0800987 #phy-cells = <0>;
988 reg = <0x348>;
989 clocks = <&cru SCLK_OTGPHY2>;
990 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +0100991 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800992 };
993 };
994
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200995 pinctrl: pinctrl {
996 compatible = "rockchip,rk3288-pinctrl";
997 rockchip,grf = <&grf>;
998 rockchip,pmu = <&pmu>;
999 #address-cells = <1>;
1000 #size-cells = <1>;
1001 ranges;
1002
1003 gpio0: gpio0@ff750000 {
1004 compatible = "rockchip,gpio-bank";
1005 reg = <0xff750000 0x100>;
1006 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1007 clocks = <&cru PCLK_GPIO0>;
1008
1009 gpio-controller;
1010 #gpio-cells = <2>;
1011
1012 interrupt-controller;
1013 #interrupt-cells = <2>;
1014 };
1015
1016 gpio1: gpio1@ff780000 {
1017 compatible = "rockchip,gpio-bank";
1018 reg = <0xff780000 0x100>;
1019 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1020 clocks = <&cru PCLK_GPIO1>;
1021
1022 gpio-controller;
1023 #gpio-cells = <2>;
1024
1025 interrupt-controller;
1026 #interrupt-cells = <2>;
1027 };
1028
1029 gpio2: gpio2@ff790000 {
1030 compatible = "rockchip,gpio-bank";
1031 reg = <0xff790000 0x100>;
1032 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1033 clocks = <&cru PCLK_GPIO2>;
1034
1035 gpio-controller;
1036 #gpio-cells = <2>;
1037
1038 interrupt-controller;
1039 #interrupt-cells = <2>;
1040 };
1041
1042 gpio3: gpio3@ff7a0000 {
1043 compatible = "rockchip,gpio-bank";
1044 reg = <0xff7a0000 0x100>;
1045 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1046 clocks = <&cru PCLK_GPIO3>;
1047
1048 gpio-controller;
1049 #gpio-cells = <2>;
1050
1051 interrupt-controller;
1052 #interrupt-cells = <2>;
1053 };
1054
1055 gpio4: gpio4@ff7b0000 {
1056 compatible = "rockchip,gpio-bank";
1057 reg = <0xff7b0000 0x100>;
1058 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1059 clocks = <&cru PCLK_GPIO4>;
1060
1061 gpio-controller;
1062 #gpio-cells = <2>;
1063
1064 interrupt-controller;
1065 #interrupt-cells = <2>;
1066 };
1067
1068 gpio5: gpio5@ff7c0000 {
1069 compatible = "rockchip,gpio-bank";
1070 reg = <0xff7c0000 0x100>;
1071 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1072 clocks = <&cru PCLK_GPIO5>;
1073
1074 gpio-controller;
1075 #gpio-cells = <2>;
1076
1077 interrupt-controller;
1078 #interrupt-cells = <2>;
1079 };
1080
1081 gpio6: gpio6@ff7d0000 {
1082 compatible = "rockchip,gpio-bank";
1083 reg = <0xff7d0000 0x100>;
1084 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1085 clocks = <&cru PCLK_GPIO6>;
1086
1087 gpio-controller;
1088 #gpio-cells = <2>;
1089
1090 interrupt-controller;
1091 #interrupt-cells = <2>;
1092 };
1093
1094 gpio7: gpio7@ff7e0000 {
1095 compatible = "rockchip,gpio-bank";
1096 reg = <0xff7e0000 0x100>;
1097 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1098 clocks = <&cru PCLK_GPIO7>;
1099
1100 gpio-controller;
1101 #gpio-cells = <2>;
1102
1103 interrupt-controller;
1104 #interrupt-cells = <2>;
1105 };
1106
1107 gpio8: gpio8@ff7f0000 {
1108 compatible = "rockchip,gpio-bank";
1109 reg = <0xff7f0000 0x100>;
1110 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1111 clocks = <&cru PCLK_GPIO8>;
1112
1113 gpio-controller;
1114 #gpio-cells = <2>;
1115
1116 interrupt-controller;
1117 #interrupt-cells = <2>;
1118 };
1119
Douglas Andersone61ccb12015-09-02 14:54:22 -07001120 hdmi {
1121 hdmi_ddc: hdmi-ddc {
1122 rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1123 <7 20 RK_FUNC_2 &pcfg_pull_none>;
1124 };
1125 };
1126
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001127 pcfg_pull_up: pcfg-pull-up {
1128 bias-pull-up;
1129 };
1130
1131 pcfg_pull_down: pcfg-pull-down {
1132 bias-pull-down;
1133 };
1134
1135 pcfg_pull_none: pcfg-pull-none {
1136 bias-disable;
1137 };
1138
Roger Chen3d3fb74a2014-12-29 17:44:16 +08001139 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1140 bias-disable;
1141 drive-strength = <12>;
1142 };
1143
Chris Zhongeecfe982014-12-01 16:52:19 +08001144 sleep {
1145 global_pwroff: global-pwroff {
1146 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1147 };
1148
1149 ddrio_pwroff: ddrio-pwroff {
1150 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1151 };
1152
1153 ddr0_retention: ddr0-retention {
1154 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1155 };
1156
1157 ddr1_retention: ddr1-retention {
1158 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1159 };
1160 };
1161
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001162 i2c0 {
1163 i2c0_xfer: i2c0-xfer {
1164 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1165 <0 16 RK_FUNC_1 &pcfg_pull_none>;
1166 };
1167 };
1168
1169 i2c1 {
1170 i2c1_xfer: i2c1-xfer {
1171 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1172 <8 5 RK_FUNC_1 &pcfg_pull_none>;
1173 };
1174 };
1175
1176 i2c2 {
1177 i2c2_xfer: i2c2-xfer {
1178 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1179 <6 10 RK_FUNC_1 &pcfg_pull_none>;
1180 };
1181 };
1182
1183 i2c3 {
1184 i2c3_xfer: i2c3-xfer {
1185 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1186 <2 17 RK_FUNC_1 &pcfg_pull_none>;
1187 };
1188 };
1189
1190 i2c4 {
1191 i2c4_xfer: i2c4-xfer {
1192 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1193 <7 18 RK_FUNC_1 &pcfg_pull_none>;
1194 };
1195 };
1196
1197 i2c5 {
1198 i2c5_xfer: i2c5-xfer {
1199 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1200 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1201 };
1202 };
1203
Jianquna0f95e32014-09-12 18:54:55 +08001204 i2s0 {
1205 i2s0_bus: i2s0-bus {
1206 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1207 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1208 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1209 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1210 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1211 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1212 };
1213 };
1214
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001215 sdmmc {
1216 sdmmc_clk: sdmmc-clk {
1217 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1218 };
1219
1220 sdmmc_cmd: sdmmc-cmd {
1221 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1222 };
1223
Matthias Bruggerd59df5d2015-12-11 15:45:58 +01001224 sdmmc_cd: sdmmc-cd {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001225 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1226 };
1227
1228 sdmmc_bus1: sdmmc-bus1 {
1229 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1230 };
1231
1232 sdmmc_bus4: sdmmc-bus4 {
1233 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1234 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1235 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1236 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1237 };
1238 };
1239
Addy Kef1a07232014-08-19 18:21:08 +08001240 sdio0 {
1241 sdio0_bus1: sdio0-bus1 {
1242 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1243 };
1244
1245 sdio0_bus4: sdio0-bus4 {
1246 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1247 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1248 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1249 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1250 };
1251
1252 sdio0_cmd: sdio0-cmd {
1253 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1254 };
1255
1256 sdio0_clk: sdio0-clk {
1257 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1258 };
1259
1260 sdio0_cd: sdio0-cd {
1261 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1262 };
1263
1264 sdio0_wp: sdio0-wp {
1265 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1266 };
1267
1268 sdio0_pwr: sdio0-pwr {
1269 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1270 };
1271
1272 sdio0_bkpwr: sdio0-bkpwr {
1273 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1274 };
1275
1276 sdio0_int: sdio0-int {
1277 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1278 };
1279 };
1280
1281 sdio1 {
1282 sdio1_bus1: sdio1-bus1 {
1283 rockchip,pins = <3 24 4 &pcfg_pull_up>;
1284 };
1285
1286 sdio1_bus4: sdio1-bus4 {
1287 rockchip,pins = <3 24 4 &pcfg_pull_up>,
1288 <3 25 4 &pcfg_pull_up>,
1289 <3 26 4 &pcfg_pull_up>,
1290 <3 27 4 &pcfg_pull_up>;
1291 };
1292
1293 sdio1_cd: sdio1-cd {
1294 rockchip,pins = <3 28 4 &pcfg_pull_up>;
1295 };
1296
1297 sdio1_wp: sdio1-wp {
1298 rockchip,pins = <3 29 4 &pcfg_pull_up>;
1299 };
1300
1301 sdio1_bkpwr: sdio1-bkpwr {
1302 rockchip,pins = <3 30 4 &pcfg_pull_up>;
1303 };
1304
1305 sdio1_int: sdio1-int {
1306 rockchip,pins = <3 31 4 &pcfg_pull_up>;
1307 };
1308
1309 sdio1_cmd: sdio1-cmd {
1310 rockchip,pins = <4 6 4 &pcfg_pull_up>;
1311 };
1312
1313 sdio1_clk: sdio1-clk {
1314 rockchip,pins = <4 7 4 &pcfg_pull_none>;
1315 };
1316
1317 sdio1_pwr: sdio1-pwr {
1318 rockchip,pins = <4 9 4 &pcfg_pull_up>;
1319 };
1320 };
1321
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001322 emmc {
1323 emmc_clk: emmc-clk {
1324 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1325 };
1326
1327 emmc_cmd: emmc-cmd {
1328 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1329 };
1330
1331 emmc_pwr: emmc-pwr {
1332 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1333 };
1334
1335 emmc_bus1: emmc-bus1 {
1336 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1337 };
1338
1339 emmc_bus4: emmc-bus4 {
1340 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1341 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1342 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1343 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1344 };
1345
1346 emmc_bus8: emmc-bus8 {
1347 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1348 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1349 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1350 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1351 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1352 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1353 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1354 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1355 };
1356 };
1357
huang lin1f531702014-09-05 09:53:11 -07001358 spi0 {
1359 spi0_clk: spi0-clk {
1360 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1361 };
1362 spi0_cs0: spi0-cs0 {
1363 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1364 };
1365 spi0_tx: spi0-tx {
1366 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1367 };
1368 spi0_rx: spi0-rx {
1369 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1370 };
1371 spi0_cs1: spi0-cs1 {
1372 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1373 };
1374 };
1375 spi1 {
1376 spi1_clk: spi1-clk {
1377 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1378 };
1379 spi1_cs0: spi1-cs0 {
1380 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1381 };
1382 spi1_rx: spi1-rx {
1383 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1384 };
1385 spi1_tx: spi1-tx {
1386 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1387 };
1388 };
1389
1390 spi2 {
1391 spi2_cs1: spi2-cs1 {
1392 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1393 };
1394 spi2_clk: spi2-clk {
1395 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1396 };
1397 spi2_cs0: spi2-cs0 {
1398 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1399 };
1400 spi2_rx: spi2-rx {
1401 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1402 };
1403 spi2_tx: spi2-tx {
1404 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1405 };
1406 };
1407
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001408 uart0 {
1409 uart0_xfer: uart0-xfer {
1410 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1411 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1412 };
1413
1414 uart0_cts: uart0-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001415 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001416 };
1417
1418 uart0_rts: uart0-rts {
1419 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1420 };
1421 };
1422
1423 uart1 {
1424 uart1_xfer: uart1-xfer {
1425 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1426 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1427 };
1428
1429 uart1_cts: uart1-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001430 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001431 };
1432
1433 uart1_rts: uart1-rts {
1434 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1435 };
1436 };
1437
1438 uart2 {
1439 uart2_xfer: uart2-xfer {
1440 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1441 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1442 };
1443 /* no rts / cts for uart2 */
1444 };
1445
1446 uart3 {
1447 uart3_xfer: uart3-xfer {
1448 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1449 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1450 };
1451
1452 uart3_cts: uart3-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001453 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001454 };
1455
1456 uart3_rts: uart3-rts {
1457 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1458 };
1459 };
1460
1461 uart4 {
1462 uart4_xfer: uart4-xfer {
1463 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1464 <5 13 3 &pcfg_pull_none>;
1465 };
1466
1467 uart4_cts: uart4-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001468 rockchip,pins = <5 14 3 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001469 };
1470
1471 uart4_rts: uart4-rts {
1472 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1473 };
1474 };
Doug Andersondf542df2014-08-25 15:59:26 -07001475
Caesar Wangb67d6bc2014-11-24 12:59:01 +08001476 tsadc {
Caesar Wang784359b2015-10-23 19:25:28 +08001477 otp_gpio: otp-gpio {
1478 rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
1479 };
1480
Caesar Wangb67d6bc2014-11-24 12:59:01 +08001481 otp_out: otp-out {
1482 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1483 };
1484 };
1485
Doug Andersondf542df2014-08-25 15:59:26 -07001486 pwm0 {
1487 pwm0_pin: pwm0-pin {
1488 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1489 };
1490 };
1491
1492 pwm1 {
1493 pwm1_pin: pwm1-pin {
1494 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1495 };
1496 };
1497
1498 pwm2 {
1499 pwm2_pin: pwm2-pin {
1500 rockchip,pins = <7 22 3 &pcfg_pull_none>;
1501 };
1502 };
1503
1504 pwm3 {
1505 pwm3_pin: pwm3-pin {
1506 rockchip,pins = <7 23 3 &pcfg_pull_none>;
1507 };
1508 };
Roger Chen3d3fb74a2014-12-29 17:44:16 +08001509
1510 gmac {
1511 rgmii_pins: rgmii-pins {
1512 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1513 <3 31 3 &pcfg_pull_none>,
1514 <3 26 3 &pcfg_pull_none>,
1515 <3 27 3 &pcfg_pull_none>,
1516 <3 28 3 &pcfg_pull_none_12ma>,
1517 <3 29 3 &pcfg_pull_none_12ma>,
1518 <3 24 3 &pcfg_pull_none_12ma>,
1519 <3 25 3 &pcfg_pull_none_12ma>,
1520 <4 0 3 &pcfg_pull_none>,
1521 <4 5 3 &pcfg_pull_none>,
1522 <4 6 3 &pcfg_pull_none>,
1523 <4 9 3 &pcfg_pull_none_12ma>,
1524 <4 4 3 &pcfg_pull_none_12ma>,
1525 <4 1 3 &pcfg_pull_none>,
1526 <4 3 3 &pcfg_pull_none>;
1527 };
1528
1529 rmii_pins: rmii-pins {
1530 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1531 <3 31 3 &pcfg_pull_none>,
1532 <3 28 3 &pcfg_pull_none>,
1533 <3 29 3 &pcfg_pull_none>,
1534 <4 0 3 &pcfg_pull_none>,
1535 <4 5 3 &pcfg_pull_none>,
1536 <4 4 3 &pcfg_pull_none>,
1537 <4 1 3 &pcfg_pull_none>,
1538 <4 2 3 &pcfg_pull_none>,
1539 <4 3 3 &pcfg_pull_none>;
1540 };
1541 };
Sjoerd Simons874e5682015-10-08 15:31:17 +02001542
1543 spdif {
1544 spdif_tx: spdif-tx {
1545 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1546 };
1547 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001548 };
1549};