blob: cd33f017089001469df88ff6077253cb477afdb7 [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 {
Caesar Wangf87305f2016-04-22 18:02:53 +0800448 reserve_thermal: reserve_thermal {
449 polling-delay-passive = <1000>; /* milliseconds */
450 polling-delay = <5000>; /* milliseconds */
451
452 thermal-sensors = <&tsadc 0>;
453 };
454
455 cpu_thermal: cpu_thermal {
456 polling-delay-passive = <100>; /* milliseconds */
457 polling-delay = <5000>; /* milliseconds */
458
459 thermal-sensors = <&tsadc 1>;
460
461 trips {
462 cpu_alert0: cpu_alert0 {
463 temperature = <70000>; /* millicelsius */
464 hysteresis = <2000>; /* millicelsius */
465 type = "passive";
466 };
467 cpu_alert1: cpu_alert1 {
468 temperature = <75000>; /* millicelsius */
469 hysteresis = <2000>; /* millicelsius */
470 type = "passive";
471 };
472 cpu_crit: cpu_crit {
473 temperature = <90000>; /* millicelsius */
474 hysteresis = <2000>; /* millicelsius */
475 type = "critical";
476 };
477 };
478
479 cooling-maps {
480 map0 {
481 trip = <&cpu_alert0>;
482 cooling-device =
483 <&cpu0 THERMAL_NO_LIMIT 6>;
484 };
485 map1 {
486 trip = <&cpu_alert1>;
487 cooling-device =
488 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
489 };
490 };
491 };
492
493 gpu_thermal: gpu_thermal {
494 polling-delay-passive = <100>; /* milliseconds */
495 polling-delay = <5000>; /* milliseconds */
496
497 thermal-sensors = <&tsadc 2>;
498
499 trips {
500 gpu_alert0: gpu_alert0 {
501 temperature = <70000>; /* millicelsius */
502 hysteresis = <2000>; /* millicelsius */
503 type = "passive";
504 };
505 gpu_crit: gpu_crit {
506 temperature = <90000>; /* millicelsius */
507 hysteresis = <2000>; /* millicelsius */
508 type = "critical";
509 };
510 };
511
512 cooling-maps {
513 map0 {
514 trip = <&gpu_alert0>;
515 cooling-device =
516 <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
517 };
518 };
519 };
Caesar Wangb67d6bc2014-11-24 12:59:01 +0800520 };
521
522 tsadc: tsadc@ff280000 {
523 compatible = "rockchip,rk3288-tsadc";
524 reg = <0xff280000 0x100>;
525 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
526 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
527 clock-names = "tsadc", "apb_pclk";
528 resets = <&cru SRST_TSADC>;
529 reset-names = "tsadc-apb";
Caesar Wang784359b2015-10-23 19:25:28 +0800530 pinctrl-names = "init", "default", "sleep";
531 pinctrl-0 = <&otp_gpio>;
532 pinctrl-1 = <&otp_out>;
533 pinctrl-2 = <&otp_gpio>;
Caesar Wangb67d6bc2014-11-24 12:59:01 +0800534 #thermal-sensor-cells = <1>;
535 rockchip,hw-tshut-temp = <95000>;
536 status = "disabled";
537 };
538
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800539 gmac: ethernet@ff290000 {
540 compatible = "rockchip,rk3288-gmac";
541 reg = <0xff290000 0x10000>;
Vincent Palatind5bfbeb2016-06-15 11:32:23 -0700542 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
543 <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
544 interrupt-names = "macirq", "eth_wake_irq";
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800545 rockchip,grf = <&grf>;
546 clocks = <&cru SCLK_MAC>,
547 <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
548 <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
549 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
550 clock-names = "stmmaceth",
551 "mac_clk_rx", "mac_clk_tx",
552 "clk_mac_ref", "clk_mac_refout",
553 "aclk_mac", "pclk_mac";
Romain Periere6b54642015-06-20 12:27:16 +0000554 resets = <&cru SRST_MAC>;
555 reset-names = "stmmaceth";
Alexandru M Stan54b0bc62015-03-13 17:55:32 -0700556 status = "disabled";
Roger Chen3d3fb74a2014-12-29 17:44:16 +0800557 };
558
Doug Andersonc9c32c52014-08-07 17:44:19 +0200559 usb_host0_ehci: usb@ff500000 {
560 compatible = "generic-ehci";
561 reg = <0xff500000 0x100>;
562 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
563 clocks = <&cru HCLK_USBHOST0>;
564 clock-names = "usbhost";
Yunzhi Lif6db7022014-12-12 23:12:21 +0800565 phys = <&usbphy1>;
566 phy-names = "usb";
Doug Andersonc9c32c52014-08-07 17:44:19 +0200567 status = "disabled";
568 };
569
570 /* NOTE: ohci@ff520000 doesn't actually work on hardware */
571
Kever Yang12dd3652014-08-08 11:55:58 +0800572 usb_host1: usb@ff540000 {
573 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
574 "snps,dwc2";
575 reg = <0xff540000 0x40000>;
576 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
577 clocks = <&cru HCLK_USBHOST1>;
578 clock-names = "otg";
Yunzhi Licabd2ea2015-04-26 17:41:38 +0800579 dr_mode = "host";
Yunzhi Lif6db7022014-12-12 23:12:21 +0800580 phys = <&usbphy2>;
581 phy-names = "usb2-phy";
Kever Yang12dd3652014-08-08 11:55:58 +0800582 status = "disabled";
583 };
584
585 usb_otg: usb@ff580000 {
586 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
587 "snps,dwc2";
588 reg = <0xff580000 0x40000>;
589 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
590 clocks = <&cru HCLK_OTG0>;
591 clock-names = "otg";
Yunzhi Licabd2ea2015-04-26 17:41:38 +0800592 dr_mode = "otg";
593 g-np-tx-fifo-size = <16>;
594 g-rx-fifo-size = <275>;
595 g-tx-fifo-size = <256 128 128 64 64 32>;
596 g-use-dma;
Yunzhi Lif6db7022014-12-12 23:12:21 +0800597 phys = <&usbphy0>;
598 phy-names = "usb2-phy";
Kever Yang12dd3652014-08-08 11:55:58 +0800599 status = "disabled";
600 };
601
Doug Andersonc9c32c52014-08-07 17:44:19 +0200602 usb_hsic: usb@ff5c0000 {
603 compatible = "generic-ehci";
604 reg = <0xff5c0000 0x100>;
605 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
606 clocks = <&cru HCLK_HSIC>;
607 clock-names = "usbhost";
608 status = "disabled";
609 };
610
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200611 i2c0: i2c@ff650000 {
612 compatible = "rockchip,rk3288-i2c";
613 reg = <0xff650000 0x1000>;
614 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
615 #address-cells = <1>;
616 #size-cells = <0>;
617 clock-names = "i2c";
618 clocks = <&cru PCLK_I2C0>;
619 pinctrl-names = "default";
620 pinctrl-0 = <&i2c0_xfer>;
621 status = "disabled";
622 };
623
624 i2c2: i2c@ff660000 {
625 compatible = "rockchip,rk3288-i2c";
626 reg = <0xff660000 0x1000>;
627 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
628 #address-cells = <1>;
629 #size-cells = <0>;
630 clock-names = "i2c";
631 clocks = <&cru PCLK_I2C2>;
632 pinctrl-names = "default";
633 pinctrl-0 = <&i2c2_xfer>;
634 status = "disabled";
635 };
636
Doug Andersondf542df2014-08-25 15:59:26 -0700637 pwm0: pwm@ff680000 {
638 compatible = "rockchip,rk3288-pwm";
639 reg = <0xff680000 0x10>;
640 #pwm-cells = <3>;
641 pinctrl-names = "default";
642 pinctrl-0 = <&pwm0_pin>;
643 clocks = <&cru PCLK_PWM>;
644 clock-names = "pwm";
645 status = "disabled";
646 };
647
648 pwm1: pwm@ff680010 {
649 compatible = "rockchip,rk3288-pwm";
650 reg = <0xff680010 0x10>;
651 #pwm-cells = <3>;
652 pinctrl-names = "default";
653 pinctrl-0 = <&pwm1_pin>;
654 clocks = <&cru PCLK_PWM>;
655 clock-names = "pwm";
656 status = "disabled";
657 };
658
659 pwm2: pwm@ff680020 {
660 compatible = "rockchip,rk3288-pwm";
661 reg = <0xff680020 0x10>;
662 #pwm-cells = <3>;
663 pinctrl-names = "default";
664 pinctrl-0 = <&pwm2_pin>;
665 clocks = <&cru PCLK_PWM>;
666 clock-names = "pwm";
667 status = "disabled";
668 };
669
670 pwm3: pwm@ff680030 {
671 compatible = "rockchip,rk3288-pwm";
672 reg = <0xff680030 0x10>;
673 #pwm-cells = <2>;
674 pinctrl-names = "default";
675 pinctrl-0 = <&pwm3_pin>;
676 clocks = <&cru PCLK_PWM>;
677 clock-names = "pwm";
678 status = "disabled";
679 };
680
Kever Yang1123d412014-10-15 10:23:04 -0700681 bus_intmem@ff700000 {
682 compatible = "mmio-sram";
683 reg = <0xff700000 0x18000>;
684 #address-cells = <1>;
685 #size-cells = <1>;
686 ranges = <0 0xff700000 0x18000>;
687 smp-sram@0 {
688 compatible = "rockchip,rk3066-smp-sram";
689 reg = <0x00 0x10>;
690 };
691 };
692
Chris Zhongeecfe982014-12-01 16:52:19 +0800693 sram@ff720000 {
694 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
695 reg = <0xff720000 0x1000>;
696 };
697
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200698 pmu: power-management@ff730000 {
Caesar Wangb63af762015-09-08 14:18:23 +0800699 compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200700 reg = <0xff730000 0x100>;
Caesar Wangb63af762015-09-08 14:18:23 +0800701
702 power: power-controller {
703 compatible = "rockchip,rk3288-power-controller";
704 #power-domain-cells = <1>;
705 #address-cells = <1>;
706 #size-cells = <0>;
707
Sjoerd Simonsdf5ea012016-01-25 12:19:26 +0100708 assigned-clocks = <&cru SCLK_EDP_24M>;
709 assigned-clock-parents = <&xin24m>;
710
Caesar Wangb63af762015-09-08 14:18:23 +0800711 /*
712 * Note: Although SCLK_* are the working clocks
713 * of device without including on the NOC, needed for
714 * synchronous reset.
715 *
716 * The clocks on the which NOC:
717 * ACLK_IEP/ACLK_VIP/ACLK_VOP0 are on ACLK_VIO0_NIU.
718 * ACLK_ISP/ACLK_VOP1 are on ACLK_VIO1_NIU.
719 * ACLK_RGA is on ACLK_RGA_NIU.
720 * The others (HCLK_*,PLCK_*) are on HCLK_VIO_NIU.
721 *
722 * Which clock are device clocks:
723 * clocks devices
724 * *_IEP IEP:Image Enhancement Processor
725 * *_ISP ISP:Image Signal Processing
726 * *_VIP VIP:Video Input Processor
727 * *_VOP* VOP:Visual Output Processor
728 * *_RGA RGA
729 * *_EDP* EDP
730 * *_LVDS_* LVDS
731 * *_HDMI HDMI
732 * *_MIPI_* MIPI
733 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200734 pd_vio@RK3288_PD_VIO {
Caesar Wangb63af762015-09-08 14:18:23 +0800735 reg = <RK3288_PD_VIO>;
736 clocks = <&cru ACLK_IEP>,
737 <&cru ACLK_ISP>,
738 <&cru ACLK_RGA>,
739 <&cru ACLK_VIP>,
740 <&cru ACLK_VOP0>,
741 <&cru ACLK_VOP1>,
742 <&cru DCLK_VOP0>,
743 <&cru DCLK_VOP1>,
744 <&cru HCLK_IEP>,
745 <&cru HCLK_ISP>,
746 <&cru HCLK_RGA>,
747 <&cru HCLK_VIP>,
748 <&cru HCLK_VOP0>,
749 <&cru HCLK_VOP1>,
750 <&cru PCLK_EDP_CTRL>,
751 <&cru PCLK_HDMI_CTRL>,
752 <&cru PCLK_LVDS_PHY>,
753 <&cru PCLK_MIPI_CSI>,
754 <&cru PCLK_MIPI_DSI0>,
755 <&cru PCLK_MIPI_DSI1>,
756 <&cru SCLK_EDP_24M>,
757 <&cru SCLK_EDP>,
758 <&cru SCLK_ISP_JPE>,
759 <&cru SCLK_ISP>,
760 <&cru SCLK_RGA>;
761 };
762
763 /*
764 * Note: The following 3 are HEVC(H.265) clocks,
765 * and on the ACLK_HEVC_NIU (NOC).
766 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200767 pd_hevc@RK3288_PD_HEVC {
Caesar Wangb63af762015-09-08 14:18:23 +0800768 reg = <RK3288_PD_HEVC>;
769 clocks = <&cru ACLK_HEVC>,
770 <&cru SCLK_HEVC_CABAC>,
771 <&cru SCLK_HEVC_CORE>;
772 };
773
774 /*
775 * Note: ACLK_VCODEC/HCLK_VCODEC are VCODEC
776 * (video endecoder & decoder) clocks that on the
777 * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
778 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200779 pd_video@RK3288_PD_VIDEO {
Caesar Wangb63af762015-09-08 14:18:23 +0800780 reg = <RK3288_PD_VIDEO>;
781 clocks = <&cru ACLK_VCODEC>,
782 <&cru HCLK_VCODEC>;
783 };
784
785 /*
786 * Note: ACLK_GPU is the GPU clock,
787 * and on the ACLK_GPU_NIU (NOC).
788 */
Heiko Stuebner95cface2016-03-31 19:28:26 +0200789 pd_gpu@RK3288_PD_GPU {
Caesar Wangb63af762015-09-08 14:18:23 +0800790 reg = <RK3288_PD_GPU>;
791 clocks = <&cru ACLK_GPU>;
792 };
793 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200794 };
795
796 sgrf: syscon@ff740000 {
797 compatible = "rockchip,rk3288-sgrf", "syscon";
798 reg = <0xff740000 0x1000>;
799 };
800
801 cru: clock-controller@ff760000 {
802 compatible = "rockchip,rk3288-cru";
803 reg = <0xff760000 0x1000>;
804 rockchip,grf = <&grf>;
805 #clock-cells = <1>;
806 #reset-cells = <1>;
Kever Yangcd78d0c2014-10-09 21:50:30 -0700807 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
808 <&cru PLL_NPLL>, <&cru ACLK_CPU>,
809 <&cru HCLK_CPU>, <&cru PCLK_CPU>,
810 <&cru ACLK_PERI>, <&cru HCLK_PERI>,
811 <&cru PCLK_PERI>;
812 assigned-clock-rates = <594000000>, <400000000>,
813 <500000000>, <300000000>,
814 <150000000>, <75000000>,
815 <300000000>, <150000000>,
816 <75000000>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200817 };
818
819 grf: syscon@ff770000 {
Heiko Stuebner6e38e6b2016-02-05 20:42:25 +0100820 compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200821 reg = <0xff770000 0x1000>;
Heiko Stuebner4b915452016-04-15 23:28:57 +0200822
823 edp_phy: edp-phy {
824 compatible = "rockchip,rk3288-dp-phy";
825 clocks = <&cru SCLK_EDP_24M>;
826 clock-names = "24m";
827 #phy-cells = <0>;
828 status = "disabled";
829 };
Heiko Stuebner3445b2f2016-05-21 01:36:17 +0200830
831 io_domains: io-domains {
832 compatible = "rockchip,rk3288-io-voltage-domain";
833 status = "disabled";
834 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200835 };
836
837 wdt: watchdog@ff800000 {
838 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
839 reg = <0xff800000 0x100>;
Heiko Stuebner39d05162015-01-20 21:12:16 +0100840 clocks = <&cru PCLK_WDT>;
Heiko Stuebner1a1b6982015-06-19 16:31:14 +0200841 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +0200842 status = "disabled";
843 };
844
Sjoerd Simons874e5682015-10-08 15:31:17 +0200845 spdif: sound@ff88b0000 {
846 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
847 reg = <0xff8b0000 0x10000>;
848 #sound-dai-cells = <0>;
849 clock-names = "hclk", "mclk";
850 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
851 dmas = <&dmac_bus_s 3>;
852 dma-names = "tx";
John Keeping57dcfa52016-02-23 13:41:00 +0000853 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
Sjoerd Simons874e5682015-10-08 15:31:17 +0200854 pinctrl-names = "default";
855 pinctrl-0 = <&spdif_tx>;
856 rockchip,grf = <&grf>;
857 status = "disabled";
858 };
859
Jianquna0f95e32014-09-12 18:54:55 +0800860 i2s: i2s@ff890000 {
861 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
862 reg = <0xff890000 0x10000>;
John Keeping57dcfa52016-02-23 13:41:00 +0000863 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
Jianquna0f95e32014-09-12 18:54:55 +0800864 #address-cells = <1>;
865 #size-cells = <0>;
866 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
867 dma-names = "tx", "rx";
868 clock-names = "i2s_hclk", "i2s_clk";
869 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
870 pinctrl-names = "default";
871 pinctrl-0 = <&i2s0_bus>;
Sugar Zhange2416572015-11-10 15:32:09 +0800872 rockchip,playback-channels = <8>;
873 rockchip,capture-channels = <2>;
Jianquna0f95e32014-09-12 18:54:55 +0800874 status = "disabled";
875 };
876
Zain Wangc2cb6162015-11-25 13:43:33 +0800877 crypto: cypto-controller@ff8a0000 {
878 compatible = "rockchip,rk3288-crypto";
879 reg = <0xff8a0000 0x4000>;
880 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
881 clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
882 <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
883 clock-names = "aclk", "hclk", "sclk", "apb_pclk";
884 resets = <&cru SRST_CRYPTO>;
885 reset-names = "crypto-rst";
886 status = "okay";
887 };
888
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800889 vopb: vop@ff930000 {
890 compatible = "rockchip,rk3288-vop";
891 reg = <0xff930000 0x19c>;
892 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
893 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
894 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
Caesar Wangb63af762015-09-08 14:18:23 +0800895 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800896 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
897 reset-names = "axi", "ahb", "dclk";
898 iommus = <&vopb_mmu>;
899 status = "disabled";
900
901 vopb_out: port {
902 #address-cells = <1>;
903 #size-cells = <0>;
Andy Yand5a1df42014-11-04 13:13:14 +0800904
905 vopb_out_hdmi: endpoint@0 {
906 reg = <0>;
907 remote-endpoint = <&hdmi_in_vopb>;
908 };
Heiko Stuebner6df7ec62015-10-28 10:55:19 +0100909
910 vopb_out_edp: endpoint@1 {
911 reg = <1>;
912 remote-endpoint = <&edp_in_vopb>;
913 };
914
Chris Zhongcab6f072016-01-06 12:03:56 +0800915 vopb_out_mipi: endpoint@2 {
916 reg = <2>;
917 remote-endpoint = <&mipi_in_vopb>;
918 };
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800919 };
920 };
921
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800922 vopb_mmu: iommu@ff930300 {
923 compatible = "rockchip,iommu";
924 reg = <0xff930300 0x100>;
925 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
926 interrupt-names = "vopb_mmu";
Caesar Wangb63af762015-09-08 14:18:23 +0800927 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800928 #iommu-cells = <0>;
929 status = "disabled";
930 };
931
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800932 vopl: vop@ff940000 {
933 compatible = "rockchip,rk3288-vop";
934 reg = <0xff940000 0x19c>;
935 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
936 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
937 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
Caesar Wangb63af762015-09-08 14:18:23 +0800938 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800939 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
940 reset-names = "axi", "ahb", "dclk";
941 iommus = <&vopl_mmu>;
942 status = "disabled";
943
944 vopl_out: port {
945 #address-cells = <1>;
946 #size-cells = <0>;
Andy Yand5a1df42014-11-04 13:13:14 +0800947
948 vopl_out_hdmi: endpoint@0 {
949 reg = <0>;
950 remote-endpoint = <&hdmi_in_vopl>;
951 };
Heiko Stuebner6df7ec62015-10-28 10:55:19 +0100952
953 vopl_out_edp: endpoint@1 {
954 reg = <1>;
955 remote-endpoint = <&edp_in_vopl>;
956 };
957
Chris Zhongcab6f072016-01-06 12:03:56 +0800958 vopl_out_mipi: endpoint@2 {
959 reg = <2>;
960 remote-endpoint = <&mipi_in_vopl>;
961 };
Daniel Kurtza29cb8c2014-10-10 20:26:14 +0800962 };
963 };
964
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800965 vopl_mmu: iommu@ff940300 {
966 compatible = "rockchip,iommu";
967 reg = <0xff940300 0x100>;
968 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
969 interrupt-names = "vopl_mmu";
Caesar Wangb63af762015-09-08 14:18:23 +0800970 power-domains = <&power RK3288_PD_VIO>;
Daniel Kurtz7cae0682014-11-03 10:53:29 +0800971 #iommu-cells = <0>;
972 status = "disabled";
973 };
974
Chris Zhongcab6f072016-01-06 12:03:56 +0800975 mipi_dsi: mipi@ff960000 {
976 compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
977 reg = <0xff960000 0x4000>;
John Keeping5415ba42016-02-23 13:40:59 +0000978 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
Chris Zhongcab6f072016-01-06 12:03:56 +0800979 clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
980 clock-names = "ref", "pclk";
John Keeping1946a202016-02-23 12:39:41 +0000981 power-domains = <&power RK3288_PD_VIO>;
Chris Zhongcab6f072016-01-06 12:03:56 +0800982 rockchip,grf = <&grf>;
983 #address-cells = <1>;
984 #size-cells = <0>;
985 status = "disabled";
986
987 ports {
Chris Zhongcab6f072016-01-06 12:03:56 +0800988 mipi_in: port {
989 #address-cells = <1>;
990 #size-cells = <0>;
991 mipi_in_vopb: endpoint@0 {
992 reg = <0>;
993 remote-endpoint = <&vopb_out_mipi>;
994 };
995 mipi_in_vopl: endpoint@1 {
996 reg = <1>;
997 remote-endpoint = <&vopl_out_mipi>;
998 };
999 };
1000 };
1001 };
1002
Heiko Stuebner6df7ec62015-10-28 10:55:19 +01001003 edp: dp@ff970000 {
1004 compatible = "rockchip,rk3288-dp";
1005 reg = <0xff970000 0x4000>;
1006 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1007 clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>;
1008 clock-names = "dp", "pclk";
1009 phys = <&edp_phy>;
1010 phy-names = "dp";
1011 resets = <&cru SRST_EDP>;
1012 reset-names = "dp";
1013 rockchip,grf = <&grf>;
1014 status = "disabled";
1015
1016 ports {
1017 #address-cells = <1>;
1018 #size-cells = <0>;
1019 edp_in: port@0 {
1020 reg = <0>;
1021 #address-cells = <1>;
1022 #size-cells = <0>;
1023 edp_in_vopb: endpoint@0 {
1024 reg = <0>;
1025 remote-endpoint = <&vopb_out_edp>;
1026 };
1027 edp_in_vopl: endpoint@1 {
1028 reg = <1>;
1029 remote-endpoint = <&vopl_out_edp>;
1030 };
1031 };
1032 };
1033 };
1034
Andy Yand5a1df42014-11-04 13:13:14 +08001035 hdmi: hdmi@ff980000 {
1036 compatible = "rockchip,rk3288-dw-hdmi";
1037 reg = <0xff980000 0x20000>;
1038 reg-io-width = <4>;
Andy Yand5a1df42014-11-04 13:13:14 +08001039 rockchip,grf = <&grf>;
1040 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1041 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
1042 clock-names = "iahb", "isfr";
Caesar Wangb63af762015-09-08 14:18:23 +08001043 power-domains = <&power RK3288_PD_VIO>;
Andy Yand5a1df42014-11-04 13:13:14 +08001044 status = "disabled";
1045
1046 ports {
1047 hdmi_in: port {
1048 #address-cells = <1>;
1049 #size-cells = <0>;
1050 hdmi_in_vopb: endpoint@0 {
1051 reg = <0>;
1052 remote-endpoint = <&vopb_out_hdmi>;
1053 };
1054 hdmi_in_vopl: endpoint@1 {
1055 reg = <1>;
1056 remote-endpoint = <&vopl_out_hdmi>;
1057 };
1058 };
1059 };
1060 };
1061
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001062 gic: interrupt-controller@ffc01000 {
1063 compatible = "arm,gic-400";
1064 interrupt-controller;
1065 #interrupt-cells = <3>;
1066 #address-cells = <0>;
1067
1068 reg = <0xffc01000 0x1000>,
1069 <0xffc02000 0x1000>,
1070 <0xffc04000 0x2000>,
1071 <0xffc06000 0x2000>;
1072 interrupts = <GIC_PPI 9 0xf04>;
1073 };
1074
ZhengShunQian88185552015-08-11 18:13:44 +08001075 efuse: efuse@ffb40000 {
1076 compatible = "rockchip,rockchip-efuse";
1077 reg = <0xffb40000 0x20>;
1078 #address-cells = <1>;
1079 #size-cells = <1>;
1080 clocks = <&cru PCLK_EFUSE256>;
1081 clock-names = "pclk_efuse";
1082
1083 cpu_leakage: cpu_leakage@17 {
1084 reg = <0x17 0x1>;
1085 };
1086 };
1087
Yunzhi Lif6db7022014-12-12 23:12:21 +08001088 usbphy: phy {
1089 compatible = "rockchip,rk3288-usb-phy";
1090 rockchip,grf = <&grf>;
1091 #address-cells = <1>;
1092 #size-cells = <0>;
1093 status = "disabled";
1094
Heiko Stuebnera8f0fa22016-03-31 20:12:14 +02001095 usbphy0: usb-phy@320 {
Yunzhi Lif6db7022014-12-12 23:12:21 +08001096 #phy-cells = <0>;
1097 reg = <0x320>;
1098 clocks = <&cru SCLK_OTGPHY0>;
1099 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +01001100 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +08001101 };
1102
Heiko Stuebnera8f0fa22016-03-31 20:12:14 +02001103 usbphy1: usb-phy@334 {
Yunzhi Lif6db7022014-12-12 23:12:21 +08001104 #phy-cells = <0>;
1105 reg = <0x334>;
1106 clocks = <&cru SCLK_OTGPHY1>;
1107 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +01001108 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +08001109 };
1110
Heiko Stuebnera8f0fa22016-03-31 20:12:14 +02001111 usbphy2: usb-phy@348 {
Yunzhi Lif6db7022014-12-12 23:12:21 +08001112 #phy-cells = <0>;
1113 reg = <0x348>;
1114 clocks = <&cru SCLK_OTGPHY2>;
1115 clock-names = "phyclk";
Heiko Stuebner0ace8212015-11-19 22:22:27 +01001116 #clock-cells = <0>;
Yunzhi Lif6db7022014-12-12 23:12:21 +08001117 };
1118 };
1119
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001120 pinctrl: pinctrl {
1121 compatible = "rockchip,rk3288-pinctrl";
1122 rockchip,grf = <&grf>;
1123 rockchip,pmu = <&pmu>;
1124 #address-cells = <1>;
1125 #size-cells = <1>;
1126 ranges;
1127
1128 gpio0: gpio0@ff750000 {
1129 compatible = "rockchip,gpio-bank";
1130 reg = <0xff750000 0x100>;
1131 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1132 clocks = <&cru PCLK_GPIO0>;
1133
1134 gpio-controller;
1135 #gpio-cells = <2>;
1136
1137 interrupt-controller;
1138 #interrupt-cells = <2>;
1139 };
1140
1141 gpio1: gpio1@ff780000 {
1142 compatible = "rockchip,gpio-bank";
1143 reg = <0xff780000 0x100>;
1144 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1145 clocks = <&cru PCLK_GPIO1>;
1146
1147 gpio-controller;
1148 #gpio-cells = <2>;
1149
1150 interrupt-controller;
1151 #interrupt-cells = <2>;
1152 };
1153
1154 gpio2: gpio2@ff790000 {
1155 compatible = "rockchip,gpio-bank";
1156 reg = <0xff790000 0x100>;
1157 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1158 clocks = <&cru PCLK_GPIO2>;
1159
1160 gpio-controller;
1161 #gpio-cells = <2>;
1162
1163 interrupt-controller;
1164 #interrupt-cells = <2>;
1165 };
1166
1167 gpio3: gpio3@ff7a0000 {
1168 compatible = "rockchip,gpio-bank";
1169 reg = <0xff7a0000 0x100>;
1170 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1171 clocks = <&cru PCLK_GPIO3>;
1172
1173 gpio-controller;
1174 #gpio-cells = <2>;
1175
1176 interrupt-controller;
1177 #interrupt-cells = <2>;
1178 };
1179
1180 gpio4: gpio4@ff7b0000 {
1181 compatible = "rockchip,gpio-bank";
1182 reg = <0xff7b0000 0x100>;
1183 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1184 clocks = <&cru PCLK_GPIO4>;
1185
1186 gpio-controller;
1187 #gpio-cells = <2>;
1188
1189 interrupt-controller;
1190 #interrupt-cells = <2>;
1191 };
1192
1193 gpio5: gpio5@ff7c0000 {
1194 compatible = "rockchip,gpio-bank";
1195 reg = <0xff7c0000 0x100>;
1196 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1197 clocks = <&cru PCLK_GPIO5>;
1198
1199 gpio-controller;
1200 #gpio-cells = <2>;
1201
1202 interrupt-controller;
1203 #interrupt-cells = <2>;
1204 };
1205
1206 gpio6: gpio6@ff7d0000 {
1207 compatible = "rockchip,gpio-bank";
1208 reg = <0xff7d0000 0x100>;
1209 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1210 clocks = <&cru PCLK_GPIO6>;
1211
1212 gpio-controller;
1213 #gpio-cells = <2>;
1214
1215 interrupt-controller;
1216 #interrupt-cells = <2>;
1217 };
1218
1219 gpio7: gpio7@ff7e0000 {
1220 compatible = "rockchip,gpio-bank";
1221 reg = <0xff7e0000 0x100>;
1222 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1223 clocks = <&cru PCLK_GPIO7>;
1224
1225 gpio-controller;
1226 #gpio-cells = <2>;
1227
1228 interrupt-controller;
1229 #interrupt-cells = <2>;
1230 };
1231
1232 gpio8: gpio8@ff7f0000 {
1233 compatible = "rockchip,gpio-bank";
1234 reg = <0xff7f0000 0x100>;
1235 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1236 clocks = <&cru PCLK_GPIO8>;
1237
1238 gpio-controller;
1239 #gpio-cells = <2>;
1240
1241 interrupt-controller;
1242 #interrupt-cells = <2>;
1243 };
1244
Douglas Andersone61ccb12015-09-02 14:54:22 -07001245 hdmi {
1246 hdmi_ddc: hdmi-ddc {
1247 rockchip,pins = <7 19 RK_FUNC_2 &pcfg_pull_none>,
1248 <7 20 RK_FUNC_2 &pcfg_pull_none>;
1249 };
1250 };
1251
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001252 pcfg_pull_up: pcfg-pull-up {
1253 bias-pull-up;
1254 };
1255
1256 pcfg_pull_down: pcfg-pull-down {
1257 bias-pull-down;
1258 };
1259
1260 pcfg_pull_none: pcfg-pull-none {
1261 bias-disable;
1262 };
1263
Roger Chen3d3fb74a2014-12-29 17:44:16 +08001264 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1265 bias-disable;
1266 drive-strength = <12>;
1267 };
1268
Chris Zhongeecfe982014-12-01 16:52:19 +08001269 sleep {
1270 global_pwroff: global-pwroff {
1271 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1272 };
1273
1274 ddrio_pwroff: ddrio-pwroff {
1275 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1276 };
1277
1278 ddr0_retention: ddr0-retention {
1279 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1280 };
1281
1282 ddr1_retention: ddr1-retention {
1283 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1284 };
1285 };
1286
Heiko Stuebnera4e00342015-10-28 00:19:37 +01001287 edp {
1288 edp_hpd: edp-hpd {
1289 rockchip,pins = <7 11 RK_FUNC_2 &pcfg_pull_down>;
1290 };
1291 };
1292
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001293 i2c0 {
1294 i2c0_xfer: i2c0-xfer {
1295 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1296 <0 16 RK_FUNC_1 &pcfg_pull_none>;
1297 };
1298 };
1299
1300 i2c1 {
1301 i2c1_xfer: i2c1-xfer {
1302 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1303 <8 5 RK_FUNC_1 &pcfg_pull_none>;
1304 };
1305 };
1306
1307 i2c2 {
1308 i2c2_xfer: i2c2-xfer {
1309 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1310 <6 10 RK_FUNC_1 &pcfg_pull_none>;
1311 };
1312 };
1313
1314 i2c3 {
1315 i2c3_xfer: i2c3-xfer {
1316 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1317 <2 17 RK_FUNC_1 &pcfg_pull_none>;
1318 };
1319 };
1320
1321 i2c4 {
1322 i2c4_xfer: i2c4-xfer {
1323 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1324 <7 18 RK_FUNC_1 &pcfg_pull_none>;
1325 };
1326 };
1327
1328 i2c5 {
1329 i2c5_xfer: i2c5-xfer {
1330 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1331 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1332 };
1333 };
1334
Jianquna0f95e32014-09-12 18:54:55 +08001335 i2s0 {
1336 i2s0_bus: i2s0-bus {
1337 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1338 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1339 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1340 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1341 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1342 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1343 };
1344 };
1345
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001346 sdmmc {
1347 sdmmc_clk: sdmmc-clk {
1348 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1349 };
1350
1351 sdmmc_cmd: sdmmc-cmd {
1352 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1353 };
1354
Matthias Bruggerd59df5d2015-12-11 15:45:58 +01001355 sdmmc_cd: sdmmc-cd {
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001356 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1357 };
1358
1359 sdmmc_bus1: sdmmc-bus1 {
1360 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1361 };
1362
1363 sdmmc_bus4: sdmmc-bus4 {
1364 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1365 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1366 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1367 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1368 };
1369 };
1370
Addy Kef1a07232014-08-19 18:21:08 +08001371 sdio0 {
1372 sdio0_bus1: sdio0-bus1 {
1373 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1374 };
1375
1376 sdio0_bus4: sdio0-bus4 {
1377 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1378 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1379 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1380 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1381 };
1382
1383 sdio0_cmd: sdio0-cmd {
1384 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1385 };
1386
1387 sdio0_clk: sdio0-clk {
1388 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1389 };
1390
1391 sdio0_cd: sdio0-cd {
1392 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1393 };
1394
1395 sdio0_wp: sdio0-wp {
1396 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1397 };
1398
1399 sdio0_pwr: sdio0-pwr {
1400 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1401 };
1402
1403 sdio0_bkpwr: sdio0-bkpwr {
1404 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1405 };
1406
1407 sdio0_int: sdio0-int {
1408 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1409 };
1410 };
1411
1412 sdio1 {
1413 sdio1_bus1: sdio1-bus1 {
1414 rockchip,pins = <3 24 4 &pcfg_pull_up>;
1415 };
1416
1417 sdio1_bus4: sdio1-bus4 {
1418 rockchip,pins = <3 24 4 &pcfg_pull_up>,
1419 <3 25 4 &pcfg_pull_up>,
1420 <3 26 4 &pcfg_pull_up>,
1421 <3 27 4 &pcfg_pull_up>;
1422 };
1423
1424 sdio1_cd: sdio1-cd {
1425 rockchip,pins = <3 28 4 &pcfg_pull_up>;
1426 };
1427
1428 sdio1_wp: sdio1-wp {
1429 rockchip,pins = <3 29 4 &pcfg_pull_up>;
1430 };
1431
1432 sdio1_bkpwr: sdio1-bkpwr {
1433 rockchip,pins = <3 30 4 &pcfg_pull_up>;
1434 };
1435
1436 sdio1_int: sdio1-int {
1437 rockchip,pins = <3 31 4 &pcfg_pull_up>;
1438 };
1439
1440 sdio1_cmd: sdio1-cmd {
1441 rockchip,pins = <4 6 4 &pcfg_pull_up>;
1442 };
1443
1444 sdio1_clk: sdio1-clk {
1445 rockchip,pins = <4 7 4 &pcfg_pull_none>;
1446 };
1447
1448 sdio1_pwr: sdio1-pwr {
1449 rockchip,pins = <4 9 4 &pcfg_pull_up>;
1450 };
1451 };
1452
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001453 emmc {
1454 emmc_clk: emmc-clk {
1455 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1456 };
1457
1458 emmc_cmd: emmc-cmd {
1459 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1460 };
1461
1462 emmc_pwr: emmc-pwr {
1463 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1464 };
1465
1466 emmc_bus1: emmc-bus1 {
1467 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1468 };
1469
1470 emmc_bus4: emmc-bus4 {
1471 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1472 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1473 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1474 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1475 };
1476
1477 emmc_bus8: emmc-bus8 {
1478 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1479 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1480 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1481 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1482 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1483 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1484 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1485 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1486 };
1487 };
1488
huang lin1f531702014-09-05 09:53:11 -07001489 spi0 {
1490 spi0_clk: spi0-clk {
1491 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1492 };
1493 spi0_cs0: spi0-cs0 {
1494 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1495 };
1496 spi0_tx: spi0-tx {
1497 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1498 };
1499 spi0_rx: spi0-rx {
1500 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1501 };
1502 spi0_cs1: spi0-cs1 {
1503 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1504 };
1505 };
1506 spi1 {
1507 spi1_clk: spi1-clk {
1508 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1509 };
1510 spi1_cs0: spi1-cs0 {
1511 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1512 };
1513 spi1_rx: spi1-rx {
1514 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1515 };
1516 spi1_tx: spi1-tx {
1517 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1518 };
1519 };
1520
1521 spi2 {
1522 spi2_cs1: spi2-cs1 {
1523 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1524 };
1525 spi2_clk: spi2-clk {
1526 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1527 };
1528 spi2_cs0: spi2-cs0 {
1529 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1530 };
1531 spi2_rx: spi2-rx {
1532 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1533 };
1534 spi2_tx: spi2-tx {
1535 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1536 };
1537 };
1538
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001539 uart0 {
1540 uart0_xfer: uart0-xfer {
1541 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1542 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1543 };
1544
1545 uart0_cts: uart0-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001546 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001547 };
1548
1549 uart0_rts: uart0-rts {
1550 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1551 };
1552 };
1553
1554 uart1 {
1555 uart1_xfer: uart1-xfer {
1556 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1557 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1558 };
1559
1560 uart1_cts: uart1-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001561 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001562 };
1563
1564 uart1_rts: uart1-rts {
1565 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1566 };
1567 };
1568
1569 uart2 {
1570 uart2_xfer: uart2-xfer {
1571 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1572 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1573 };
1574 /* no rts / cts for uart2 */
1575 };
1576
1577 uart3 {
1578 uart3_xfer: uart3-xfer {
1579 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1580 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1581 };
1582
1583 uart3_cts: uart3-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001584 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001585 };
1586
1587 uart3_rts: uart3-rts {
1588 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1589 };
1590 };
1591
1592 uart4 {
1593 uart4_xfer: uart4-xfer {
1594 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1595 <5 13 3 &pcfg_pull_none>;
1596 };
1597
1598 uart4_cts: uart4-cts {
Alexandru M Stan8915f362015-09-02 16:27:58 -07001599 rockchip,pins = <5 14 3 &pcfg_pull_up>;
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001600 };
1601
1602 uart4_rts: uart4-rts {
1603 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1604 };
1605 };
Doug Andersondf542df2014-08-25 15:59:26 -07001606
Caesar Wangb67d6bc2014-11-24 12:59:01 +08001607 tsadc {
Caesar Wang784359b2015-10-23 19:25:28 +08001608 otp_gpio: otp-gpio {
1609 rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
1610 };
1611
Caesar Wangb67d6bc2014-11-24 12:59:01 +08001612 otp_out: otp-out {
1613 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1614 };
1615 };
1616
Doug Andersondf542df2014-08-25 15:59:26 -07001617 pwm0 {
1618 pwm0_pin: pwm0-pin {
1619 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1620 };
1621 };
1622
1623 pwm1 {
1624 pwm1_pin: pwm1-pin {
1625 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1626 };
1627 };
1628
1629 pwm2 {
1630 pwm2_pin: pwm2-pin {
1631 rockchip,pins = <7 22 3 &pcfg_pull_none>;
1632 };
1633 };
1634
1635 pwm3 {
1636 pwm3_pin: pwm3-pin {
1637 rockchip,pins = <7 23 3 &pcfg_pull_none>;
1638 };
1639 };
Roger Chen3d3fb74a2014-12-29 17:44:16 +08001640
1641 gmac {
1642 rgmii_pins: rgmii-pins {
1643 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1644 <3 31 3 &pcfg_pull_none>,
1645 <3 26 3 &pcfg_pull_none>,
1646 <3 27 3 &pcfg_pull_none>,
1647 <3 28 3 &pcfg_pull_none_12ma>,
1648 <3 29 3 &pcfg_pull_none_12ma>,
1649 <3 24 3 &pcfg_pull_none_12ma>,
1650 <3 25 3 &pcfg_pull_none_12ma>,
1651 <4 0 3 &pcfg_pull_none>,
1652 <4 5 3 &pcfg_pull_none>,
1653 <4 6 3 &pcfg_pull_none>,
1654 <4 9 3 &pcfg_pull_none_12ma>,
1655 <4 4 3 &pcfg_pull_none_12ma>,
1656 <4 1 3 &pcfg_pull_none>,
1657 <4 3 3 &pcfg_pull_none>;
1658 };
1659
1660 rmii_pins: rmii-pins {
1661 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1662 <3 31 3 &pcfg_pull_none>,
1663 <3 28 3 &pcfg_pull_none>,
1664 <3 29 3 &pcfg_pull_none>,
1665 <4 0 3 &pcfg_pull_none>,
1666 <4 5 3 &pcfg_pull_none>,
1667 <4 4 3 &pcfg_pull_none>,
1668 <4 1 3 &pcfg_pull_none>,
1669 <4 2 3 &pcfg_pull_none>,
1670 <4 3 3 &pcfg_pull_none>;
1671 };
1672 };
Sjoerd Simons874e5682015-10-08 15:31:17 +02001673
1674 spdif {
1675 spdif_tx: spdif-tx {
1676 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1677 };
1678 };
Heiko Stuebner2ab557b2014-07-15 20:16:19 +02001679 };
1680};