1 #include <dt-bindings/clock/ddr.h>
2 #include <dt-bindings/rkfb/rk_fb.h>
3 #include <dt-bindings/suspend/rockchip-pm.h>
4 #include <dt-bindings/sensor-dev.h>
6 #include "skeleton.dtsi"
7 #include "rk3188-pinctrl.dtsi"
8 #include "rk3188-clocks.dtsi"
9 #include "rk3188_io_vol_domain.dtsi"
10 #include "rk3188-mmc.dtsi"
13 compatible = "rockchip,rk3188";
14 interrupt-parent = <&gic>;
15 rockchip,sram = <&sram>;
39 compatible = "arm,cortex-a9";
44 compatible = "arm,cortex-a9";
49 compatible = "arm,cortex-a9";
54 compatible = "arm,cortex-a9";
60 compatible = "arm,cortex-a9-twd-wdt";
61 reg = <0x1013c620 0x20>;
62 interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
65 gic: interrupt-controller@1013d000 {
66 compatible = "arm,cortex-a9-gic";
68 #interrupt-cells = <3>;
69 reg = <0x1013d000 0x1000>,
73 L2: cache-controller@10138000 {
74 compatible = "rockchip,pl310-cache", "arm,pl310-cache";
75 reg = <0x10138000 0x1000>;
78 arm,tag-latency = <1 1 1>;
79 arm,data-latency = <3 1 2>;
80 rockchip,prefetch-ctrl = <0x70000003>;
81 /* L2X0_DYNAMIC_CLK_GATING_EN | L2X0_STNDBY_MODE_EN */
82 rockchip,power-ctrl = <0x3>;
84 (0x1 << 0) | // Full line of write zero behavior Enabled
85 (0x1 << 25) | // Round-robin replacement
86 (0x1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) |
87 (0x1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT) |
88 (0x1 << L2X0_AUX_CTRL_EARLY_BRESP_SHIFT)
90 rockchip,aux-ctrl = <0x72000001 (~0x72000001)>;
93 cpu_axi_bus: cpu_axi_bus@10128000 {
94 compatible = "rockchip,cpu_axi_bus";
95 reg = <0x10128000 0x8000>;
98 rockchip,offset = <0x1000>;
99 rockchip,priority = <0 0>;
102 rockchip,offset = <0x2000>;
103 rockchip,priority = <0 0>;
106 rockchip,offset = <0x2080>;
107 rockchip,priority = <0 0>;
110 rockchip,offset = <0x2100>;
111 rockchip,priority = <0 0>;
114 rockchip,offset = <0x4000>;
115 rockchip,priority = <2 2>;
118 rockchip,offset = <0x5000>;
119 rockchip,priority = <2 1>;
122 rockchip,offset = <0x6000>;
125 rockchip,offset = <0x7000>;
126 rockchip,priority = <3 3>;
129 rockchip,offset = <0x7080>;
132 rockchip,offset = <0x7100>;
135 rockchip,offset = <0x7180>;
136 rockchip,priority = <3 3>;
139 rockchip,offset = <0x7200>;
142 rockchip,offset = <0x7280>;
148 compatible = "rockchip,bootrom";
149 reg = <0x10120000 0x4000>;
153 compatible = "rockchip,bootram";
154 reg = <0x10080000 0x20>; /* 32 bytes */
157 sram: sram@10080020 {
158 compatible = "mmio-sram";
159 reg = <0x10080020 (0x8000 - 0x20)>; /* 32k - 32 */
164 compatible = "rockchip,pmu";
165 reg = <0x20004000 0x4000>;
169 compatible = "rockchip,timer";
170 reg = <0x20038000 0x20>;
171 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
172 rockchip,percpu = <0>;
176 compatible = "rockchip,timer";
177 reg = <0x20038020 0x20>;
178 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
179 rockchip,percpu = <1>;
183 compatible = "rockchip,timer";
184 reg = <0x20038040 0x20>;
185 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
186 rockchip,percpu = <2>;
190 compatible = "rockchip,timer";
191 reg = <0x20038060 0x20>;
192 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
193 rockchip,percpu = <3>;
197 compatible = "rockchip,timer";
198 reg = <0x20038080 0x20>;
199 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
200 rockchip,broadcast = <1>;
204 compatible = "rockchip,timer";
205 reg = <0x200380a0 0x20>;
206 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
207 rockchip,clocksource = <1>;
210 watchdog:wdt@2004c000 {
211 compatible = "rockchip,watch dog";
212 reg = <0x2004c000 0x100>;
213 clocks = <&clk_gates7 15>;
214 clock-names = "pclk_wdt";
215 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
217 rockchip,timeout = <5>;
218 rockchip,atboot = <1>;
219 rockchip,debug = <0>;
224 #address-cells = <1>;
226 compatible = "arm,amba-bus";
227 interrupt-parent = <&gic>;
230 pdma0: pdma@20018000 {
231 compatible = "arm,pl330", "arm,primecell";
232 reg = <0x20018000 0x4000>;
233 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
234 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
239 pdma1: pdma@20078000 {
240 compatible = "arm,pl330", "arm,primecell";
241 reg = <0x20078000 0x4000>;
242 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
243 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
250 uart0: serial@10124000 {
251 compatible = "rockchip,serial";
252 reg = <0x10124000 0x100>;
253 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
254 clock-frequency = <24000000>;
255 clocks = <&clk_uart0>, <&clk_gates8 0>;
256 clock-names = "sclk_uart", "pclk_uart";
259 dmas = <&pdma0 0>, <&pdma0 1>;
261 pinctrl-names = "default";
262 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
266 uart1: serial@10126000 {
267 compatible = "rockchip,serial";
268 reg = <0x10126000 0x100>;
269 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
270 clock-frequency = <24000000>;
271 clocks = <&clk_uart1>, <&clk_gates8 1>;
272 clock-names = "sclk_uart", "pclk_uart";
275 dmas = <&pdma0 2>, <&pdma0 3>;
277 pinctrl-names = "default";
278 pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
282 uart2: serial@20064000 {
283 compatible = "rockchip,serial";
284 reg = <0x20064000 0x100>;
285 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
286 clock-frequency = <24000000>;
287 clocks = <&clk_uart2>, <&clk_gates8 2>;
288 clock-names = "sclk_uart", "pclk_uart";
289 current-speed = <115200>;
292 pinctrl-names = "default";
293 pinctrl-0 = <&uart2_xfer>;
297 uart3: serial@20068000 {
298 compatible = "rockchip,serial";
299 reg = <0x20068000 0x100>;
300 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
301 clock-frequency = <24000000>;
302 clocks = <&clk_uart3>, <&clk_gates8 3>;
303 clock-names = "sclk_uart", "pclk_uart";
306 dmas = <&pdma1 8>, <&pdma1 9>;
308 pinctrl-names = "default";
309 pinctrl-0 = <&uart3_xfer &uart3_cts &uart3_rts>;
314 compatible = "rockchip,fiq-debugger";
315 rockchip,serial-id = <2>;
316 rockchip,signal-irq = <112>;
317 rockchip,wake-irq = <0>;
322 compatible = "rockchip,rockchip-spi";
323 reg = <0x20070000 0x1000>;
324 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
325 #address-cells = <1>;
327 pinctrl-names = "default";
328 pinctrl-0 = <&spi0_txd &spi0_rxd &spi0_clk &spi0_cs0 &spi0_cs1>;
329 rockchip,spi-src-clk = <0>;
331 clocks =<&clk_spi0>, <&clk_gates7 12>;
332 clock-names = "spi","pclk_spi0";
333 dmas = <&pdma1 10>, <&pdma1 11>;
335 dma-names = "tx", "rx";
340 compatible = "rockchip,rockchip-spi";
341 reg = <0x20074000 0x1000>;
342 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
343 #address-cells = <1>;
345 pinctrl-names = "default";
346 pinctrl-0 = <&spi1_txd &spi1_rxd &spi1_clk &spi1_cs0 &spi1_cs1>;
347 rockchip,spi-src-clk = <1>;
349 clocks = <&clk_spi1>, <&clk_gates7 13>;
350 clock-names = "spi","pclk_spi1";
351 dmas = <&pdma1 12>, <&pdma1 13>;
353 dma-names = "tx", "rx";
358 compatible = "rockchip,rk30-i2c";
359 reg = <0x2002d000 0x1000>;
360 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
361 #address-cells = <1>;
363 pinctrl-names = "default", "gpio";
364 pinctrl-0 = <&i2c0_sda &i2c0_scl>;
365 pinctrl-1 = <&i2c0_gpio>;
366 gpios = <&gpio1 GPIO_D0 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D1 GPIO_ACTIVE_LOW>;
367 clocks = <&clk_gates8 4>;
368 rockchip,check-idle = <1>;
373 compatible = "rockchip,rk30-i2c";
374 reg = <0x2002f000 0x1000>;
375 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
376 #address-cells = <1>;
378 pinctrl-names = "default", "gpio";
379 pinctrl-0 = <&i2c1_sda &i2c1_scl>;
380 pinctrl-1 = <&i2c1_gpio>;
381 gpios = <&gpio1 GPIO_D2 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D3 GPIO_ACTIVE_LOW>;
382 clocks = <&clk_gates8 5>;
383 rockchip,check-idle = <1>;
388 compatible = "rockchip,rk30-i2c";
389 reg = <0x20056000 0x1000>;
390 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
391 #address-cells = <1>;
393 pinctrl-names = "default", "gpio";
394 pinctrl-0 = <&i2c2_sda &i2c2_scl>;
395 pinctrl-1 = <&i2c2_gpio>;
396 gpios = <&gpio1 GPIO_D4 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D5 GPIO_ACTIVE_LOW>;
397 clocks = <&clk_gates8 6>;
398 rockchip,check-idle = <1>;
403 compatible = "rockchip,rk30-i2c";
404 reg = <0x2005a000 0x1000>;
405 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
406 #address-cells = <1>;
408 pinctrl-names = "default", "gpio";
409 pinctrl-0 = <&i2c3_sda &i2c3_scl>;
410 pinctrl-1 = <&i2c3_gpio>;
411 gpios = <&gpio3 GPIO_B6 GPIO_ACTIVE_LOW>, <&gpio3 GPIO_B7 GPIO_ACTIVE_LOW>;
412 clocks = <&clk_gates8 7>;
413 rockchip,check-idle = <1>;
418 compatible = "rockchip,rk30-i2c";
419 reg = <0x2005e000 0x1000>;
420 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
421 #address-cells = <1>;
423 pinctrl-names = "default", "gpio";
424 pinctrl-0 = <&i2c4_sda &i2c4_scl>;
425 pinctrl-1 = <&i2c4_gpio>;
426 gpios = <&gpio1 GPIO_D6 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D7 GPIO_ACTIVE_LOW>;
427 clocks = <&clk_gates8 8>;
428 rockchip,check-idle = <1>;
433 compatible = "rockchip,clocks-init";
434 rockchip,clocks-init-parent =
435 <&clk_core &clk_apll>, <&aclk_cpu_mux &clk_gpll>,/*FIXME*/
436 <&aclk_peri_mux &clk_gpll>, <&clk_i2s_pll_mux &clk_cpll>,
437 <&clk_uart_pll_mux &clk_gpll>;
438 rockchip,clocks-init-rate =
439 <&clk_core 792000000>, <&clk_gpll 768000000>,
440 <&clk_cpll 594000000>, <&aclk_cpu 192000000>,
441 <&hclk_cpu 96000000>, <&pclk_cpu 48000000>,
442 <&pclk_ahb2apb 48000000>, <&aclk_peri 192000000>,
443 <&hclk_peri 96000000>, <&pclk_peri 48000000>,
444 <&clk_gpu 200000000>, <&aclk_lcdc0 300000000>,
445 <&aclk_lcdc1 300000000>;
448 compatible = "rockchip,rkpm_suspend";
450 // define value is in dt-bindint/suspend/rockchip-pm.h
460 rockchip,pmic-gpios=<
461 RKPM_GPIOS_SETTING(GPIO0_A0,RKPM_GPIOS_OUTPUT,RKPM_GPIOS_OUT_H)
462 RKPM_GPIOS_SETTING(GPIO0_A1,RKPM_GPIOS_OUTPUT,RKPM_GPIOS_OUT_H)
467 compatible = "rockchip,rk-fb";
468 rockchip,disp-mode = <DUAL>;
471 rk_screen: rk_screen{
472 compatible = "rockchip,screen";
476 compatible = "rockchip,rk-nandc";
477 reg = <0x10050000 0x4000>;
478 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
481 lcdc0:lcdc@1010c000 {
482 compatible = "rockchip,rk3188-lcdc";
483 rockchip,prop = <PRMRY>;
484 rochchip,pwr18 = <0>;
485 reg = <0x1010c000 0x1000>;
486 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
490 lcdc1:lcdc@1010e000 {
491 compatible = "rockchip,rk3188-lcdc";
492 rockchip,prop = <EXTEND>;
493 rockchip,pwr18 = <0>;
494 reg = <0x1010e000 0x1000>;
495 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
496 pinctrl-names = "default", "gpio";
497 pinctrl-0 = <&lcdc1_lcdc>;
498 pinctrl-1 = <&lcdc1_gpio>;
503 compatible = "rockchip,rga";
504 reg = <0x10114000 0x1000>;
505 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
506 clocks = <&clk_gates6 10>, <&clk_gates6 11>;
507 clock-names = "hclk_rga", "aclk_rga";
511 compatible = "rockchip,saradc";
512 reg = <0x2006c000 0x100>;
513 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
514 #io-channel-cells = <1>;
516 rockchip,adc-vref = <1800>;
517 clock-frequency = <1000000>;
518 clocks = <&clk_saradc>, <&clk_gates7 14>;
519 clock-names = "saradc", "pclk_saradc";
523 spdif: rockchip-spdif@0x1011e000 {
524 compatible = "rockchip-spdif";
525 reg = <0x1011e000 0x2000>;
526 clocks = <&clk_spdif>;
527 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
530 pinctrl-names = "default";
531 pinctrl-0 = <&spdif_tx>;
534 i2s0: rockchip-i2s@0x1011a000 {
535 compatible = "rockchip-i2s";
536 reg = <0x1011a000 0x2000>;
539 clock-names = "i2s_clk";
540 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
543 dma-names = "tx", "rx";
544 pinctrl-names = "default", "sleep";
545 pinctrl-0 = <&i2s0_mclk &i2s0_sclk &i2s0_lrckrx &i2s0_lrcktx &i2s0_sdi &i2s0_sdo>;
546 pinctrl-1 = <&i2s0_gpio>;
550 compatible = "rockchip,pwm";
551 reg = <0x20030000 0x10>;
553 pinctrl-names = "default";
554 pinctrl-0 = <&pwm0_pin>;
560 compatible = "rockchip,pwm";
561 reg = <0x20030010 0x10>; /*0x20030000*/
563 pinctrl-names = "default";
564 pinctrl-0 = <&pwm1_pin>;
569 compatible = "rockchip,pwm";
570 reg = <0x20050020 0x10>; /*0x20030000*/
572 pinctrl-names = "default";
573 pinctrl-0 = <&pwm2_pin>;
579 compatible = "rockchip,pwm";
580 reg = <0x20050030 0x10>; /*0x20030000*/
582 pinctrl-names = "default";
583 pinctrl-0 = <&pwm3_pin>;
590 regulator_name="vdd_arm";
591 suspend_volt=<1000>; //mV
611 regulator_name="vdd_logic";
612 suspend_volt=<1000>; //mV
640 compatible = "rockchip,ion";
641 #address-cells = <1>;
643 rockchip,ion-heap@1 { /* CMA HEAP */
644 compatible = "rockchip,ion-reserve";
646 memory-reservation = <0x00000000 0x10000000>; /* 256MB */
648 rockchip,ion-heap@3 { /* SYSTEM HEAP */
653 dwc_control_usb: dwc-control-usb@200080ac {
654 compatible = "rockchip,rk3188-dwc-control-usb";
655 reg = <0x200080ac 0x4>,
660 reg-names = "GRF_SOC_STATUS0",
665 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
666 interrupt-names = "otg_bvalid";
667 gpios = <&gpio0 GPIO_C0 GPIO_ACTIVE_LOW>, <&gpio3 GPIO_D5 GPIO_ACTIVE_LOW>;
668 clocks = <&clk_gates4 5>;
669 clock-names = "hclk_usb_peri";
673 compatible = "rockchip,rk3188_usb20_otg";
674 reg = <0x10180000 0x40000>;
675 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
676 clocks = <&clk_otgphy0_480m>, <&clk_gates5 13>;
677 clock-names = "otgphy0", "hclk_otg0";
681 compatible = "rockchip,rk3188_usb20_host";
682 reg = <0x101c0000 0x40000>;
683 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
684 clocks = <&clk_otgphy1_480m>, <&clk_gates7 3>;
685 clock-names = "otgphy1", "hclk_otg1";
689 compatible = "rockchip,rk3188_rk_hsic_host";
690 reg = <0x10240000 0x40000>;
691 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
692 clocks = <&clk_hsicphy480m>, <&clk_gates7 4>,
693 <&clk_hsicphy12m>, <&clk_otgphy1_480m>;
694 clock-names = "hsicphy480m", "hclk_hsic",
695 "hsicphy12m", "hsic_otgphy1";
699 compatible = "rockchip,vmac";
700 reg = <0x10204000 0x4000>;
701 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
702 pinctrl-names = "default", "gpio";
703 pinctrl-0 = <&rmii_clkoutpin &rmii_txpins &rmii_rxpins &rmii_mdpins>;
704 pinctrl-1 = <&rmii_clkinpin &rmii_txpins &rmii_rxpins &rmii_mdpins>;