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