Merge branch develop-3.10
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / rk312x.dtsi
index 05ac265b1e5da0722c1d189762facf892f1ebfcd..864342eed390a63e2129dd9bc491104bd89ca6ee 100755 (executable)
                };
        };
 
-       sram: sram@10080000 {
+       sram: sram@10080400 {
                compatible = "mmio-sram";
-               reg = <0x10080000 0x2000>;
+               reg = <0x10080400 0x1C00>;
                map-exec;
                map-cacheable;
        };
                pdma: pdma@20078000 {
                        compatible = "arm,pl330", "arm,primecell";
                        reg = <0x20078000 0x4000>;
+                       clocks = <&clk_gates5 1>;
+                       clock-names = "apb_pclk";
                        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
                status = "disabled";
        };
 
-       clocks-init{
+       rockchip_clocks_init: clocks-init{
                compatible = "rockchip,clocks-init";
                rockchip,clocks-init-parent =
                        <&clk_core &clk_apll>, <&aclk_cpu &clk_gpll_div2>,
                        <&clk_tsp &clk_gpll_div2>, <&clk_nandc &clk_gpll_div2>,
                        <&clk_mac_pll &clk_cpll>;
                rockchip,clocks-init-rate =
-                       <&clk_core 816000000>, <&clk_gpll 594000000>,
+                       <&clk_core 600000000>, <&clk_gpll 594000000>,
                        <&clk_cpll 400000000>, <&aclk_cpu 300000000>,
                        <&hclk_cpu_pre 150000000>, <&pclk_cpu_pre 75000000>,
                        <&aclk_peri 300000000>, <&hclk_peri_pre 150000000>,
                                /*aclk_peri_pre*/
                                //<&clk_gates10 10>,/*aclk_gmac*/
                                <&clk_gates4 3>,/*aclk_peri_axi_matrix*/
-                               <&clk_gates5 1>,/*aclk_dmac2*/
+                               //<&clk_gates5 1>,/*aclk_dmac2*/
                                <&clk_gates9 15>,/*aclk_peri_niu*/
                                <&clk_gates9 2>,/*g_pclk_pmu*/
                                <&clk_gates9 3>,/*g_pclk_pmu_noc*/
                status = "disabled";
        };
 
-       i2s0: i2s@10220000 {
+       i2s0: i2s0@10220000 {
                compatible = "rockchip-i2s";
                reg = <0x10220000 0x1000>;
                i2s-id = <0>;
                status = "disabled";
        };
 
-       i2s1: i2s@10200000 {
+       i2s1: i2s1@10200000 {
                compatible = "rockchip-i2s";
                reg = <0x10200000 0x1000>;
                i2s-id = <1>;
        };      
 
        dsihost0: mipi@10110000{
-               compatible = "rockchip,rk32-dsi";
+               compatible = "rockchip,rk312x-dsi";
                rockchip,prop = <0>;
                reg = <0x10110000 0x4000>, <0x20038000 0x4000>;
                reg-names = "mipi_dsi_host" ,"mipi_dsi_phy";
                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&clk_gates2 15>, <&clk_gates5 0> ;//, <&pd_mipidsi>;
-               clock-names = "clk_mipi_24m", "pclk_mipi_dsi";//, "pd_mipi_dsi";
+               clocks = <&clk_gates2 15>, <&clk_gates5 0>, <&clk_gates9 6>, <&clk_gates9 5>, <&pd_mipidsi>;
+               clock-names = "clk_mipi_24m", "pclk_mipi_dsi", "pclk_mipi_dsi_host", "hclk_vio_h2p", "pd_mipi_dsi";
                status = "okay";
        };
 
                interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
-               pinctrl-names = "default", "idle";
+               pinctrl-names = "default", "idle", "udbg";
                pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd  &sdmmc0_dectn &sdmmc0_bus4>;
                pinctrl-1 = <&sdmmc0_gpio>;
+               pinctrl-2 = <&uart2_xfer>;
                clocks = <&clk_sdmmc0>, <&clk_gates5 10>;
                clock-names = "clk_mmc", "hclk_mmc";
                dmas = <&pdma 10>;
                num-cs = <2>;
                clocks =<&clk_spi0>, <&clk_gates7 12>;
                clock-names = "spi","pclk_spi0";
-               //dmas = <&pdma 8>, <&pdma 9>;
-               //#dma-cells = <2>;
-               //dma-names = "tx", "rx";
+               dmas = <&pdma 8>, <&pdma 9>;
+               #dma-cells = <2>;
+               dma-names = "tx", "rx";
                status = "disabled";
        };
 
                pinctrl-0 = <&pwm3_pin>;
                clocks = <&clk_gates7 10>;
                clock-names = "pclk_pwm";
+               remote_pwm_id = <3>;
                interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
                status = "okay";
        };
        dwc_control_usb: dwc-control-usb@20008000 {
                compatible = "rockchip,rk3126-dwc-control-usb";
                reg = <0x20008000 0x4>;
-               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "otg_bvalid";
+               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "otg_bvalid",
+                                 "otg0_linestate",
+                                 "otg1_linestate";
                clocks = <&clk_gates9 13>;
                clock-names = "hclk_usb_peri";
                rockchip,remote_wakeup;
                usb_bc{
                        compatible = "inno,phy";
                        regbase = &dwc_control_usb;
+                       rk_usb,bvalid     = <0x14c  5 1>;
+                       rk_usb,iddig      = <0x14c  8 1>;
+                       rk_usb,vdmsrcen   = <0x184 12 1>;
+                       rk_usb,vdpsrcen   = <0x184 11 1>;
+                       rk_usb,rdmpden    = <0x184 10 1>;
+                       rk_usb,idpsrcen   = <0x184  9 1>;
+                       rk_usb,idmsinken  = <0x184  8 1>;
+                       rk_usb,idpsinken  = <0x184  7 1>;
+                       rk_usb,dpattach   = <0x2c0  7 1>;
+                       rk_usb,cpdet      = <0x2c0  6 1>;
+                       rk_usb,dcpattach  = <0x2c0  5 1>;
                };
        };
 
                interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&clk_gates1 5>, <&clk_gates5 13>;
                clock-names = "clk_usbphy0", "hclk_usb0";
-               resets = <&reset RK3128_RST_USBOTG0>, <&reset RK3128_RST_USBOTG0>,
+               resets = <&reset RK3128_RST_USBOTG0>, <&reset RK3128_RST_UTMI0>,
                                <&reset RK3128_RST_OTGC0>;
                reset-names = "otg_ahb", "otg_phy", "otg_controller";
                /*0 - Normal, 1 - Force Host, 2 - Force Device*/
                rockchip,usb-mode = <0>;
        };
 
-       usb1: usb@101c0000 {
-               compatible = "rockchip,rk3126_usb20_host";
-               reg = <0x101c0000 0x40000>;
+       ehci: usb@101c0000 {
+               compatible = "rockchip,rk3126_ehci";
+               reg = <0x101c0000 0x20000>;
                interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&clk_gates1 6>, <&clk_gates10 14>;
-               clock-names = "clk_usbphy1", "hclk_usb1";
+               clocks = <&clk_gates1 6>, <&clk_gates7 3>;
+               clock-names = "clk_usbphy1", "hclk_host0";
                resets = <&reset RK3128_RST_USBOTG1>, <&reset RK3128_RST_UTMI1>,
                                <&reset RK3128_RST_OTGC1>;
                reset-names = "host_ahb", "host_phy", "host_controller";
        };
 
+       ohci: usb@101e0000 {
+               compatible = "rockchip,rk3126_ohci";
+               reg = <0x101e0000 0x20000>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
        fb: fb{
                compatible = "rockchip,rk-fb";
                rockchip,disp-mode = <ONE_DUAL>;
 
        lvds: lvds@20038000 {
                compatible = "rockchip,rk31xx-lvds";
-               reg = <0x20038000 0x4000>;
-               clocks = <&clk_gates5 0>;
-               clock-names = "pclk_lvds";
+               reg = <0x20038000 0x4000>, <0x101100b0 0x01>;
+               reg-names = "mipi_lvds_phy", "mipi_lvds_ctl";
+               clocks = <&clk_gates5 0>, <&clk_gates9 6>, <&clk_gates9 5>;
+               clock-names = "pclk_lvds", "pclk_lvds_ctl", "hclk_vio_h2p";
                status = "disabled";
        };
 
                pinctrl-1 = <&hdmi_gpio>;
                clocks = <&clk_gates3 8>, <&pd_hdmi>;
                clock-names = "pclk_hdmi", "pd_hdmi";
+               rockchip,hdcp_enable = <0>;
+               rockchip,cec_enable = <0>;
                status = "disabled";
        };
 
                status = "disabled";
        };
 
-       vpu: vpu_service@10106000 {
-               compatible = "vpu_service";
+       vpu: vpu_service {
+               compatible = "rockchip,vpu_sub";
                iommu_enabled = <1>;
                reg = <0x10106000 0x800>;
-               interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "irq_enc", "irq_dec";
-               clocks = <&clk_vdpu>, <&hclk_vdpu>;
-               clock-names = "aclk_vcodec", "hclk_vcodec";
+               dev_mode = <0>;
                name = "vpu_service";
-               status = "okay";
        };
 
-       hevc: hevc_service@10104000 {
-               compatible = "rockchip,hevc_service";
+       hevc: hevc_service {
+               compatible = "rockchip,hevc_sub";
                iommu_enabled = <1>;
                reg = <0x10104000 0x400>;
                interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "irq_dec";
+               dev_mode = <1>;
+               name = "hevc_service";
+       };
+
+       vpu_combo: vpu_combo@ff9a0000 {
+               compatible = "rockchip,vpu_combo";
+               subcnt = <2>;
+               rockchip,sub = <&vpu>, <&hevc>;
                clocks = <&clk_vdpu>, <&hclk_vdpu>, <&clk_hevc_core>;
                clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core";
-               name = "hevc_service";
+               mode_bit = <15>;
+               mode_ctrl = <0x144>;
+               name = "vpu_combo";
                status = "okay";
        };
 
                                                0          3
                                        >;
                                        regu-mode-en = <0>;
+                                       lkg_adjust_volt_en = <1>;
+                                       channel = <0>;
+                                       def_table_lkg = <35>;
+                                       min_adjust_freq = <1200000>;
+                                       lkg_adjust_volt_table = <
+                                               /*lkg(mA)  volt(uV)*/
+                                               60         25000
+                                               >;
                                };
                        };
                };
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ion_cma: rockchip,ion-heap@1 { /* CMA HEAP */
-                       compatible = "rockchip,ion-reserve";
-                       rockchip,ion_heap = <1>;
+               ion_cma: rockchip,ion-heap@4 { /* CMA HEAP */
+                       compatible = "rockchip,ion-heap";
+                       rockchip,ion_heap = <4>;
                        reg = <0x00000000 0x800000>; /* 8MB */
                };
-               rockchip,ion-heap@3 { /* VMALLOC HEAP */
-                       rockchip,ion_heap = <3>;
+               rockchip,ion-heap@0 { /* VMALLOC HEAP */
+                       compatible = "rockchip,ion-heap";
+                       rockchip,ion_heap = <0>;
                };
        };
        cif: cif@1010a000 {
                clocks = <&clk_gates5 14>;
                clock-names = "g_pclk_acodec";
        };
-       rockchip-audio {
+       rockchip_audio: audio-rk312x {
                compatible = "audio-rk312x";
                dais {
                        dai0 {
                        };
                };
        };
-       rockchip_suspend {
-                rockchip,ctrbits = <
-                        (0
-                        |RKPM_CTR_PWR_DMNS
-                        |RKPM_CTR_GTCLKS
-                        |RKPM_CTR_PLLS
-                        |RKPM_CTR_ARMOFF_LPMD
-                        )
-                >;
-                rockchip,pmic-suspend_gpios = <
-                       GPIO1_A1
-                        >;
-        };
 };