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