blob: 487d22c9b012aeae73a4afc2240f76e6d9e981bf [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Simon Glass087e9872015-08-30 16:55:20 -06002
3#include <dt-bindings/gpio/gpio.h>
4#include <dt-bindings/interrupt-controller/irq.h>
5#include <dt-bindings/interrupt-controller/arm-gic.h>
6#include <dt-bindings/pinctrl/rockchip.h>
7#include <dt-bindings/clock/rk3288-cru.h>
8#include <dt-bindings/power-domain/rk3288.h>
9#include <dt-bindings/thermal/thermal.h>
Jacob Chen17fd3442016-03-14 11:20:17 +080010#include <dt-bindings/video/rk3288.h>
Simon Glass087e9872015-08-30 16:55:20 -060011#include "skeleton.dtsi"
12
13/ {
14 compatible = "rockchip,rk3288";
15
16 interrupt-parent = <&gic>;
17 aliases {
Simon Glass3386b372015-08-30 16:55:21 -060018 gpio0 = &gpio0;
19 gpio1 = &gpio1;
20 gpio2 = &gpio2;
21 gpio3 = &gpio3;
22 gpio4 = &gpio4;
23 gpio5 = &gpio5;
24 gpio6 = &gpio6;
25 gpio7 = &gpio7;
26 gpio8 = &gpio8;
Simon Glass087e9872015-08-30 16:55:20 -060027 i2c0 = &i2c0;
28 i2c1 = &i2c1;
29 i2c2 = &i2c2;
30 i2c3 = &i2c3;
31 i2c4 = &i2c4;
32 i2c5 = &i2c5;
33 mmc0 = &emmc;
34 mmc1 = &sdmmc;
35 mmc2 = &sdio0;
36 mmc3 = &sdio1;
37 mshc0 = &emmc;
38 mshc1 = &sdmmc;
39 mshc2 = &sdio0;
40 mshc3 = &sdio1;
41 serial0 = &uart0;
42 serial1 = &uart1;
43 serial2 = &uart2;
44 serial3 = &uart3;
45 serial4 = &uart4;
46 spi0 = &spi0;
47 spi1 = &spi1;
48 spi2 = &spi2;
49 };
50
51 cpus {
52 #address-cells = <1>;
53 #size-cells = <0>;
54 enable-method = "rockchip,rk3066-smp";
55 rockchip,pmu = <&pmu>;
56
57 cpu0: cpu@500 {
58 device_type = "cpu";
59 compatible = "arm,cortex-a12";
60 reg = <0x500>;
61 operating-points = <
62 /* KHz uV */
63 1800000 1400000
64 1704000 1350000
65 1608000 1300000
66 1512000 1250000
67 1416000 1200000
68 1200000 1100000
69 1008000 1050000
70 816000 1000000
71 696000 950000
72 600000 900000
73 408000 900000
74 216000 900000
75 126000 900000
76 >;
77 #cooling-cells = <2>; /* min followed by max */
78 clock-latency = <40000>;
79 clocks = <&cru ARMCLK>;
80 resets = <&cru SRST_CORE0>;
81 };
82 cpu@501 {
83 device_type = "cpu";
84 compatible = "arm,cortex-a12";
85 reg = <0x501>;
86 resets = <&cru SRST_CORE1>;
87 };
88 cpu@502 {
89 device_type = "cpu";
90 compatible = "arm,cortex-a12";
91 reg = <0x502>;
92 resets = <&cru SRST_CORE2>;
93 };
94 cpu@503 {
95 device_type = "cpu";
96 compatible = "arm,cortex-a12";
97 reg = <0x503>;
98 resets = <&cru SRST_CORE3>;
99 };
100 };
101
102 amba {
103 compatible = "arm,amba-bus";
104 #address-cells = <1>;
105 #size-cells = <1>;
106 ranges;
107
108 dmac_peri: dma-controller@ff250000 {
109 compatible = "arm,pl330", "arm,primecell";
110 broken-no-flushp;
111 reg = <0xff250000 0x4000>;
112 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
113 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
114 #dma-cells = <1>;
115 clocks = <&cru ACLK_DMAC2>;
116 clock-names = "apb_pclk";
117 };
118
119 dmac_bus_ns: dma-controller@ff600000 {
120 compatible = "arm,pl330", "arm,primecell";
121 broken-no-flushp;
122 reg = <0xff600000 0x4000>;
123 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
124 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
125 #dma-cells = <1>;
126 clocks = <&cru ACLK_DMAC1>;
127 clock-names = "apb_pclk";
128 status = "disabled";
129 };
130
131 dmac_bus_s: dma-controller@ffb20000 {
132 compatible = "arm,pl330", "arm,primecell";
133 broken-no-flushp;
134 reg = <0xffb20000 0x4000>;
135 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
136 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
137 #dma-cells = <1>;
138 clocks = <&cru ACLK_DMAC1>;
139 clock-names = "apb_pclk";
140 };
141 };
142
143 xin24m: oscillator {
144 compatible = "fixed-clock";
145 clock-frequency = <24000000>;
146 clock-output-names = "xin24m";
147 #clock-cells = <0>;
148 };
149
150 timer {
151 arm,use-physical-timer;
152 compatible = "arm,armv7-timer";
153 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
154 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
155 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
156 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
157 clock-frequency = <24000000>;
158 always-on;
159 };
160
161 display-subsystem {
162 compatible = "rockchip,display-subsystem";
163 ports = <&vopl_out>, <&vopb_out>;
164 };
165
166 sdmmc: dwmmc@ff0c0000 {
167 compatible = "rockchip,rk3288-dw-mshc";
Kever Yangd0947322017-06-14 16:31:44 +0800168 max-frequency = <150000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600169 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
170 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
171 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
172 fifo-depth = <0x100>;
173 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
174 reg = <0xff0c0000 0x4000>;
175 status = "disabled";
176 };
177
178 sdio0: dwmmc@ff0d0000 {
179 compatible = "rockchip,rk3288-dw-mshc";
Kever Yangd0947322017-06-14 16:31:44 +0800180 max-frequency = <150000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600181 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
182 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
183 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
184 fifo-depth = <0x100>;
185 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
186 reg = <0xff0d0000 0x4000>;
187 status = "disabled";
188 };
189
190 sdio1: dwmmc@ff0e0000 {
191 compatible = "rockchip,rk3288-dw-mshc";
Kever Yangd0947322017-06-14 16:31:44 +0800192 max-frequency = <150000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600193 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>,
194 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>;
195 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
196 fifo-depth = <0x100>;
197 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
198 reg = <0xff0e0000 0x4000>;
199 status = "disabled";
200 };
201
202 emmc: dwmmc@ff0f0000 {
203 compatible = "rockchip,rk3288-dw-mshc";
Kever Yangd0947322017-06-14 16:31:44 +0800204 max-frequency = <150000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600205 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
206 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
207 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
208 fifo-depth = <0x100>;
209 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
210 reg = <0xff0f0000 0x4000>;
211 status = "disabled";
212 };
213
214 saradc: saradc@ff100000 {
215 compatible = "rockchip,saradc";
216 reg = <0xff100000 0x100>;
217 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
218 #io-channel-cells = <1>;
219 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
220 clock-names = "saradc", "apb_pclk";
221 status = "disabled";
222 };
223
224 spi0: spi@ff110000 {
225 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
226 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
227 clock-names = "spiclk", "apb_pclk";
228 dmas = <&dmac_peri 11>, <&dmac_peri 12>;
229 dma-names = "tx", "rx";
230 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
231 pinctrl-names = "default";
232 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
233 reg = <0xff110000 0x1000>;
234 #address-cells = <1>;
235 #size-cells = <0>;
236 status = "disabled";
237 };
238
239 spi1: spi@ff120000 {
240 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
241 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
242 clock-names = "spiclk", "apb_pclk";
243 dmas = <&dmac_peri 13>, <&dmac_peri 14>;
244 dma-names = "tx", "rx";
245 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
246 pinctrl-names = "default";
247 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
248 reg = <0xff120000 0x1000>;
249 #address-cells = <1>;
250 #size-cells = <0>;
251 status = "disabled";
252 };
253
254 spi2: spi@ff130000 {
255 compatible = "rockchip,rk3288-spi", "rockchip,rk3066-spi";
256 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
257 clock-names = "spiclk", "apb_pclk";
258 dmas = <&dmac_peri 15>, <&dmac_peri 16>;
259 dma-names = "tx", "rx";
260 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
261 pinctrl-names = "default";
262 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
263 reg = <0xff130000 0x1000>;
264 #address-cells = <1>;
265 #size-cells = <0>;
266 status = "disabled";
267 };
268
269 i2c1: i2c@ff140000 {
270 compatible = "rockchip,rk3288-i2c";
271 reg = <0xff140000 0x1000>;
272 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
273 #address-cells = <1>;
274 #size-cells = <0>;
275 clock-names = "i2c";
276 clocks = <&cru PCLK_I2C1>;
277 pinctrl-names = "default";
278 pinctrl-0 = <&i2c1_xfer>;
279 status = "disabled";
280 };
281
282 i2c3: i2c@ff150000 {
283 compatible = "rockchip,rk3288-i2c";
284 reg = <0xff150000 0x1000>;
285 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
286 #address-cells = <1>;
287 #size-cells = <0>;
288 clock-names = "i2c";
289 clocks = <&cru PCLK_I2C3>;
290 pinctrl-names = "default";
291 pinctrl-0 = <&i2c3_xfer>;
292 status = "disabled";
293 };
294
295 i2c4: i2c@ff160000 {
296 compatible = "rockchip,rk3288-i2c";
297 reg = <0xff160000 0x1000>;
298 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
299 #address-cells = <1>;
300 #size-cells = <0>;
301 clock-names = "i2c";
302 clocks = <&cru PCLK_I2C4>;
303 pinctrl-names = "default";
304 pinctrl-0 = <&i2c4_xfer>;
305 status = "disabled";
306 };
307
308 i2c5: i2c@ff170000 {
309 compatible = "rockchip,rk3288-i2c";
310 reg = <0xff170000 0x1000>;
311 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
312 #address-cells = <1>;
313 #size-cells = <0>;
314 clock-names = "i2c";
315 clocks = <&cru PCLK_I2C5>;
316 pinctrl-names = "default";
317 pinctrl-0 = <&i2c5_xfer>;
318 status = "disabled";
319 };
320 uart0: serial@ff180000 {
321 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
322 reg = <0xff180000 0x100>;
323 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
324 reg-shift = <2>;
325 reg-io-width = <4>;
Thomas Chou57ce19f2015-11-19 21:48:08 +0800326 clock-frequency = <24000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600327 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
328 clock-names = "baudclk", "apb_pclk";
329 pinctrl-names = "default";
330 pinctrl-0 = <&uart0_xfer>;
331 status = "disabled";
332 };
333
334 uart1: serial@ff190000 {
335 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
336 reg = <0xff190000 0x100>;
337 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
338 reg-shift = <2>;
339 reg-io-width = <4>;
Thomas Chou57ce19f2015-11-19 21:48:08 +0800340 clock-frequency = <24000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600341 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
342 clock-names = "baudclk", "apb_pclk";
343 pinctrl-names = "default";
344 pinctrl-0 = <&uart1_xfer>;
345 status = "disabled";
346 };
347
348 uart2: serial@ff690000 {
349 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
350 reg = <0xff690000 0x100>;
351 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
352 reg-shift = <2>;
353 reg-io-width = <4>;
Thomas Chou57ce19f2015-11-19 21:48:08 +0800354 clock-frequency = <24000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600355 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
356 clock-names = "baudclk", "apb_pclk";
357 pinctrl-names = "default";
358 pinctrl-0 = <&uart2_xfer>;
359 status = "disabled";
360 };
361 uart3: serial@ff1b0000 {
362 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
363 reg = <0xff1b0000 0x100>;
364 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
365 reg-shift = <2>;
366 reg-io-width = <4>;
Thomas Chou57ce19f2015-11-19 21:48:08 +0800367 clock-frequency = <24000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600368 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
369 clock-names = "baudclk", "apb_pclk";
370 pinctrl-names = "default";
371 pinctrl-0 = <&uart3_xfer>;
372 status = "disabled";
373 };
374
375 uart4: serial@ff1c0000 {
376 compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
377 reg = <0xff1c0000 0x100>;
378 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
379 reg-shift = <2>;
380 reg-io-width = <4>;
Thomas Chou57ce19f2015-11-19 21:48:08 +0800381 clock-frequency = <24000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600382 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
383 clock-names = "baudclk", "apb_pclk";
384 pinctrl-names = "default";
385 pinctrl-0 = <&uart4_xfer>;
386 status = "disabled";
387 };
388 thermal: thermal-zones {
389 #include "rk3288-thermal.dtsi"
390 };
391
392 tsadc: tsadc@ff280000 {
393 compatible = "rockchip,rk3288-tsadc";
394 reg = <0xff280000 0x100>;
395 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
396 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
397 clock-names = "tsadc", "apb_pclk";
398 resets = <&cru SRST_TSADC>;
399 reset-names = "tsadc-apb";
400 pinctrl-names = "otp_out";
401 pinctrl-0 = <&otp_out>;
402 #thermal-sensor-cells = <1>;
403 hw-shut-temp = <125000>;
404 status = "disabled";
405 };
406
407 gmac: ethernet@ff290000 {
408 compatible = "rockchip,rk3288-gmac";
409 reg = <0xff290000 0x10000>;
410 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
411 interrupt-names = "macirq";
412 rockchip,grf = <&grf>;
413 clocks = <&cru SCLK_MAC>,
414 <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
415 <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
416 <&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
417 clock-names = "stmmaceth",
418 "mac_clk_rx", "mac_clk_tx",
419 "clk_mac_ref", "clk_mac_refout",
420 "aclk_mac", "pclk_mac";
421 };
422
423 usb_host0_ehci: usb@ff500000 {
424 compatible = "generic-ehci";
425 reg = <0xff500000 0x100>;
426 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
427 clocks = <&cru HCLK_USBHOST0>;
428 clock-names = "usbhost";
429 phys = <&usbphy1>;
430 phy-names = "usb";
431 status = "disabled";
432 };
433
434 /* NOTE: ohci@ff520000 doesn't actually work on hardware */
435
436 usb_host1: usb@ff540000 {
437 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
438 "snps,dwc2";
439 reg = <0xff540000 0x40000>;
440 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
441 clocks = <&cru HCLK_USBHOST1>;
442 clock-names = "otg";
443 phys = <&usbphy2>;
444 phy-names = "usb2-phy";
445 status = "disabled";
446 };
447
448 usb_otg: usb@ff580000 {
449 compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
450 "snps,dwc2";
451 reg = <0xff580000 0x40000>;
452 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
453 clocks = <&cru HCLK_OTG0>;
454 clock-names = "otg";
Xu Ziyuana11a53f2016-07-15 00:26:59 +0800455 dr_mode = "otg";
Simon Glass087e9872015-08-30 16:55:20 -0600456 phys = <&usbphy0>;
457 phy-names = "usb2-phy";
458 status = "disabled";
459 };
460
461 usb_hsic: usb@ff5c0000 {
462 compatible = "generic-ehci";
463 reg = <0xff5c0000 0x100>;
464 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
465 clocks = <&cru HCLK_HSIC>;
466 clock-names = "usbhost";
467 status = "disabled";
468 };
469
470 dmc: dmc@ff610000 {
Simon Glass3386b372015-08-30 16:55:21 -0600471 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600472 compatible = "rockchip,rk3288-dmc", "syscon";
473 rockchip,cru = <&cru>;
474 rockchip,grf = <&grf>;
475 rockchip,pmu = <&pmu>;
476 rockchip,sgrf = <&sgrf>;
477 rockchip,noc = <&noc>;
478 reg = <0xff610000 0x3fc
479 0xff620000 0x294
480 0xff630000 0x3fc
481 0xff640000 0x294>;
482 rockchip,sram = <&ddr_sram>;
483 clocks = <&cru PCLK_DDRUPCTL0>, <&cru PCLK_PUBL0>,
484 <&cru PCLK_DDRUPCTL1>, <&cru PCLK_PUBL1>,
485 <&cru ARMCLK>;
486 clock-names = "pclk_ddrupctl0", "pclk_publ0",
487 "pclk_ddrupctl1", "pclk_publ1",
488 "arm_clk";
489 };
490
491 i2c0: i2c@ff650000 {
492 compatible = "rockchip,rk3288-i2c";
493 reg = <0xff650000 0x1000>;
494 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
495 #address-cells = <1>;
496 #size-cells = <0>;
497 clock-names = "i2c";
498 clocks = <&cru PCLK_I2C0>;
499 pinctrl-names = "default";
500 pinctrl-0 = <&i2c0_xfer>;
501 status = "disabled";
502 };
503
504 i2c2: i2c@ff660000 {
505 compatible = "rockchip,rk3288-i2c";
506 reg = <0xff660000 0x1000>;
507 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
508 #address-cells = <1>;
509 #size-cells = <0>;
510 clock-names = "i2c";
511 clocks = <&cru PCLK_I2C2>;
512 pinctrl-names = "default";
513 pinctrl-0 = <&i2c2_xfer>;
514 status = "disabled";
515 };
516
517 pwm0: pwm@ff680000 {
518 compatible = "rockchip,rk3288-pwm";
519 reg = <0xff680000 0x10>;
520 #pwm-cells = <3>;
521 pinctrl-names = "default";
522 pinctrl-0 = <&pwm0_pin>;
523 clocks = <&cru PCLK_PWM>;
524 clock-names = "pwm";
525 rockchip,grf = <&grf>;
526 status = "disabled";
527 };
528
529 pwm1: pwm@ff680010 {
530 compatible = "rockchip,rk3288-pwm";
531 reg = <0xff680010 0x10>;
532 #pwm-cells = <3>;
533 pinctrl-names = "default";
534 pinctrl-0 = <&pwm1_pin>;
535 clocks = <&cru PCLK_PWM>;
536 clock-names = "pwm";
537 rockchip,grf = <&grf>;
538 status = "disabled";
539 };
540
541 pwm2: pwm@ff680020 {
542 compatible = "rockchip,rk3288-pwm";
543 reg = <0xff680020 0x10>;
544 #pwm-cells = <3>;
545 pinctrl-names = "default";
546 pinctrl-0 = <&pwm2_pin>;
547 clocks = <&cru PCLK_PWM>;
548 clock-names = "pwm";
549 rockchip,grf = <&grf>;
550 status = "disabled";
551 };
552
553 pwm3: pwm@ff680030 {
554 compatible = "rockchip,rk3288-pwm";
555 reg = <0xff680030 0x10>;
556 #pwm-cells = <2>;
557 pinctrl-names = "default";
558 pinctrl-0 = <&pwm3_pin>;
559 clocks = <&cru PCLK_PWM>;
560 clock-names = "pwm";
561 rockchip,grf = <&grf>;
562 status = "disabled";
563 };
564
565 bus_intmem@ff700000 {
566 compatible = "mmio-sram";
567 reg = <0xff700000 0x18000>;
568 #address-cells = <1>;
569 #size-cells = <1>;
570 ranges = <0 0xff700000 0x18000>;
571 smp-sram@0 {
572 compatible = "rockchip,rk3066-smp-sram";
573 reg = <0x00 0x10>;
574 };
575 ddr_sram: ddr-sram@1000 {
576 compatible = "rockchip,rk3288-ddr-sram";
577 reg = <0x1000 0x4000>;
578 };
579 };
580
581 sram@ff720000 {
582 compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
583 reg = <0xff720000 0x1000>;
584 };
585
586 pmu: power-management@ff730000 {
Simon Glass3386b372015-08-30 16:55:21 -0600587 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600588 compatible = "rockchip,rk3288-pmu", "syscon";
589 reg = <0xff730000 0x100>;
590 };
591
592 sgrf: syscon@ff740000 {
Simon Glass3386b372015-08-30 16:55:21 -0600593 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600594 compatible = "rockchip,rk3288-sgrf", "syscon";
595 reg = <0xff740000 0x1000>;
596 };
597
598 cru: clock-controller@ff760000 {
599 compatible = "rockchip,rk3288-cru";
600 reg = <0xff760000 0x1000>;
601 rockchip,grf = <&grf>;
Simon Glass3386b372015-08-30 16:55:21 -0600602 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600603 #clock-cells = <1>;
604 #reset-cells = <1>;
David Wu452bb032018-01-13 14:06:16 +0800605 assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
Simon Glass087e9872015-08-30 16:55:20 -0600606 <&cru PLL_NPLL>, <&cru ACLK_CPU>,
607 <&cru HCLK_CPU>, <&cru PCLK_CPU>,
608 <&cru ACLK_PERI>, <&cru HCLK_PERI>,
609 <&cru PCLK_PERI>;
David Wu452bb032018-01-13 14:06:16 +0800610 assigned-clock-rates = <594000000>, <400000000>,
Simon Glass087e9872015-08-30 16:55:20 -0600611 <500000000>, <300000000>,
612 <150000000>, <75000000>,
613 <300000000>, <150000000>,
614 <75000000>;
Simon Glass087e9872015-08-30 16:55:20 -0600615 };
616
617 grf: syscon@ff770000 {
Simon Glass3386b372015-08-30 16:55:21 -0600618 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600619 compatible = "rockchip,rk3288-grf", "syscon";
620 reg = <0xff770000 0x1000>;
621 };
622
623 wdt: watchdog@ff800000 {
624 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
625 reg = <0xff800000 0x100>;
626 clocks = <&cru PCLK_WDT>;
627 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
628 status = "disabled";
629 };
630
Simon Glass15019802016-01-21 19:45:21 -0700631 spdif: sound@ff88b0000 {
632 compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
633 reg = <0xff8b0000 0x10000>;
634 #sound-dai-cells = <0>;
635 clock-names = "hclk", "mclk";
636 clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
637 dmas = <&dmac_bus_s 3>;
638 dma-names = "tx";
639 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
640 pinctrl-names = "default";
641 pinctrl-0 = <&spdif_tx>;
642 rockchip,grf = <&grf>;
643 status = "disabled";
644 };
645
Simon Glass087e9872015-08-30 16:55:20 -0600646 i2s: i2s@ff890000 {
647 compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
648 reg = <0xff890000 0x10000>;
649 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
650 #address-cells = <1>;
651 #size-cells = <0>;
Simon Glassb7e0e852018-12-27 20:15:23 -0700652 #sound-dai-cells = <1>;
Simon Glass087e9872015-08-30 16:55:20 -0600653 dmas = <&dmac_bus_s 0>, <&dmac_bus_s 1>;
654 dma-names = "tx", "rx";
655 clock-names = "i2s_hclk", "i2s_clk";
656 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
657 pinctrl-names = "default";
658 pinctrl-0 = <&i2s0_bus>;
659 status = "disabled";
660 };
661
662 vopb: vop@ff930000 {
Eric Gao590c4ac2017-05-02 18:32:45 +0800663 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600664 compatible = "rockchip,rk3288-vop";
665 reg = <0xff930000 0x19c>;
666 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
667 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
668 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
669 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
670 reset-names = "axi", "ahb", "dclk";
671 iommus = <&vopb_mmu>;
672 power-domains = <&power RK3288_PD_VIO>;
673 status = "disabled";
674 vopb_out: port {
675 #address-cells = <1>;
676 #size-cells = <0>;
677 vopb_out_edp: endpoint@0 {
678 reg = <0>;
679 remote-endpoint = <&edp_in_vopb>;
680 };
681 vopb_out_hdmi: endpoint@1 {
682 reg = <1>;
683 remote-endpoint = <&hdmi_in_vopb>;
684 };
Jacob Chen17fd3442016-03-14 11:20:17 +0800685 vopb_out_lvds: endpoint@2 {
686 reg = <2>;
687 remote-endpoint = <&lvds_in_vopb>;
688 };
Eric Gao590c4ac2017-05-02 18:32:45 +0800689 vopb_out_mipi: endpoint@3 {
690 reg = <3>;
691 remote-endpoint = <&mipi_in_vopb>;
692 };
693
Simon Glass087e9872015-08-30 16:55:20 -0600694 };
695 };
696
697 vopb_mmu: iommu@ff930300 {
698 compatible = "rockchip,iommu";
699 reg = <0xff930300 0x100>;
700 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
701 interrupt-names = "vopb_mmu";
702 power-domains = <&power RK3288_PD_VIO>;
703 #iommu-cells = <0>;
704 status = "disabled";
705 };
706
707 vopl: vop@ff940000 {
708 compatible = "rockchip,rk3288-vop";
709 reg = <0xff940000 0x19c>;
710 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
711 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
712 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
713 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
714 reset-names = "axi", "ahb", "dclk";
715 iommus = <&vopl_mmu>;
716 power-domains = <&power RK3288_PD_VIO>;
717 status = "disabled";
Simon Glassabd2c152016-01-21 19:45:19 -0700718 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600719 vopl_out: port {
720 #address-cells = <1>;
721 #size-cells = <0>;
722 vopl_out_edp: endpoint@0 {
723 reg = <0>;
724 remote-endpoint = <&edp_in_vopl>;
725 };
726 vopl_out_hdmi: endpoint@1 {
727 reg = <1>;
728 remote-endpoint = <&hdmi_in_vopl>;
729 };
Jacob Chen17fd3442016-03-14 11:20:17 +0800730 vopl_out_lvds: endpoint@2 {
731 reg = <2>;
732 remote-endpoint = <&lvds_in_vopl>;
733 };
Eric Gao590c4ac2017-05-02 18:32:45 +0800734 vopl_out_mipi: endpoint@3 {
735 reg = <3>;
736 remote-endpoint = <&mipi_in_vopl>;
737 };
738
Simon Glass087e9872015-08-30 16:55:20 -0600739 };
740 };
741
742 vopl_mmu: iommu@ff940300 {
743 compatible = "rockchip,iommu";
744 reg = <0xff940300 0x100>;
745 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
746 interrupt-names = "vopl_mmu";
747 power-domains = <&power RK3288_PD_VIO>;
748 #iommu-cells = <0>;
749 status = "disabled";
750 };
751
752 edp: edp@ff970000 {
753 compatible = "rockchip,rk3288-edp";
754 reg = <0xff970000 0x4000>;
755 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
756 clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
757 rockchip,grf = <&grf>;
758 clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
759 resets = <&cru 111>;
760 reset-names = "edp";
761 power-domains = <&power RK3288_PD_VIO>;
762 status = "disabled";
763 ports {
764 edp_in: port {
765 #address-cells = <1>;
766 #size-cells = <0>;
767 edp_in_vopb: endpoint@0 {
768 reg = <0>;
769 remote-endpoint = <&vopb_out_edp>;
770 };
771 edp_in_vopl: endpoint@1 {
772 reg = <1>;
773 remote-endpoint = <&vopl_out_edp>;
774 };
775 };
776 };
777 };
778
779 hdmi: hdmi@ff980000 {
780 compatible = "rockchip,rk3288-dw-hdmi";
781 reg = <0xff980000 0x20000>;
782 reg-io-width = <4>;
783 ddc-i2c-bus = <&i2c5>;
784 rockchip,grf = <&grf>;
785 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
786 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
787 clock-names = "iahb", "isfr";
788 status = "disabled";
789 ports {
790 hdmi_in: port {
791 #address-cells = <1>;
792 #size-cells = <0>;
793 hdmi_in_vopb: endpoint@0 {
794 reg = <0>;
795 remote-endpoint = <&vopb_out_hdmi>;
796 };
797 hdmi_in_vopl: endpoint@1 {
798 reg = <1>;
799 remote-endpoint = <&vopl_out_hdmi>;
800 };
801 };
802 };
803 };
804
Jacob Chen17fd3442016-03-14 11:20:17 +0800805 lvds: lvds@ff96c000 {
806 compatible = "rockchip,rk3288-lvds";
807 reg = <0xff96c000 0x4000>;
808 clocks = <&cru PCLK_LVDS_PHY>;
809 clock-names = "pclk_lvds";
810 pinctrl-names = "default";
811 pinctrl-0 = <&lcdc0_ctl>;
812 rockchip,grf = <&grf>;
813 status = "disabled";
814 ports {
815 #address-cells = <1>;
816 #size-cells = <0>;
817 lvds_in: port@0 {
818 reg = <0>;
819 #address-cells = <1>;
820 #size-cells = <0>;
821 lvds_in_vopb: endpoint@0 {
822 reg = <0>;
823 remote-endpoint = <&vopb_out_lvds>;
824 };
825 lvds_in_vopl: endpoint@1 {
826 reg = <1>;
827 remote-endpoint = <&vopl_out_lvds>;
828 };
829 };
830 };
831 };
832
Eric Gao590c4ac2017-05-02 18:32:45 +0800833 mipi_dsi0: mipi@ff960000 {
834 compatible = "rockchip,rk3288_mipi_dsi";
835 reg = <0xff960000 0x4000>;
836 clocks = <&cru PCLK_MIPI_DSI0>;
837 clock-names = "pclk_mipi";
838 /*pinctrl-names = "default";
839 pinctrl-0 = <&lcdc0_ctl>;*/
840 rockchip,grf = <&grf>;
841 #address-cells = <1>;
842 #size-cells = <0>;
843 status = "disabled";
844 ports {
Eric Gao590c4ac2017-05-02 18:32:45 +0800845 reg = <1>;
846 mipi_in: port {
847 #address-cells = <1>;
848 #size-cells = <0>;
849 mipi_in_vopb: endpoint@0 {
850 reg = <0>;
851 remote-endpoint = <&vopb_out_mipi>;
852 };
853 mipi_in_vopl: endpoint@1 {
854 reg = <1>;
855 remote-endpoint = <&vopl_out_mipi>;
856 };
857 };
858 };
859 };
860
Simon Glass087e9872015-08-30 16:55:20 -0600861 hdmi_audio: hdmi_audio {
862 compatible = "rockchip,rk3288-hdmi-audio";
863 i2s-controller = <&i2s>;
864 status = "disable";
865 };
866
867 vpu: video-codec@ff9a0000 {
868 compatible = "rockchip,rk3288-vpu";
869 reg = <0xff9a0000 0x800>;
870 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
871 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
872 interrupt-names = "vepu", "vdpu";
873 clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
874 clock-names = "aclk_vcodec", "hclk_vcodec";
875 power-domains = <&power RK3288_PD_VIDEO>;
876 iommus = <&vpu_mmu>;
877 };
878
879 vpu_mmu: iommu@ff9a0800 {
880 compatible = "rockchip,iommu";
881 reg = <0xff9a0800 0x100>;
882 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
883 interrupt-names = "vpu_mmu";
884 power-domains = <&power RK3288_PD_VIDEO>;
885 #iommu-cells = <0>;
886 };
887
888 gpu: gpu@ffa30000 {
889 compatible = "arm,malit764",
890 "arm,malit76x",
891 "arm,malit7xx",
892 "arm,mali-midgard";
893 reg = <0xffa30000 0x10000>;
894 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
895 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
896 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
897 interrupt-names = "JOB", "MMU", "GPU";
898 clocks = <&cru ACLK_GPU>;
899 clock-names = "aclk_gpu";
900 operating-points = <
901 /* KHz uV */
902 100000 950000
903 200000 950000
904 300000 1000000
905 400000 1100000
906 /* 500000 1200000 - See crosbug.com/p/33857 */
907 600000 1250000
908 >;
909 power-domains = <&power RK3288_PD_GPU>;
910 status = "disabled";
911 };
912
913 noc: syscon@ffac0000 {
Simon Glass3386b372015-08-30 16:55:21 -0600914 u-boot,dm-pre-reloc;
Simon Glass087e9872015-08-30 16:55:20 -0600915 compatible = "rockchip,rk3288-noc", "syscon";
916 reg = <0xffac0000 0x2000>;
917 };
918
919 efuse: efuse@ffb40000 {
920 compatible = "rockchip,rk3288-efuse";
921 reg = <0xffb40000 0x10000>;
922 status = "disabled";
923 };
924
925 gic: interrupt-controller@ffc01000 {
926 compatible = "arm,gic-400";
927 interrupt-controller;
928 #interrupt-cells = <3>;
929 #address-cells = <0>;
930
931 reg = <0xffc01000 0x1000>,
932 <0xffc02000 0x1000>,
933 <0xffc04000 0x2000>,
934 <0xffc06000 0x2000>;
935 interrupts = <GIC_PPI 9 0xf04>;
936 };
937
938 cpuidle: cpuidle {
939 compatible = "rockchip,rk3288-cpuidle";
940 };
941
942 usbphy: phy {
943 compatible = "rockchip,rk3288-usb-phy";
944 rockchip,grf = <&grf>;
945 #address-cells = <1>;
946 #size-cells = <0>;
947 status = "disabled";
948
949 usbphy0: usb-phy0 {
950 #phy-cells = <0>;
951 reg = <0x320>;
952 clocks = <&cru SCLK_OTGPHY0>;
953 clock-names = "phyclk";
954 };
955
956 usbphy1: usb-phy1 {
957 #phy-cells = <0>;
958 reg = <0x334>;
959 clocks = <&cru SCLK_OTGPHY1>;
960 clock-names = "phyclk";
961 };
962
963 usbphy2: usb-phy2 {
964 #phy-cells = <0>;
965 reg = <0x348>;
966 clocks = <&cru SCLK_OTGPHY2>;
967 clock-names = "phyclk";
968 };
969 };
970
971 pinctrl: pinctrl {
972 compatible = "rockchip,rk3288-pinctrl";
973 rockchip,grf = <&grf>;
974 rockchip,pmu = <&pmu>;
975 #address-cells = <1>;
976 #size-cells = <1>;
977 ranges;
978
979 gpio0: gpio0@ff750000 {
980 compatible = "rockchip,gpio-bank";
981 reg = <0xff750000 0x100>;
982 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
983 clocks = <&cru PCLK_GPIO0>;
984
985 gpio-controller;
986 #gpio-cells = <2>;
987
988 interrupt-controller;
989 #interrupt-cells = <2>;
990 };
991
992 gpio1: gpio1@ff780000 {
993 compatible = "rockchip,gpio-bank";
994 reg = <0xff780000 0x100>;
995 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
996 clocks = <&cru PCLK_GPIO1>;
997
998 gpio-controller;
999 #gpio-cells = <2>;
1000
1001 interrupt-controller;
1002 #interrupt-cells = <2>;
1003 };
1004
1005 gpio2: gpio2@ff790000 {
1006 compatible = "rockchip,gpio-bank";
1007 reg = <0xff790000 0x100>;
1008 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1009 clocks = <&cru PCLK_GPIO2>;
1010
1011 gpio-controller;
1012 #gpio-cells = <2>;
1013
1014 interrupt-controller;
1015 #interrupt-cells = <2>;
1016 };
1017
1018 gpio3: gpio3@ff7a0000 {
1019 compatible = "rockchip,gpio-bank";
1020 reg = <0xff7a0000 0x100>;
1021 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1022 clocks = <&cru PCLK_GPIO3>;
1023
1024 gpio-controller;
1025 #gpio-cells = <2>;
1026
1027 interrupt-controller;
1028 #interrupt-cells = <2>;
1029 };
1030
1031 gpio4: gpio4@ff7b0000 {
1032 compatible = "rockchip,gpio-bank";
1033 reg = <0xff7b0000 0x100>;
1034 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
1035 clocks = <&cru PCLK_GPIO4>;
1036
1037 gpio-controller;
1038 #gpio-cells = <2>;
1039
1040 interrupt-controller;
1041 #interrupt-cells = <2>;
1042 };
1043
1044 gpio5: gpio5@ff7c0000 {
1045 compatible = "rockchip,gpio-bank";
1046 reg = <0xff7c0000 0x100>;
1047 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
1048 clocks = <&cru PCLK_GPIO5>;
1049
1050 gpio-controller;
1051 #gpio-cells = <2>;
1052
1053 interrupt-controller;
1054 #interrupt-cells = <2>;
1055 };
1056
1057 gpio6: gpio6@ff7d0000 {
1058 compatible = "rockchip,gpio-bank";
1059 reg = <0xff7d0000 0x100>;
1060 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1061 clocks = <&cru PCLK_GPIO6>;
1062
1063 gpio-controller;
1064 #gpio-cells = <2>;
1065
1066 interrupt-controller;
1067 #interrupt-cells = <2>;
1068 };
1069
1070 gpio7: gpio7@ff7e0000 {
1071 compatible = "rockchip,gpio-bank";
1072 reg = <0xff7e0000 0x100>;
1073 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1074 clocks = <&cru PCLK_GPIO7>;
1075
1076 gpio-controller;
1077 #gpio-cells = <2>;
1078
1079 interrupt-controller;
1080 #interrupt-cells = <2>;
1081 };
1082
1083 gpio8: gpio8@ff7f0000 {
1084 compatible = "rockchip,gpio-bank";
1085 reg = <0xff7f0000 0x100>;
1086 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1087 clocks = <&cru PCLK_GPIO8>;
1088
1089 gpio-controller;
1090 #gpio-cells = <2>;
1091
1092 interrupt-controller;
1093 #interrupt-cells = <2>;
1094 };
1095
1096 pcfg_pull_up: pcfg-pull-up {
1097 bias-pull-up;
1098 };
1099
1100 pcfg_pull_down: pcfg-pull-down {
1101 bias-pull-down;
1102 };
1103
1104 pcfg_pull_none: pcfg-pull-none {
1105 bias-disable;
1106 };
1107
1108 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1109 bias-disable;
1110 drive-strength = <12>;
1111 };
1112
1113 sleep {
1114 global_pwroff: global-pwroff {
1115 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>;
1116 };
1117
1118 ddrio_pwroff: ddrio-pwroff {
1119 rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1120 };
1121
1122 ddr0_retention: ddr0-retention {
1123 rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_up>;
1124 };
1125
1126 ddr1_retention: ddr1-retention {
1127 rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_up>;
1128 };
1129 };
1130
1131 i2c0 {
1132 i2c0_xfer: i2c0-xfer {
1133 rockchip,pins = <0 15 RK_FUNC_1 &pcfg_pull_none>,
1134 <0 16 RK_FUNC_1 &pcfg_pull_none>;
1135 };
1136 };
1137
1138 i2c1 {
1139 i2c1_xfer: i2c1-xfer {
1140 rockchip,pins = <8 4 RK_FUNC_1 &pcfg_pull_none>,
1141 <8 5 RK_FUNC_1 &pcfg_pull_none>;
1142 };
1143 };
1144
1145 i2c2 {
1146 i2c2_xfer: i2c2-xfer {
1147 rockchip,pins = <6 9 RK_FUNC_1 &pcfg_pull_none>,
1148 <6 10 RK_FUNC_1 &pcfg_pull_none>;
1149 };
1150 };
1151
1152 i2c3 {
1153 i2c3_xfer: i2c3-xfer {
1154 rockchip,pins = <2 16 RK_FUNC_1 &pcfg_pull_none>,
1155 <2 17 RK_FUNC_1 &pcfg_pull_none>;
1156 };
1157 };
1158
1159 i2c4 {
1160 i2c4_xfer: i2c4-xfer {
1161 rockchip,pins = <7 17 RK_FUNC_1 &pcfg_pull_none>,
1162 <7 18 RK_FUNC_1 &pcfg_pull_none>;
1163 };
1164 };
1165
1166 i2c5 {
1167 i2c5_xfer: i2c5-xfer {
1168 rockchip,pins = <7 19 RK_FUNC_1 &pcfg_pull_none>,
1169 <7 20 RK_FUNC_1 &pcfg_pull_none>;
1170 };
1171 };
1172
1173 i2s0 {
1174 i2s0_bus: i2s0-bus {
1175 rockchip,pins = <6 0 RK_FUNC_1 &pcfg_pull_none>,
1176 <6 1 RK_FUNC_1 &pcfg_pull_none>,
1177 <6 2 RK_FUNC_1 &pcfg_pull_none>,
1178 <6 3 RK_FUNC_1 &pcfg_pull_none>,
1179 <6 4 RK_FUNC_1 &pcfg_pull_none>,
1180 <6 8 RK_FUNC_1 &pcfg_pull_none>;
1181 };
1182 };
1183
Jacob Chen17fd3442016-03-14 11:20:17 +08001184 lcdc0 {
1185 lcdc0_ctl: lcdc0-ctl {
1186 rockchip,pins = <1 24 RK_FUNC_1 &pcfg_pull_none>,
1187 <1 25 RK_FUNC_1 &pcfg_pull_none>,
1188 <1 26 RK_FUNC_1 &pcfg_pull_none>,
1189 <1 27 RK_FUNC_1 &pcfg_pull_none>;
1190 };
1191 };
1192
Simon Glass087e9872015-08-30 16:55:20 -06001193 sdmmc {
1194 sdmmc_clk: sdmmc-clk {
1195 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none>;
1196 };
1197
1198 sdmmc_cmd: sdmmc-cmd {
1199 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up>;
1200 };
1201
1202 sdmmc_cd: sdmcc-cd {
1203 rockchip,pins = <6 22 RK_FUNC_1 &pcfg_pull_up>;
1204 };
1205
1206 sdmmc_bus1: sdmmc-bus1 {
1207 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>;
1208 };
1209
1210 sdmmc_bus4: sdmmc-bus4 {
1211 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up>,
1212 <6 17 RK_FUNC_1 &pcfg_pull_up>,
1213 <6 18 RK_FUNC_1 &pcfg_pull_up>,
1214 <6 19 RK_FUNC_1 &pcfg_pull_up>;
1215 };
1216 };
1217
1218 sdio0 {
1219 sdio0_bus1: sdio0-bus1 {
1220 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>;
1221 };
1222
1223 sdio0_bus4: sdio0-bus4 {
1224 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_up>,
1225 <4 21 RK_FUNC_1 &pcfg_pull_up>,
1226 <4 22 RK_FUNC_1 &pcfg_pull_up>,
1227 <4 23 RK_FUNC_1 &pcfg_pull_up>;
1228 };
1229
1230 sdio0_cmd: sdio0-cmd {
1231 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_up>;
1232 };
1233
1234 sdio0_clk: sdio0-clk {
1235 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none>;
1236 };
1237
1238 sdio0_cd: sdio0-cd {
1239 rockchip,pins = <4 26 RK_FUNC_1 &pcfg_pull_up>;
1240 };
1241
1242 sdio0_wp: sdio0-wp {
1243 rockchip,pins = <4 27 RK_FUNC_1 &pcfg_pull_up>;
1244 };
1245
1246 sdio0_pwr: sdio0-pwr {
1247 rockchip,pins = <4 28 RK_FUNC_1 &pcfg_pull_up>;
1248 };
1249
1250 sdio0_bkpwr: sdio0-bkpwr {
1251 rockchip,pins = <4 29 RK_FUNC_1 &pcfg_pull_up>;
1252 };
1253
1254 sdio0_int: sdio0-int {
1255 rockchip,pins = <4 30 RK_FUNC_1 &pcfg_pull_up>;
1256 };
1257 };
1258
1259 sdio1 {
1260 sdio1_bus1: sdio1-bus1 {
1261 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>;
1262 };
1263
1264 sdio1_bus4: sdio1-bus4 {
1265 rockchip,pins = <3 24 RK_FUNC_4 &pcfg_pull_up>,
1266 <3 25 RK_FUNC_4 &pcfg_pull_up>,
1267 <3 26 RK_FUNC_4 &pcfg_pull_up>,
1268 <3 27 RK_FUNC_4 &pcfg_pull_up>;
1269 };
1270
1271 sdio1_cd: sdio1-cd {
1272 rockchip,pins = <3 28 RK_FUNC_4 &pcfg_pull_up>;
1273 };
1274
1275 sdio1_wp: sdio1-wp {
1276 rockchip,pins = <3 29 RK_FUNC_4 &pcfg_pull_up>;
1277 };
1278
1279 sdio1_bkpwr: sdio1-bkpwr {
1280 rockchip,pins = <3 30 RK_FUNC_4 &pcfg_pull_up>;
1281 };
1282
1283 sdio1_int: sdio1-int {
1284 rockchip,pins = <3 31 RK_FUNC_4 &pcfg_pull_up>;
1285 };
1286
1287 sdio1_cmd: sdio1-cmd {
1288 rockchip,pins = <4 6 RK_FUNC_4 &pcfg_pull_up>;
1289 };
1290
1291 sdio1_clk: sdio1-clk {
1292 rockchip,pins = <4 7 RK_FUNC_4 &pcfg_pull_none>;
1293 };
1294
1295 sdio1_pwr: sdio1-pwr {
1296 rockchip,pins = <4 9 RK_FUNC_4 &pcfg_pull_up>;
1297 };
1298 };
1299
1300 emmc {
1301 emmc_clk: emmc-clk {
1302 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none>;
1303 };
1304
1305 emmc_cmd: emmc-cmd {
1306 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_up>;
1307 };
1308
1309 emmc_pwr: emmc-pwr {
1310 rockchip,pins = <3 9 RK_FUNC_2 &pcfg_pull_up>;
1311 };
1312
1313 emmc_bus1: emmc-bus1 {
1314 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>;
1315 };
1316
1317 emmc_bus4: emmc-bus4 {
1318 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1319 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1320 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1321 <3 3 RK_FUNC_2 &pcfg_pull_up>;
1322 };
1323
1324 emmc_bus8: emmc-bus8 {
1325 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_up>,
1326 <3 1 RK_FUNC_2 &pcfg_pull_up>,
1327 <3 2 RK_FUNC_2 &pcfg_pull_up>,
1328 <3 3 RK_FUNC_2 &pcfg_pull_up>,
1329 <3 4 RK_FUNC_2 &pcfg_pull_up>,
1330 <3 5 RK_FUNC_2 &pcfg_pull_up>,
1331 <3 6 RK_FUNC_2 &pcfg_pull_up>,
1332 <3 7 RK_FUNC_2 &pcfg_pull_up>;
1333 };
1334 };
1335
1336 spi0 {
1337 spi0_clk: spi0-clk {
1338 rockchip,pins = <5 12 RK_FUNC_1 &pcfg_pull_up>;
1339 };
1340 spi0_cs0: spi0-cs0 {
1341 rockchip,pins = <5 13 RK_FUNC_1 &pcfg_pull_up>;
1342 };
1343 spi0_tx: spi0-tx {
1344 rockchip,pins = <5 14 RK_FUNC_1 &pcfg_pull_up>;
1345 };
1346 spi0_rx: spi0-rx {
1347 rockchip,pins = <5 15 RK_FUNC_1 &pcfg_pull_up>;
1348 };
1349 spi0_cs1: spi0-cs1 {
1350 rockchip,pins = <5 16 RK_FUNC_1 &pcfg_pull_up>;
1351 };
1352 };
1353 spi1 {
1354 spi1_clk: spi1-clk {
1355 rockchip,pins = <7 12 RK_FUNC_2 &pcfg_pull_up>;
1356 };
1357 spi1_cs0: spi1-cs0 {
1358 rockchip,pins = <7 13 RK_FUNC_2 &pcfg_pull_up>;
1359 };
1360 spi1_rx: spi1-rx {
1361 rockchip,pins = <7 14 RK_FUNC_2 &pcfg_pull_up>;
1362 };
1363 spi1_tx: spi1-tx {
1364 rockchip,pins = <7 15 RK_FUNC_2 &pcfg_pull_up>;
1365 };
1366 };
1367
1368 spi2 {
1369 spi2_cs1: spi2-cs1 {
1370 rockchip,pins = <8 3 RK_FUNC_1 &pcfg_pull_up>;
1371 };
1372 spi2_clk: spi2-clk {
1373 rockchip,pins = <8 6 RK_FUNC_1 &pcfg_pull_up>;
1374 };
1375 spi2_cs0: spi2-cs0 {
1376 rockchip,pins = <8 7 RK_FUNC_1 &pcfg_pull_up>;
1377 };
1378 spi2_rx: spi2-rx {
1379 rockchip,pins = <8 8 RK_FUNC_1 &pcfg_pull_up>;
1380 };
1381 spi2_tx: spi2-tx {
1382 rockchip,pins = <8 9 RK_FUNC_1 &pcfg_pull_up>;
1383 };
1384 };
1385
1386 uart0 {
1387 uart0_xfer: uart0-xfer {
1388 rockchip,pins = <4 16 RK_FUNC_1 &pcfg_pull_up>,
1389 <4 17 RK_FUNC_1 &pcfg_pull_none>;
1390 };
1391
1392 uart0_cts: uart0-cts {
1393 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_none>;
1394 };
1395
1396 uart0_rts: uart0-rts {
1397 rockchip,pins = <4 19 RK_FUNC_1 &pcfg_pull_none>;
1398 };
1399 };
1400
1401 uart1 {
1402 uart1_xfer: uart1-xfer {
1403 rockchip,pins = <5 8 RK_FUNC_1 &pcfg_pull_up>,
1404 <5 9 RK_FUNC_1 &pcfg_pull_none>;
1405 };
1406
1407 uart1_cts: uart1-cts {
1408 rockchip,pins = <5 10 RK_FUNC_1 &pcfg_pull_none>;
1409 };
1410
1411 uart1_rts: uart1-rts {
1412 rockchip,pins = <5 11 RK_FUNC_1 &pcfg_pull_none>;
1413 };
1414 };
1415
1416 uart2 {
1417 uart2_xfer: uart2-xfer {
1418 rockchip,pins = <7 22 RK_FUNC_1 &pcfg_pull_up>,
1419 <7 23 RK_FUNC_1 &pcfg_pull_none>;
1420 };
1421 /* no rts / cts for uart2 */
1422 };
1423
1424 uart3 {
1425 uart3_xfer: uart3-xfer {
1426 rockchip,pins = <7 7 RK_FUNC_1 &pcfg_pull_up>,
1427 <7 8 RK_FUNC_1 &pcfg_pull_none>;
1428 };
1429
1430 uart3_cts: uart3-cts {
1431 rockchip,pins = <7 9 RK_FUNC_1 &pcfg_pull_none>;
1432 };
1433
1434 uart3_rts: uart3-rts {
1435 rockchip,pins = <7 10 RK_FUNC_1 &pcfg_pull_none>;
1436 };
1437 };
1438
1439 uart4 {
1440 uart4_xfer: uart4-xfer {
1441 rockchip,pins = <5 12 3 &pcfg_pull_up>,
1442 <5 13 3 &pcfg_pull_none>;
1443 };
1444
1445 uart4_cts: uart4-cts {
1446 rockchip,pins = <5 14 3 &pcfg_pull_none>;
1447 };
1448
1449 uart4_rts: uart4-rts {
1450 rockchip,pins = <5 15 3 &pcfg_pull_none>;
1451 };
1452 };
1453
1454 tsadc {
1455 otp_out: otp-out {
1456 rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
1457 };
1458 };
1459
1460 pwm0 {
1461 pwm0_pin: pwm0-pin {
1462 rockchip,pins = <7 0 RK_FUNC_1 &pcfg_pull_none>;
1463 };
1464 };
1465
1466 pwm1 {
1467 pwm1_pin: pwm1-pin {
1468 rockchip,pins = <7 1 RK_FUNC_1 &pcfg_pull_none>;
1469 };
1470 };
1471
1472 pwm2 {
1473 pwm2_pin: pwm2-pin {
1474 rockchip,pins = <7 22 RK_FUNC_3 &pcfg_pull_none>;
1475 };
1476 };
1477
1478 pwm3 {
1479 pwm3_pin: pwm3-pin {
1480 rockchip,pins = <7 23 RK_FUNC_3 &pcfg_pull_none>;
1481 };
1482 };
1483
1484 gmac {
1485 rgmii_pins: rgmii-pins {
1486 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1487 <3 31 3 &pcfg_pull_none>,
1488 <3 26 3 &pcfg_pull_none>,
1489 <3 27 3 &pcfg_pull_none>,
1490 <3 28 3 &pcfg_pull_none_12ma>,
1491 <3 29 3 &pcfg_pull_none_12ma>,
1492 <3 24 3 &pcfg_pull_none_12ma>,
1493 <3 25 3 &pcfg_pull_none_12ma>,
1494 <4 0 3 &pcfg_pull_none>,
1495 <4 5 3 &pcfg_pull_none>,
1496 <4 6 3 &pcfg_pull_none>,
1497 <4 9 3 &pcfg_pull_none_12ma>,
1498 <4 4 3 &pcfg_pull_none_12ma>,
1499 <4 1 3 &pcfg_pull_none>,
1500 <4 3 3 &pcfg_pull_none>;
1501 };
1502
1503 rmii_pins: rmii-pins {
1504 rockchip,pins = <3 30 3 &pcfg_pull_none>,
1505 <3 31 3 &pcfg_pull_none>,
1506 <3 28 3 &pcfg_pull_none>,
1507 <3 29 3 &pcfg_pull_none>,
1508 <4 0 3 &pcfg_pull_none>,
1509 <4 5 3 &pcfg_pull_none>,
1510 <4 4 3 &pcfg_pull_none>,
1511 <4 1 3 &pcfg_pull_none>,
1512 <4 2 3 &pcfg_pull_none>,
1513 <4 3 3 &pcfg_pull_none>;
1514 };
1515 };
Simon Glass15019802016-01-21 19:45:21 -07001516
1517 spdif {
1518 spdif_tx: spdif-tx {
1519 rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
1520 };
1521 };
Simon Glass087e9872015-08-30 16:55:20 -06001522 };
1523
1524 power: power-controller {
1525 compatible = "rockchip,rk3288-power-controller";
1526 #power-domain-cells = <1>;
1527 rockchip,pmu = <&pmu>;
1528 #address-cells = <1>;
1529 #size-cells = <0>;
1530
1531 pd_gpu {
1532 reg = <RK3288_PD_GPU>;
1533 clocks = <&cru ACLK_GPU>;
1534 };
1535
1536 pd_hevc {
1537 reg = <RK3288_PD_HEVC>;
1538 clocks = <&cru ACLK_HEVC>,
1539 <&cru SCLK_HEVC_CABAC>,
1540 <&cru SCLK_HEVC_CORE>,
1541 <&cru HCLK_HEVC>;
1542 };
1543
1544 pd_vio {
1545 reg = <RK3288_PD_VIO>;
1546 clocks = <&cru ACLK_IEP>,
1547 <&cru ACLK_ISP>,
1548 <&cru ACLK_RGA>,
1549 <&cru ACLK_VIP>,
1550 <&cru ACLK_VOP0>,
1551 <&cru ACLK_VOP1>,
1552 <&cru DCLK_VOP0>,
1553 <&cru DCLK_VOP1>,
1554 <&cru HCLK_IEP>,
1555 <&cru HCLK_ISP>,
1556 <&cru HCLK_RGA>,
1557 <&cru HCLK_VIP>,
1558 <&cru HCLK_VOP0>,
1559 <&cru HCLK_VOP1>,
1560 <&cru PCLK_EDP_CTRL>,
1561 <&cru PCLK_HDMI_CTRL>,
1562 <&cru PCLK_LVDS_PHY>,
1563 <&cru PCLK_MIPI_CSI>,
1564 <&cru PCLK_MIPI_DSI0>,
1565 <&cru PCLK_MIPI_DSI1>,
1566 <&cru SCLK_EDP_24M>,
1567 <&cru SCLK_EDP>,
1568 <&cru SCLK_HDMI_CEC>,
1569 <&cru SCLK_HDMI_HDCP>,
1570 <&cru SCLK_ISP_JPE>,
1571 <&cru SCLK_ISP>,
1572 <&cru SCLK_RGA>;
1573 };
1574
1575 pd_video {
1576 reg = <RK3288_PD_VIDEO>;
1577 clocks = <&cru ACLK_VCODEC>,
1578 <&cru HCLK_VCODEC>;
1579 };
1580 };
1581};