Merge tag 'v3.14.25' into backport/v3.14.24-ltsi-rc1+v3.14.25/snapshot-merge.wip
[platform/adaptation/renesas_rcar/renesas_kernel.git] / arch / arm / boot / dts / r7s72100.dtsi
index 46b82aa..801a556 100644 (file)
 /*
  * Device Tree Source for the r7s72100 SoC
  *
- * Copyright (C) 2013 Renesas Solutions Corp.
+ * Copyright (C) 2013-14 Renesas Solutions Corp.
+ * Copyright (C) 2014 Wolfram Sang, Sang Engineering <wsa@sang-engineering.com>
  *
  * This file is licensed under the terms of the GNU General Public License
  * version 2.  This program is licensed "as is" without any warranty of any
  * kind, whether express or implied.
  */
 
+#include <dt-bindings/clock/r7s72100-clock.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
 / {
        compatible = "renesas,r7s72100";
        interrupt-parent = <&gic>;
        #address-cells = <1>;
        #size-cells = <1>;
 
+       aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               spi0 = &spi0;
+               spi1 = &spi1;
+               spi2 = &spi2;
+               spi3 = &spi3;
+               spi4 = &spi4;
+       };
+
+       clocks {
+               ranges;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               /* External clocks */
+               extal_clk: extal_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       /* If clk present, value must be set by board */
+                       clock-frequency = <0>;
+                       clock-output-names = "extal";
+               };
+
+               usb_x1_clk: usb_x1_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       /* If clk present, value must be set by board */
+                       clock-frequency = <0>;
+                       clock-output-names = "usb_x1";
+               };
+
+               /* Special CPG clocks */
+               cpg_clocks: cpg_clocks@fcfe0000 {
+                       #clock-cells = <1>;
+                       compatible = "renesas,r7s72100-cpg-clocks",
+                                    "renesas,rz-cpg-clocks";
+                       reg = <0xfcfe0000 0x18>;
+                       clocks = <&extal_clk>, <&usb_x1_clk>;
+                       clock-output-names = "pll", "i", "g";
+               };
+
+               /* Fixed factor clocks */
+               b_clk: b_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R7S72100_CLK_PLL>;
+                       clock-mult = <1>;
+                       clock-div = <3>;
+                       clock-output-names = "b";
+               };
+               p1_clk: p1_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R7S72100_CLK_PLL>;
+                       clock-mult = <1>;
+                       clock-div = <6>;
+                       clock-output-names = "p1";
+               };
+               p0_clk: p0_clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clocks = <&cpg_clocks R7S72100_CLK_PLL>;
+                       clock-mult = <1>;
+                       clock-div = <12>;
+                       clock-output-names = "p0";
+               };
+
+               /* MSTP clocks */
+               mstp3_clks: mstp3_clks@fcfe0420 {
+                       #clock-cells = <1>;
+                       compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0xfcfe0420 4>;
+                       clocks = <&p0_clk>;
+                       clock-indices = <R7S72100_CLK_MTU2>;
+                       clock-output-names = "mtu2";
+               };
+
+               mstp4_clks: mstp4_clks@fcfe0424 {
+                       #clock-cells = <1>;
+                       compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0xfcfe0424 4>;
+                       clocks = <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>,
+                                <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>;
+                       clock-indices = <
+                               R7S72100_CLK_SCIF0 R7S72100_CLK_SCIF1 R7S72100_CLK_SCIF2 R7S72100_CLK_SCIF3
+                               R7S72100_CLK_SCIF4 R7S72100_CLK_SCIF5 R7S72100_CLK_SCIF6 R7S72100_CLK_SCIF7
+                       >;
+                       clock-output-names = "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scif6", "scif7";
+               };
+
+               mstp9_clks: mstp9_clks@fcfe0438 {
+                       #clock-cells = <1>;
+                       compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0xfcfe0438 4>;
+                       clocks = <&p0_clk>, <&p0_clk>, <&p0_clk>, <&p0_clk>;
+                       clock-indices = <
+                               R7S72100_CLK_I2C0 R7S72100_CLK_I2C1 R7S72100_CLK_I2C2 R7S72100_CLK_I2C3
+                       >;
+                       clock-output-names = "i2c0", "i2c1", "i2c2", "i2c3";
+               };
+
+               mstp10_clks: mstp10_clks@fcfe043c {
+                       #clock-cells = <1>;
+                       compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0xfcfe043c 4>;
+                       clocks = <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>,
+                                <&p1_clk>;
+                       clock-indices = <
+                               R7S72100_CLK_SPI0 R7S72100_CLK_SPI1 R7S72100_CLK_SPI2 R7S72100_CLK_SPI3
+                               R7S72100_CLK_SPI4
+                       >;
+                       clock-output-names = "spi0", "spi1", "spi2", "spi3", "spi4";
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0>;
+                       clock-frequency = <400000000>;
                };
        };
 
                reg = <0xe8201000 0x1000>,
                        <0xe8202000 0x1000>;
        };
+
+       i2c0: i2c@fcfee000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfee000 0x44>;
+               interrupts = <0 157 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 158 IRQ_TYPE_EDGE_RISING>,
+                            <0 159 IRQ_TYPE_EDGE_RISING>,
+                            <0 160 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 161 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 162 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 163 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 164 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       i2c1: i2c@fcfee400 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfee400 0x44>;
+               interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 166 IRQ_TYPE_EDGE_RISING>,
+                            <0 167 IRQ_TYPE_EDGE_RISING>,
+                            <0 168 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 169 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 170 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 171 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 172 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C1>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       i2c2: i2c@fcfee800 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfee800 0x44>;
+               interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 174 IRQ_TYPE_EDGE_RISING>,
+                            <0 175 IRQ_TYPE_EDGE_RISING>,
+                            <0 176 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 177 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 178 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 179 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 180 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C2>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       i2c3: i2c@fcfeec00 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+               reg = <0xfcfeec00 0x44>;
+               interrupts = <0 181 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 182 IRQ_TYPE_EDGE_RISING>,
+                            <0 183 IRQ_TYPE_EDGE_RISING>,
+                            <0 184 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 185 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 186 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 187 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 188 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp9_clks R7S72100_CLK_I2C3>;
+               clock-frequency = <100000>;
+               status = "disabled";
+       };
+
+       mtu2: timer@fcff0000 {
+               compatible = "renesas,mtu2-r7s72100", "renesas,mtu2";
+               reg = <0xfcff0000 0x400>;
+               interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tgi0a";
+               clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       scif0: serial@e8007000 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe8007000 64>;
+               interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 191 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 192 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 189 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF0>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif1: serial@e8007800 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe8007800 64>;
+               interrupts = <0 194 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 195 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 196 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 193 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF1>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif2: serial@e8008000 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe8008000 64>;
+               interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 199 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 200 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 197 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF2>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif3: serial@e8008800 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe8008800 64>;
+               interrupts = <0 202 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 203 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 204 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 201 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF3>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif4: serial@e8009000 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe8009000 64>;
+               interrupts = <0 206 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 207 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 208 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 205 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF4>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif5: serial@e8009800 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe8009800 64>;
+               interrupts = <0 210 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 211 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 212 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 209 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF5>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif6: serial@e800a000 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe800a000 64>;
+               interrupts = <0 214 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 215 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 216 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 213 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF6>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       scif7: serial@e800a800 {
+               compatible = "renesas,scif-r7s72100", "renesas,scif";
+               reg = <0xe800a800 64>;
+               interrupts = <0 218 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 219 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 220 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 217 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&mstp4_clks R7S72100_CLK_SCIF7>;
+               clock-names = "sci_ick";
+               status = "disabled";
+       };
+
+       spi0: spi@e800c800 {
+               compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
+               reg = <0xe800c800 0x24>;
+               interrupts = <0 238 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 239 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 240 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error", "rx", "tx";
+               clocks = <&mstp10_clks R7S72100_CLK_SPI0>;
+               num-cs = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi1: spi@e800d000 {
+               compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
+               reg = <0xe800d000 0x24>;
+               interrupts = <0 241 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 242 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 243 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error", "rx", "tx";
+               clocks = <&mstp10_clks R7S72100_CLK_SPI1>;
+               num-cs = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi2: spi@e800d800 {
+               compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
+               reg = <0xe800d800 0x24>;
+               interrupts = <0 244 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 245 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 246 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error", "rx", "tx";
+               clocks = <&mstp10_clks R7S72100_CLK_SPI2>;
+               num-cs = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi3: spi@e800e000 {
+               compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
+               reg = <0xe800e000 0x24>;
+               interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 248 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 249 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error", "rx", "tx";
+               clocks = <&mstp10_clks R7S72100_CLK_SPI3>;
+               num-cs = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi4: spi@e800e800 {
+               compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
+               reg = <0xe800e800 0x24>;
+               interrupts = <0 250 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 251 IRQ_TYPE_LEVEL_HIGH>,
+                            <0 252 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "error", "rx", "tx";
+               clocks = <&mstp10_clks R7S72100_CLK_SPI4>;
+               num-cs = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
 };