#include "skeleton.dtsi" #include "rk3188-pinctrl.dtsi" #include #include "rk3188_io_vol_domain.dtsi" #include / { compatible = "rockchip,rk3188"; interrupt-parent = <&gic>; rockchip,sram = <&sram>; aliases { serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; i2c0 = &i2c0; i2c1 = &i2c1; i2c2 = &i2c2; i2c3 = &i2c3; i2c4 = &i2c4; lcdc0 = &lcdc0; lcdc1 = &lcdc1; spi0 = &spi0; spi1 = &spi1; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <0>; }; cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <1>; }; cpu@2 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <2>; }; cpu@3 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <3>; }; }; twd-wdt@1013c620 { compatible = "arm,cortex-a9-twd-wdt"; reg = <0x1013c620 0x20>; interrupts = ; }; gic: interrupt-controller@1013d000 { compatible = "arm,cortex-a9-gic"; interrupt-controller; #interrupt-cells = <3>; reg = <0x1013d000 0x1000>, <0x1013c100 0x0100>; }; L2: cache-controller@10138000 { compatible = "rockchip,pl310-cache", "arm,pl310-cache"; reg = <0x10138000 0x1000>; cache-unified; cache-level = <2>; arm,tag-latency = <1 1 1>; arm,data-latency = <3 1 2>; rockchip,prefetch-ctrl = <0x70000003>; /* L2X0_DYNAMIC_CLK_GATING_EN | L2X0_STNDBY_MODE_EN */ rockchip,power-ctrl = <0x3>; /* (0x1 << 0) | // Full line of write zero behavior Enabled (0x1 << 25) | // Round-robin replacement (0x1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) | (0x1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT) | (0x1 << L2X0_AUX_CTRL_EARLY_BRESP_SHIFT) */ rockchip,aux-ctrl = <0x72000001 (~0x72000001)>; }; cpu_axi_bus: cpu_axi_bus@10128000 { compatible = "rockchip,cpu_axi_bus"; reg = <0x10128000 0x8000>; qos { dmac { rockchip,offset = <0x1000>; rockchip,priority = <0 0>; }; cpu0 { rockchip,offset = <0x2000>; rockchip,priority = <0 0>; }; cpu1r { rockchip,offset = <0x2080>; rockchip,priority = <0 0>; }; cpu1w { rockchip,offset = <0x2100>; rockchip,priority = <0 0>; }; peri { rockchip,offset = <0x4000>; rockchip,priority = <2 2>; }; gpu { rockchip,offset = <0x5000>; rockchip,priority = <2 1>; }; vpu { rockchip,offset = <0x6000>; }; vop0 { rockchip,offset = <0x7000>; rockchip,priority = <3 3>; }; cif0 { rockchip,offset = <0x7080>; }; ipp { rockchip,offset = <0x7100>; }; vop1 { rockchip,offset = <0x7180>; rockchip,priority = <3 3>; }; cif1 { rockchip,offset = <0x7200>; }; rga { rockchip,offset = <0x7280>; }; }; }; bootrom@10120000 { compatible = "rockchip,bootrom"; reg = <0x10120000 0x4000>; }; bootram@10080000 { compatible = "rockchip,bootram"; reg = <0x10080000 0x20>; /* 32 bytes */ }; sram: sram@10080020 { compatible = "mmio-sram"; reg = <0x10080020 (0x8000 - 0x20)>; /* 32k - 32 */ map-exec; }; pmu@20004000 { compatible = "rockchip,pmu"; reg = <0x20004000 0x4000>; }; timer@20038000 { compatible = "rockchip,timer"; reg = <0x20038000 0x20>; interrupts = ; rockchip,percpu = <0>; }; timer@20038020 { compatible = "rockchip,timer"; reg = <0x20038020 0x20>; interrupts = ; rockchip,percpu = <1>; }; timer@20038040 { compatible = "rockchip,timer"; reg = <0x20038040 0x20>; interrupts = ; rockchip,percpu = <2>; }; timer@20038060 { compatible = "rockchip,timer"; reg = <0x20038060 0x20>; interrupts = ; rockchip,percpu = <3>; }; timer@20038080 { compatible = "rockchip,timer"; reg = <0x20038080 0x20>; interrupts = ; rockchip,broadcast = <1>; }; timer@200380a0 { compatible = "rockchip,timer"; reg = <0x200380a0 0x20>; interrupts = ; rockchip,clocksource = <1>; }; watchdog:wdt@2004c000 { compatible = "rockchip,watch dog"; reg = <0x2004c000 0x100>; clocks = <&clk_gates7 15>; clock-names = "pclk_wdt"; interrupts = ; rockchip,irq = <1>; rockchip,timeout = <5>; rockchip,atboot = <1>; rockchip,debug = <0>; status = "disabled"; }; amba { #address-cells = <1>; #size-cells = <1>; compatible = "arm,amba-bus"; interrupt-parent = <&gic>; ranges; pdma0: pdma@20018000 { compatible = "arm,pl330", "arm,primecell"; reg = <0x20018000 0x4000>; interrupts = , ; #dma-cells = <1>; }; pdma1: pdma@20078000 { compatible = "arm,pl330", "arm,primecell"; reg = <0x20078000 0x4000>; interrupts = , ; #dma-cells = <1>; }; }; uart0: serial@10124000 { compatible = "rockchip,serial"; reg = <0x10124000 0x100>; interrupts = ; clock-frequency = <24000000>; clocks = <&clk_uart0>, <&clk_gates8 0>; clock-names = "sclk_uart", "pclk_uart"; reg-shift = <2>; reg-io-width = <4>; dmas = <&pdma0 0>, <&pdma0 1>; #dma-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; status = "disabled"; }; uart1: serial@10126000 { compatible = "rockchip,serial"; reg = <0x10126000 0x100>; interrupts = ; clock-frequency = <24000000>; clocks = <&clk_uart1>, <&clk_gates8 1>; clock-names = "sclk_uart", "pclk_uart"; reg-shift = <2>; reg-io-width = <4>; dmas = <&pdma0 2>, <&pdma0 3>; #dma-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>; status = "disabled"; }; uart2: serial@20064000 { compatible = "rockchip,serial"; reg = <0x20064000 0x100>; interrupts = ; clock-frequency = <24000000>; clocks = <&clk_uart2>, <&clk_gates8 2>; clock-names = "sclk_uart", "pclk_uart"; current-speed = <115200>; reg-shift = <2>; reg-io-width = <4>; pinctrl-names = "default"; pinctrl-0 = <&uart2_xfer>; status = "disabled"; }; uart3: serial@20068000 { compatible = "rockchip,serial"; reg = <0x20068000 0x100>; interrupts = ; clock-frequency = <24000000>; clocks = <&clk_uart3>, <&clk_gates8 3>; clock-names = "sclk_uart", "pclk_uart"; reg-shift = <2>; reg-io-width = <4>; dmas = <&pdma1 8>, <&pdma1 9>; #dma-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&uart3_xfer &uart3_cts &uart3_rts>; status = "disabled"; }; fiq-debugger { compatible = "rockchip,fiq-debugger"; rockchip,serial-id = <2>; rockchip,signal-irq = <112>; rockchip,wake-irq = <0>; status = "disabled"; }; spi0: spi@20070000 { compatible = "rockchip,rockchip-spi"; reg = <0x20070000 0x1000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&spi0_txd &spi0_rxd &spi0_clk &spi0_cs0 &spi0_cs1>; rockchip,spi-src-clk = <0>; num-cs = <2>; clocks =<&clk_spi0>, <&clk_gates7 12>; clock-names = "spi","pclk_spi0"; dmas = <&pdma1 10>, <&pdma1 11>; #dma-cells = <2>; dma-names = "tx", "rx"; status = "disabled"; }; spi1: spi@20074000 { compatible = "rockchip,rockchip-spi"; reg = <0x20074000 0x1000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&spi1_txd &spi1_rxd &spi1_clk &spi1_cs0 &spi1_cs1>; rockchip,spi-src-clk = <1>; num-cs = <2>; clocks = <&clk_spi1>, <&clk_gates7 13>; clock-names = "spi","pclk_spi1"; dmas = <&pdma1 12>, <&pdma1 13>; #dma-cells = <2>; dma-names = "tx", "rx"; status = "disabled"; }; i2c0: i2c@2002d000 { compatible = "rockchip,rk30-i2c"; reg = <0x2002d000 0x1000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&i2c0_sda &i2c0_scl>; pinctrl-1 = <&i2c0_gpio>; gpios = <&gpio1 GPIO_D0 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D1 GPIO_ACTIVE_LOW>; clocks = <&clk_gates8 4>; rockchip,check-idle = <1>; status = "disabled"; }; i2c1: i2c@2002f000 { compatible = "rockchip,rk30-i2c"; reg = <0x2002f000 0x1000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&i2c1_sda &i2c1_scl>; pinctrl-1 = <&i2c1_gpio>; gpios = <&gpio1 GPIO_D2 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D3 GPIO_ACTIVE_LOW>; clocks = <&clk_gates8 5>; rockchip,check-idle = <1>; status = "disabled"; }; i2c2: i2c@20056000 { compatible = "rockchip,rk30-i2c"; reg = <0x20056000 0x1000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&i2c2_sda &i2c2_scl>; pinctrl-1 = <&i2c2_gpio>; gpios = <&gpio1 GPIO_D4 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D5 GPIO_ACTIVE_LOW>; clocks = <&clk_gates8 6>; rockchip,check-idle = <1>; status = "disabled"; }; i2c3: i2c@2005a000 { compatible = "rockchip,rk30-i2c"; reg = <0x2005a000 0x1000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&i2c3_sda &i2c3_scl>; pinctrl-1 = <&i2c3_gpio>; gpios = <&gpio3 GPIO_B6 GPIO_ACTIVE_LOW>, <&gpio3 GPIO_B7 GPIO_ACTIVE_LOW>; clocks = <&clk_gates8 7>; rockchip,check-idle = <1>; status = "disabled"; }; i2c4: i2c@2005e000 { compatible = "rockchip,rk30-i2c"; reg = <0x2005e000 0x1000>; interrupts = ; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&i2c4_sda &i2c4_scl>; pinctrl-1 = <&i2c4_gpio>; gpios = <&gpio1 GPIO_D6 GPIO_ACTIVE_LOW>, <&gpio1 GPIO_D7 GPIO_ACTIVE_LOW>; clocks = <&clk_gates8 8>; rockchip,check-idle = <1>; status = "disabled"; }; clocks-init{ compatible = "rockchip,clocks-init"; rockchip,clocks-init-parent = <&clk_core &clk_apll>, <&aclk_cpu_mux &clk_gpll>,/*FIXME*/ <&aclk_peri_mux &clk_gpll>, <&clk_i2s_pll_mux &clk_cpll>, <&clk_uart_pll_mux &clk_gpll>; rockchip,clocks-init-rate = <&clk_core 792000000>, <&clk_gpll 768000000>, <&clk_cpll 594000000>, <&aclk_cpu 192000000>, <&hclk_cpu 96000000>, <&pclk_cpu 48000000>, <&pclk_ahb2apb 48000000>, <&aclk_peri 192000000>, <&hclk_peri 96000000>, <&pclk_peri 48000000>, <&clk_gpu 200000000>, <&aclk_lcdc0 300000000>, <&aclk_lcdc1 300000000>; }; fb: fb{ compatible = "rockchip,rk-fb"; rockchip,disp-mode = ; }; nandc: nandc { compatible = "rockchip,rk-nandc"; reg = <0x10050000 0x4000>; interrupts = ; }; lcdc0:lcdc@1010c000 { compatible = "rockchip,rk3188-lcdc"; rockchip,prop = ; rochchip,pwr18 = <0>; reg = <0x1010c000 0x1000>; interrupts = ; status = "disabled"; }; lcdc1:lcdc@1010e000 { compatible = "rockchip,rk3188-lcdc"; rockchip,prop = ; rockchip,pwr18 = <0>; reg = <0x1010e000 0x1000>; interrupts = ; pinctrl-names = "default", "gpio"; pinctrl-0 = <&lcdc1_lcdc>; pinctrl-1 = <&lcdc1_gpio>; status = "disabled"; }; rga@10114000 { compatible = "rockchip,rga"; reg = <0x10114000 0x1000>; interrupts = ; clocks = <&clk_gates6 10>, <&clk_gates6 11>; clock-names = "hclk_rga", "aclk_rga"; }; adc: adc@2006c000 { compatible = "rockchip,saradc"; reg = <0x2006c000 0x100>; interrupts = ; #io-channel-cells = <1>; io-channel-ranges; rockchip,adc-vref = <1800>; clock-frequency = <1000000>; clocks = <&clk_saradc>, <&clk_gates7 14>; clock-names = "saradc", "pclk_saradc"; status = "disabled"; }; spdif: rockchip-spdif@0x1011e000 { compatible = "rockchip-spdif"; reg = <0x1011e000 0x2000>; clocks = <&clk_spdif>; interrupts = ; dmas = <&pdma0 8>; dma-names = "tx"; pinctrl-names = "default"; pinctrl-0 = <&spdif_tx>; }; i2s0: rockchip-i2s@0x1011a000 { compatible = "rockchip-i2s"; reg = <0x1011a000 0x2000>; i2s-id = <0>; clocks = <&clk_i2s>; clock-names = "i2s_clk"; interrupts = ; dmas = <&pdma0 6>, <&pdma0 7>; dma-names = "tx", "rx"; pinctrl-names = "default", "sleep"; pinctrl-0 = <&i2s0_mclk &i2s0_sclk &i2s0_lrckrx &i2s0_lrcktx &i2s0_sdi &i2s0_sdo>; pinctrl-1 = <&i2s0_gpio>; }; pwm0: pwm@20030000{ compatible = "rockchip,pwm"; reg = <0x20030000 0x10>; #pwm-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&pwm0_pin>; status = "disabled"; }; pwm1: pwm@20030010{ compatible = "rockchip,pwm"; reg = <0x20030010 0x10>; /*0x20030000*/ #pwm-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&pwm1_pin>; status = "disabled"; }; pwm2: pwm@20050020{ compatible = "rockchip,pwm"; reg = <0x20050020 0x10>; /*0x20030000*/ #pwm-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&pwm2_pin>; status = "disabled"; }; pwm3: pwm@20050030{ compatible = "rockchip,pwm"; reg = <0x20050030 0x10>; /*0x20030000*/ #pwm-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&pwm3_pin>; status = "disabled"; }; dvfs { vd_cpu: vd_cpu { regulator_name="vdd_arm"; suspend_volt=<1000>; //mV pd_a9 { clk_core_dvfs_table: clk_core { operating-points = < /* KHz uV */ 312000 900000 504000 950000 816000 1000000 1008000 1100000 1200000 1200000 1416000 1300000 1608000 1350000 >; }; }; }; vd_core: vd_core { regulator_name="vdd_logic"; suspend_volt=<1000>; //mV pd_gpu { clk_gpu_dvfs_table: clk_gpu { operating-points = < /* KHz uV */ 200000 1200000 300000 1200000 400000 1200000 >; }; }; pd_ddr { clk_ddr_dvfs_table: clk_ddr { operating-points = < /* KHz uV */ 200000 1200000 300000 1200000 400000 1200000 >; }; }; }; }; ion{ compatible = "rockchip,ion"; #address-cells = <1>; #size-cells = <0>; rockchip,ion-heap@1 { /* CMA HEAP */ compatible = "rockchip,ion-reserve"; reg = <1>; memory-reservation = <0x00000000 0x10000000>; /* 256MB */ }; rockchip,ion-heap@3 { /* SYSTEM HEAP */ reg = <3>; }; }; dwc_control_usb: dwc-control-usb@200080ac { compatible = "rockchip,rk3188-dwc-control-usb"; reg = <0x200080ac 0x4>, <0x2000810c 0x10>, <0x2000811c 0x10>, <0x2000812c 0x8>, <0x20008138 0x8>; reg-names = "GRF_SOC_STATUS0", "GRF_UOC0_BASE", "GRF_UOC1_BASE", "GRF_UOC2_BASE", "GRF_UOC3_BASE"; interrupts = ; interrupt-names = "bvalid"; gpios = <&gpio0 GPIO_C0 GPIO_ACTIVE_LOW>, <&gpio3 GPIO_D5 GPIO_ACTIVE_LOW>; clocks = <&clk_gates4 5>; clock-names = "hclk_usb_peri"; }; usb@10180000 { compatible = "rockchip,rk3188_usb20_otg"; reg = <0x10180000 0x40000>; interrupts = ; clocks = <&clk_otgphy0_480m>, <&clk_gates5 13>; clock-names = "otgphy0", "hclk_otg0"; }; usb@101c0000 { compatible = "rockchip,rk3188_usb20_host"; reg = <0x101c0000 0x40000>; interrupts = ; clocks = <&clk_otgphy1_480m>, <&clk_gates7 3>; clock-names = "otgphy1", "hclk_otg1"; }; hsic@10240000 { compatible = "rockchip,rk3188_rk_hsic_host"; reg = <0x10240000 0x40000>; interrupts = ; clocks = <&clk_hsicphy480m>, <&clk_gates7 4>, <&clk_hsicphy12m>, <&clk_otgphy1_480m>; clock-names = "hsicphy480m", "hclk_hsic", "hsicphy12m", "hsic_otgphy1"; }; vmac@10204000 { compatible = "rockchip,vmac"; reg = <0x10204000 0x4000>; interrupts = ; pinctrl-names = "default", "gpio"; pinctrl-0 = <&rmii_clkoutpin &rmii_txpins &rmii_rxpins &rmii_mdpins>; pinctrl-1 = <&rmii_clkinpin &rmii_txpins &rmii_rxpins &rmii_mdpins>; }; };