ARM: dts: dra7: Enable gpio controller for GPMC
[cascardo/linux.git] / arch / arm / boot / dts / dra7.dtsi
index f82aa44..e007401 100644 (file)
@@ -15,8 +15,8 @@
 #define MAX_SOURCES 400
 
 / {
-       #address-cells = <1>;
-       #size-cells = <1>;
+       #address-cells = <2>;
+       #size-cells = <2>;
 
        compatible = "ti,dra7xx";
        interrupt-parent = <&crossbar_mpu>;
                compatible = "arm,cortex-a15-gic";
                interrupt-controller;
                #interrupt-cells = <3>;
-               reg = <0x48211000 0x1000>,
-                     <0x48212000 0x1000>,
-                     <0x48214000 0x2000>,
-                     <0x48216000 0x2000>;
+               reg = <0x0 0x48211000 0x0 0x1000>,
+                     <0x0 0x48212000 0x0 0x1000>,
+                     <0x0 0x48214000 0x0 0x2000>,
+                     <0x0 0x48216000 0x0 0x2000>;
                interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
                interrupt-parent = <&gic>;
        };
@@ -69,7 +69,7 @@
                compatible = "ti,omap5-wugen-mpu", "ti,omap4-wugen-mpu";
                interrupt-controller;
                #interrupt-cells = <3>;
-               reg = <0x48281000 0x1000>;
+               reg = <0x0 0x48281000 0x0 0x1000>;
                interrupt-parent = <&gic>;
        };
 
                compatible = "ti,dra7-l3-noc", "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
-               ranges;
+               ranges = <0x0 0x0 0x0 0xc0000000>;
                ti,hwmods = "l3_main_1", "l3_main_2";
-               reg = <0x44000000 0x1000000>,
-                     <0x45000000 0x1000>;
+               reg = <0x0 0x44000000 0x0 0x1000000>,
+                     <0x0 0x45000000 0x0 0x1000>;
                interrupts-extended = <&crossbar_mpu GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
                                      <&wakeupgen GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
 
                                        #size-cells = <1>;
                                        ranges = <0 0x0 0x1400>;
 
-                                       pbias_regulator: pbias_regulator {
+                                       pbias_regulator: pbias_regulator@e00 {
                                                compatible = "ti,pbias-dra7", "ti,pbias-omap";
                                                reg = <0xe00 0x4>;
                                                syscon = <&scm_conf>;
                                        compatible = "syscon";
                                        reg = <0x1c04 0x0020>;
                                };
+
+                               scm_conf_pcie: scm_conf@1c24 {
+                                       compatible = "syscon";
+                                       reg = <0x1c24 0x0024>;
+                               };
+
+                               sdma_xbar: dma-router@b78 {
+                                       compatible = "ti,dra7-dma-crossbar";
+                                       reg = <0xb78 0xfc>;
+                                       #dma-cells = <1>;
+                                       dma-requests = <205>;
+                                       ti,dma-safe-map = <0>;
+                                       dma-masters = <&sdma>;
+                               };
+
+                               edma_xbar: dma-router@c78 {
+                                       compatible = "ti,dra7-dma-crossbar";
+                                       reg = <0xc78 0x7c>;
+                                       #dma-cells = <2>;
+                                       dma-requests = <204>;
+                                       ti,dma-safe-map = <0>;
+                                       dma-masters = <&edma>;
+                               };
                        };
 
                        cm_core_aon: cm_core_aon@5000 {
                        dma-requests = <127>;
                };
 
-               sdma_xbar: dma-router@4a002b78 {
-                       compatible = "ti,dra7-dma-crossbar";
-                       reg = <0x4a002b78 0xfc>;
-                       #dma-cells = <1>;
-                       dma-requests = <205>;
-                       ti,dma-safe-map = <0>;
-                       dma-masters = <&sdma>;
+               edma: edma@43300000 {
+                       compatible = "ti,edma3-tpcc";
+                       ti,hwmods = "tpcc";
+                       reg = <0x43300000 0x100000>;
+                       reg-names = "edma3_cc";
+                       interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "edma3_ccint", "emda3_mperr",
+                                         "edma3_ccerrint";
+                       dma-requests = <64>;
+                       #dma-cells = <2>;
+
+                       ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 0>;
+
+                       /*
+                        * memcpy is disabled, can be enabled with:
+                        * ti,edma-memcpy-channels = <20 21>;
+                        * for example. Note that these channels need to be
+                        * masked in the xbar as well.
+                        */
+               };
+
+               edma_tptc0: tptc@43400000 {
+                       compatible = "ti,edma3-tptc";
+                       ti,hwmods = "tptc0";
+                       reg =   <0x43400000 0x100000>;
+                       interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "edma3_tcerrint";
+               };
+
+               edma_tptc1: tptc@43500000 {
+                       compatible = "ti,edma3-tptc";
+                       ti,hwmods = "tptc1";
+                       reg =   <0x43500000 0x100000>;
+                       interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "edma3_tcerrint";
                };
 
                gpio1: gpio@4ae10000 {
                        ti,hwmods = "timer11";
                };
 
+               timer12: timer@4ae20000 {
+                       compatible = "ti,omap5430-timer";
+                       reg = <0x4ae20000 0x80>;
+                       interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+                       ti,hwmods = "timer12";
+                       ti,timer-alwon;
+                       ti,timer-secure;
+               };
+
                timer13: timer@48828000 {
                        compatible = "ti,omap5430-timer";
                        reg = <0x48828000 0x80>;
                        interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer13";
-                       status = "disabled";
                };
 
                timer14: timer@4882a000 {
                        reg = <0x4882a000 0x80>;
                        interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer14";
-                       status = "disabled";
                };
 
                timer15: timer@4882c000 {
                        reg = <0x4882c000 0x80>;
                        interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer15";
-                       status = "disabled";
                };
 
                timer16: timer@4882e000 {
                        reg = <0x4882e000 0x80>;
                        interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
                        ti,hwmods = "timer16";
-                       status = "disabled";
                };
 
                wdt2: wdt@4ae14000 {
                        status = "disabled";
                };
 
-               omap_control_sata: control-phy@4a002374 {
-                       compatible = "ti,control-phy-pipe3";
-                       reg = <0x4a002374 0x4>;
-                       reg-names = "power";
-                       clocks = <&sys_clkin1>;
-                       clock-names = "sysclk";
-               };
-
                /* OCP2SCP3 */
                ocp2scp@4a090000 {
                        compatible = "ti,omap-ocp2scp";
                                      <0x4A096400 0x64>, /* phy_tx */
                                      <0x4A096800 0x40>; /* pll_ctrl */
                                reg-names = "phy_rx", "phy_tx", "pll_ctrl";
-                               ctrl-module = <&omap_control_sata>;
+                               syscon-phy-power = <&scm_conf 0x374>;
                                clocks = <&sys_clkin1>, <&sata_ref_clk>;
                                clock-names = "sysclk", "refclk";
                                syscon-pllreset = <&scm_conf 0x3fc>;
                                reg = <0x4a094000 0x80>, /* phy_rx */
                                      <0x4a094400 0x64>; /* phy_tx */
                                reg-names = "phy_rx", "phy_tx";
-                               ctrl-module = <&omap_control_pcie1phy>;
+                               syscon-phy-power = <&scm_conf_pcie 0x1c>;
+                               syscon-pcs = <&scm_conf_pcie 0x10>;
                                clocks = <&dpll_pcie_ref_ck>,
                                         <&dpll_pcie_ref_m2ldo_ck>,
                                         <&optfclk_pciephy1_32khz>,
                                         <&optfclk_pciephy1_clk>,
                                         <&optfclk_pciephy1_div_clk>,
-                                        <&optfclk_pciephy_div>;
+                                        <&optfclk_pciephy_div>,
+                                        <&sys_clkin1>;
                                clock-names = "dpll_ref", "dpll_ref_m2",
                                              "wkupclk", "refclk",
-                                             "div-clk", "phy-div";
+                                             "div-clk", "phy-div", "sysclk";
                                #phy-cells = <0>;
                        };
 
                                reg = <0x4a095000 0x80>, /* phy_rx */
                                      <0x4a095400 0x64>; /* phy_tx */
                                reg-names = "phy_rx", "phy_tx";
-                               ctrl-module = <&omap_control_pcie2phy>;
+                               syscon-phy-power = <&scm_conf_pcie 0x20>;
+                               syscon-pcs = <&scm_conf_pcie 0x10>;
                                clocks = <&dpll_pcie_ref_ck>,
                                         <&dpll_pcie_ref_m2ldo_ck>,
                                         <&optfclk_pciephy2_32khz>,
                                         <&optfclk_pciephy2_clk>,
                                         <&optfclk_pciephy2_div_clk>,
-                                        <&optfclk_pciephy_div>;
+                                        <&optfclk_pciephy_div>,
+                                        <&sys_clkin1>;
                                clock-names = "dpll_ref", "dpll_ref_m2",
                                              "wkupclk", "refclk",
-                                             "div-clk", "phy-div";
+                                             "div-clk", "phy-div", "sysclk";
                                #phy-cells = <0>;
                                status = "disabled";
                        };
                        ti,hwmods = "sata";
                };
 
-               omap_control_pcie1phy: control-phy@0x4a003c40 {
-                       compatible = "ti,control-phy-pcie";
-                       reg = <0x4a003c40 0x4>, <0x4a003c14 0x4>, <0x4a003c34 0x4>;
-                       reg-names = "power", "control_sma", "pcie_pcs";
-                       clocks = <&sys_clkin1>;
-                       clock-names = "sysclk";
-               };
-
-               omap_control_pcie2phy: control-pcie@0x4a003c44 {
-                       compatible = "ti,control-phy-pcie";
-                       reg = <0x4a003c44 0x4>, <0x4a003c14 0x4>, <0x4a003c34 0x4>;
-                       reg-names = "power", "control_sma", "pcie_pcs";
-                       clocks = <&sys_clkin1>;
-                       clock-names = "sysclk";
-                       status = "disabled";
-               };
-
                rtc: rtc@48838000 {
                        compatible = "ti,am3352-rtc";
                        reg = <0x48838000 0x100>;
                        clocks = <&sys_32k_ck>;
                };
 
-               omap_control_usb2phy1: control-phy@4a002300 {
-                       compatible = "ti,control-phy-usb2";
-                       reg = <0x4a002300 0x4>;
-                       reg-names = "power";
-               };
-
-               omap_control_usb3phy1: control-phy@4a002370 {
-                       compatible = "ti,control-phy-pipe3";
-                       reg = <0x4a002370 0x4>;
-                       reg-names = "power";
-               };
-
-               omap_control_usb2phy2: control-phy@0x4a002e74 {
-                       compatible = "ti,control-phy-usb2-dra7";
-                       reg = <0x4a002e74 0x4>;
-                       reg-names = "power";
-               };
-
                /* OCP2SCP1 */
                ocp2scp@4a080000 {
                        compatible = "ti,omap-ocp2scp";
                        usb2_phy1: phy@4a084000 {
                                compatible = "ti,omap-usb2";
                                reg = <0x4a084000 0x400>;
-                               ctrl-module = <&omap_control_usb2phy1>;
+                               syscon-phy-power = <&scm_conf 0x300>;
                                clocks = <&usb_phy1_always_on_clk32k>,
                                         <&usb_otg_ss1_refclk960m>;
                                clock-names =   "wkupclk",
                        };
 
                        usb2_phy2: phy@4a085000 {
-                               compatible = "ti,omap-usb2";
+                               compatible = "ti,dra7x-usb2-phy2",
+                                            "ti,omap-usb2";
                                reg = <0x4a085000 0x400>;
-                               ctrl-module = <&omap_control_usb2phy2>;
+                               syscon-phy-power = <&scm_conf 0xe74>;
                                clocks = <&usb_phy2_always_on_clk32k>,
                                         <&usb_otg_ss2_refclk960m>;
                                clock-names =   "wkupclk",
                                      <0x4a084800 0x64>,
                                      <0x4a084c00 0x40>;
                                reg-names = "phy_rx", "phy_tx", "pll_ctrl";
-                               ctrl-module = <&omap_control_usb3phy1>;
+                               syscon-phy-power = <&scm_conf 0x370>;
                                clocks = <&usb_phy3_always_on_clk32k>,
                                         <&sys_clkin1>,
                                         <&usb_otg_ss1_refclk960m>;
                                                  "otg";
                                phys = <&usb2_phy1>, <&usb3_phy1>;
                                phy-names = "usb2-phy", "usb3-phy";
-                               tx-fifo-resize;
                                maximum-speed = "super-speed";
                                dr_mode = "otg";
                                snps,dis_u3_susphy_quirk;
                                                  "otg";
                                phys = <&usb2_phy2>;
                                phy-names = "usb2-phy";
-                               tx-fifo-resize;
                                maximum-speed = "high-speed";
                                dr_mode = "otg";
                                snps,dis_u3_susphy_quirk;
                                interrupt-names = "peripheral",
                                                  "host",
                                                  "otg";
-                               tx-fifo-resize;
                                maximum-speed = "high-speed";
                                dr_mode = "otg";
                                snps,dis_u3_susphy_quirk;
                        gpmc,num-waitpins = <2>;
                        #address-cells = <2>;
                        #size-cells = <1>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
+               mcasp1: mcasp@48460000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp1";
+                       reg = <0x48460000 0x2000>,
+                             <0x45800000 0x1000>;
+                       reg-names = "mpu","dat";
+                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&edma_xbar 129 1>, <&edma_xbar 128 1>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp1_aux_gfclk_mux>, <&mcasp1_ahclkx_mux>,
+                                <&mcasp1_ahclkr_mux>;
+                       clock-names = "fck", "ahclkx", "ahclkr";
+                       status = "disabled";
+               };
+
+               mcasp2: mcasp@48464000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp2";
+                       reg = <0x48464000 0x2000>,
+                             <0x45c00000 0x1000>;
+                       reg-names = "mpu","dat";
+                       interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&edma_xbar 131 1>, <&edma_xbar 130 1>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp2_aux_gfclk_mux>, <&mcasp2_ahclkx_mux>,
+                                <&mcasp2_ahclkr_mux>;
+                       clock-names = "fck", "ahclkx", "ahclkr";
+                       status = "disabled";
+               };
+
                mcasp3: mcasp@48468000 {
                        compatible = "ti,dra7-mcasp-audio";
                        ti,hwmods = "mcasp3";
-                       reg = <0x48468000 0x2000>;
-                       reg-names = "mpu";
+                       reg = <0x48468000 0x2000>,
+                             <0x46000000 0x1000>;
+                       reg-names = "mpu","dat";
                        interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "tx", "rx";
-                       dmas = <&sdma_xbar 133>, <&sdma_xbar 132>;
+                       dmas = <&edma_xbar 133 1>, <&edma_xbar 132 1>;
                        dma-names = "tx", "rx";
                        clocks = <&mcasp3_aux_gfclk_mux>, <&mcasp3_ahclkx_mux>;
                        clock-names = "fck", "ahclkx";
                        status = "disabled";
                };
 
+               mcasp4: mcasp@4846c000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp4";
+                       reg = <0x4846c000 0x2000>,
+                             <0x48436000 0x1000>;
+                       reg-names = "mpu","dat";
+                       interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&edma_xbar 135 1>, <&edma_xbar 134 1>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp4_aux_gfclk_mux>, <&mcasp4_ahclkx_mux>;
+                       clock-names = "fck", "ahclkx";
+                       status = "disabled";
+               };
+
+               mcasp5: mcasp@48470000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp5";
+                       reg = <0x48470000 0x2000>,
+                             <0x4843a000 0x1000>;
+                       reg-names = "mpu","dat";
+                       interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&edma_xbar 137 1>, <&edma_xbar 136 1>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp5_aux_gfclk_mux>, <&mcasp5_ahclkx_mux>;
+                       clock-names = "fck", "ahclkx";
+                       status = "disabled";
+               };
+
+               mcasp6: mcasp@48474000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp6";
+                       reg = <0x48474000 0x2000>,
+                             <0x4844c000 0x1000>;
+                       reg-names = "mpu","dat";
+                       interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&edma_xbar 139 1>, <&edma_xbar 138 1>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp6_aux_gfclk_mux>, <&mcasp6_ahclkx_mux>;
+                       clock-names = "fck", "ahclkx";
+                       status = "disabled";
+               };
+
+               mcasp7: mcasp@48478000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp7";
+                       reg = <0x48478000 0x2000>,
+                             <0x48450000 0x1000>;
+                       reg-names = "mpu","dat";
+                       interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&edma_xbar 141 1>, <&edma_xbar 140 1>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp7_aux_gfclk_mux>, <&mcasp7_ahclkx_mux>;
+                       clock-names = "fck", "ahclkx";
+                       status = "disabled";
+               };
+
+               mcasp8: mcasp@4847c000 {
+                       compatible = "ti,dra7-mcasp-audio";
+                       ti,hwmods = "mcasp8";
+                       reg = <0x4847c000 0x2000>,
+                             <0x48454000 0x1000>;
+                       reg-names = "mpu","dat";
+                       interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tx", "rx";
+                       dmas = <&edma_xbar 143 1>, <&edma_xbar 142 1>;
+                       dma-names = "tx", "rx";
+                       clocks = <&mcasp8_aux_gfclk_mux>, <&mcasp8_ahclkx_mux>;
+                       clock-names = "fck", "ahclkx";
+                       status = "disabled";
+               };
+
                crossbar_mpu: crossbar@4a002a48 {
                        compatible = "ti,irq-crossbar";
                        reg = <0x4a002a48 0x130>;
                #include "omap4-cpu-thermal.dtsi"
                #include "omap5-gpu-thermal.dtsi"
                #include "omap5-core-thermal.dtsi"
+               #include "dra7-dspeve-thermal.dtsi"
+               #include "dra7-iva-thermal.dtsi"
        };
 
 };