r7s72100.dtsi 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. /*
  2. * Device Tree Source for the r7s72100 SoC
  3. *
  4. * Copyright (C) 2013-14 Renesas Solutions Corp.
  5. * Copyright (C) 2014 Wolfram Sang, Sang Engineering <wsa@sang-engineering.com>
  6. *
  7. * This file is licensed under the terms of the GNU General Public License
  8. * version 2. This program is licensed "as is" without any warranty of any
  9. * kind, whether express or implied.
  10. */
  11. #include <dt-bindings/clock/r7s72100-clock.h>
  12. #include <dt-bindings/interrupt-controller/irq.h>
  13. / {
  14. compatible = "renesas,r7s72100";
  15. interrupt-parent = <&gic>;
  16. #address-cells = <1>;
  17. #size-cells = <1>;
  18. aliases {
  19. i2c0 = &i2c0;
  20. i2c1 = &i2c1;
  21. i2c2 = &i2c2;
  22. i2c3 = &i2c3;
  23. spi0 = &spi0;
  24. spi1 = &spi1;
  25. spi2 = &spi2;
  26. spi3 = &spi3;
  27. spi4 = &spi4;
  28. };
  29. clocks {
  30. ranges;
  31. #address-cells = <1>;
  32. #size-cells = <1>;
  33. /* External clocks */
  34. extal_clk: extal_clk {
  35. #clock-cells = <0>;
  36. compatible = "fixed-clock";
  37. /* If clk present, value must be set by board */
  38. clock-frequency = <0>;
  39. clock-output-names = "extal";
  40. };
  41. usb_x1_clk: usb_x1_clk {
  42. #clock-cells = <0>;
  43. compatible = "fixed-clock";
  44. /* If clk present, value must be set by board */
  45. clock-frequency = <0>;
  46. clock-output-names = "usb_x1";
  47. };
  48. /* Special CPG clocks */
  49. cpg_clocks: cpg_clocks@fcfe0000 {
  50. #clock-cells = <1>;
  51. compatible = "renesas,r7s72100-cpg-clocks",
  52. "renesas,rz-cpg-clocks";
  53. reg = <0xfcfe0000 0x18>;
  54. clocks = <&extal_clk>, <&usb_x1_clk>;
  55. clock-output-names = "pll", "i", "g";
  56. };
  57. /* Fixed factor clocks */
  58. b_clk: b_clk {
  59. #clock-cells = <0>;
  60. compatible = "fixed-factor-clock";
  61. clocks = <&cpg_clocks R7S72100_CLK_PLL>;
  62. clock-mult = <1>;
  63. clock-div = <3>;
  64. clock-output-names = "b";
  65. };
  66. p1_clk: p1_clk {
  67. #clock-cells = <0>;
  68. compatible = "fixed-factor-clock";
  69. clocks = <&cpg_clocks R7S72100_CLK_PLL>;
  70. clock-mult = <1>;
  71. clock-div = <6>;
  72. clock-output-names = "p1";
  73. };
  74. p0_clk: p0_clk {
  75. #clock-cells = <0>;
  76. compatible = "fixed-factor-clock";
  77. clocks = <&cpg_clocks R7S72100_CLK_PLL>;
  78. clock-mult = <1>;
  79. clock-div = <12>;
  80. clock-output-names = "p0";
  81. };
  82. /* MSTP clocks */
  83. mstp3_clks: mstp3_clks@fcfe0420 {
  84. #clock-cells = <1>;
  85. compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
  86. reg = <0xfcfe0420 4>;
  87. clocks = <&p0_clk>;
  88. clock-indices = <R7S72100_CLK_MTU2>;
  89. clock-output-names = "mtu2";
  90. };
  91. mstp4_clks: mstp4_clks@fcfe0424 {
  92. #clock-cells = <1>;
  93. compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
  94. reg = <0xfcfe0424 4>;
  95. clocks = <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>,
  96. <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>;
  97. clock-indices = <
  98. R7S72100_CLK_SCIF0 R7S72100_CLK_SCIF1 R7S72100_CLK_SCIF2 R7S72100_CLK_SCIF3
  99. R7S72100_CLK_SCIF4 R7S72100_CLK_SCIF5 R7S72100_CLK_SCIF6 R7S72100_CLK_SCIF7
  100. >;
  101. clock-output-names = "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scif6", "scif7";
  102. };
  103. mstp9_clks: mstp9_clks@fcfe0438 {
  104. #clock-cells = <1>;
  105. compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
  106. reg = <0xfcfe0438 4>;
  107. clocks = <&p0_clk>, <&p0_clk>, <&p0_clk>, <&p0_clk>;
  108. clock-indices = <
  109. R7S72100_CLK_I2C0 R7S72100_CLK_I2C1 R7S72100_CLK_I2C2 R7S72100_CLK_I2C3
  110. >;
  111. clock-output-names = "i2c0", "i2c1", "i2c2", "i2c3";
  112. };
  113. mstp10_clks: mstp10_clks@fcfe043c {
  114. #clock-cells = <1>;
  115. compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
  116. reg = <0xfcfe043c 4>;
  117. clocks = <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>,
  118. <&p1_clk>;
  119. clock-indices = <
  120. R7S72100_CLK_SPI0 R7S72100_CLK_SPI1 R7S72100_CLK_SPI2 R7S72100_CLK_SPI3
  121. R7S72100_CLK_SPI4
  122. >;
  123. clock-output-names = "spi0", "spi1", "spi2", "spi3", "spi4";
  124. };
  125. };
  126. cpus {
  127. #address-cells = <1>;
  128. #size-cells = <0>;
  129. cpu@0 {
  130. device_type = "cpu";
  131. compatible = "arm,cortex-a9";
  132. reg = <0>;
  133. clock-frequency = <400000000>;
  134. };
  135. };
  136. gic: interrupt-controller@e8201000 {
  137. compatible = "arm,cortex-a9-gic";
  138. #interrupt-cells = <3>;
  139. #address-cells = <0>;
  140. interrupt-controller;
  141. reg = <0xe8201000 0x1000>,
  142. <0xe8202000 0x1000>;
  143. };
  144. i2c0: i2c@fcfee000 {
  145. #address-cells = <1>;
  146. #size-cells = <0>;
  147. compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
  148. reg = <0xfcfee000 0x44>;
  149. interrupts = <0 157 IRQ_TYPE_LEVEL_HIGH>,
  150. <0 158 IRQ_TYPE_EDGE_RISING>,
  151. <0 159 IRQ_TYPE_EDGE_RISING>,
  152. <0 160 IRQ_TYPE_LEVEL_HIGH>,
  153. <0 161 IRQ_TYPE_LEVEL_HIGH>,
  154. <0 162 IRQ_TYPE_LEVEL_HIGH>,
  155. <0 163 IRQ_TYPE_LEVEL_HIGH>,
  156. <0 164 IRQ_TYPE_LEVEL_HIGH>;
  157. clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
  158. clock-frequency = <100000>;
  159. status = "disabled";
  160. };
  161. i2c1: i2c@fcfee400 {
  162. #address-cells = <1>;
  163. #size-cells = <0>;
  164. compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
  165. reg = <0xfcfee400 0x44>;
  166. interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>,
  167. <0 166 IRQ_TYPE_EDGE_RISING>,
  168. <0 167 IRQ_TYPE_EDGE_RISING>,
  169. <0 168 IRQ_TYPE_LEVEL_HIGH>,
  170. <0 169 IRQ_TYPE_LEVEL_HIGH>,
  171. <0 170 IRQ_TYPE_LEVEL_HIGH>,
  172. <0 171 IRQ_TYPE_LEVEL_HIGH>,
  173. <0 172 IRQ_TYPE_LEVEL_HIGH>;
  174. clocks = <&mstp9_clks R7S72100_CLK_I2C1>;
  175. clock-frequency = <100000>;
  176. status = "disabled";
  177. };
  178. i2c2: i2c@fcfee800 {
  179. #address-cells = <1>;
  180. #size-cells = <0>;
  181. compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
  182. reg = <0xfcfee800 0x44>;
  183. interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>,
  184. <0 174 IRQ_TYPE_EDGE_RISING>,
  185. <0 175 IRQ_TYPE_EDGE_RISING>,
  186. <0 176 IRQ_TYPE_LEVEL_HIGH>,
  187. <0 177 IRQ_TYPE_LEVEL_HIGH>,
  188. <0 178 IRQ_TYPE_LEVEL_HIGH>,
  189. <0 179 IRQ_TYPE_LEVEL_HIGH>,
  190. <0 180 IRQ_TYPE_LEVEL_HIGH>;
  191. clocks = <&mstp9_clks R7S72100_CLK_I2C2>;
  192. clock-frequency = <100000>;
  193. status = "disabled";
  194. };
  195. i2c3: i2c@fcfeec00 {
  196. #address-cells = <1>;
  197. #size-cells = <0>;
  198. compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
  199. reg = <0xfcfeec00 0x44>;
  200. interrupts = <0 181 IRQ_TYPE_LEVEL_HIGH>,
  201. <0 182 IRQ_TYPE_EDGE_RISING>,
  202. <0 183 IRQ_TYPE_EDGE_RISING>,
  203. <0 184 IRQ_TYPE_LEVEL_HIGH>,
  204. <0 185 IRQ_TYPE_LEVEL_HIGH>,
  205. <0 186 IRQ_TYPE_LEVEL_HIGH>,
  206. <0 187 IRQ_TYPE_LEVEL_HIGH>,
  207. <0 188 IRQ_TYPE_LEVEL_HIGH>;
  208. clocks = <&mstp9_clks R7S72100_CLK_I2C3>;
  209. clock-frequency = <100000>;
  210. status = "disabled";
  211. };
  212. mtu2: timer@fcff0000 {
  213. compatible = "renesas,mtu2-r7s72100", "renesas,mtu2";
  214. reg = <0xfcff0000 0x400>;
  215. interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
  216. interrupt-names = "tgi0a";
  217. clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
  218. clock-names = "fck";
  219. status = "disabled";
  220. };
  221. scif0: serial@e8007000 {
  222. compatible = "renesas,scif-r7s72100", "renesas,scif";
  223. reg = <0xe8007000 64>;
  224. interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>,
  225. <0 191 IRQ_TYPE_LEVEL_HIGH>,
  226. <0 192 IRQ_TYPE_LEVEL_HIGH>,
  227. <0 189 IRQ_TYPE_LEVEL_HIGH>;
  228. clocks = <&mstp4_clks R7S72100_CLK_SCIF0>;
  229. clock-names = "sci_ick";
  230. status = "disabled";
  231. };
  232. scif1: serial@e8007800 {
  233. compatible = "renesas,scif-r7s72100", "renesas,scif";
  234. reg = <0xe8007800 64>;
  235. interrupts = <0 194 IRQ_TYPE_LEVEL_HIGH>,
  236. <0 195 IRQ_TYPE_LEVEL_HIGH>,
  237. <0 196 IRQ_TYPE_LEVEL_HIGH>,
  238. <0 193 IRQ_TYPE_LEVEL_HIGH>;
  239. clocks = <&mstp4_clks R7S72100_CLK_SCIF1>;
  240. clock-names = "sci_ick";
  241. status = "disabled";
  242. };
  243. scif2: serial@e8008000 {
  244. compatible = "renesas,scif-r7s72100", "renesas,scif";
  245. reg = <0xe8008000 64>;
  246. interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
  247. <0 199 IRQ_TYPE_LEVEL_HIGH>,
  248. <0 200 IRQ_TYPE_LEVEL_HIGH>,
  249. <0 197 IRQ_TYPE_LEVEL_HIGH>;
  250. clocks = <&mstp4_clks R7S72100_CLK_SCIF2>;
  251. clock-names = "sci_ick";
  252. status = "disabled";
  253. };
  254. scif3: serial@e8008800 {
  255. compatible = "renesas,scif-r7s72100", "renesas,scif";
  256. reg = <0xe8008800 64>;
  257. interrupts = <0 202 IRQ_TYPE_LEVEL_HIGH>,
  258. <0 203 IRQ_TYPE_LEVEL_HIGH>,
  259. <0 204 IRQ_TYPE_LEVEL_HIGH>,
  260. <0 201 IRQ_TYPE_LEVEL_HIGH>;
  261. clocks = <&mstp4_clks R7S72100_CLK_SCIF3>;
  262. clock-names = "sci_ick";
  263. status = "disabled";
  264. };
  265. scif4: serial@e8009000 {
  266. compatible = "renesas,scif-r7s72100", "renesas,scif";
  267. reg = <0xe8009000 64>;
  268. interrupts = <0 206 IRQ_TYPE_LEVEL_HIGH>,
  269. <0 207 IRQ_TYPE_LEVEL_HIGH>,
  270. <0 208 IRQ_TYPE_LEVEL_HIGH>,
  271. <0 205 IRQ_TYPE_LEVEL_HIGH>;
  272. clocks = <&mstp4_clks R7S72100_CLK_SCIF4>;
  273. clock-names = "sci_ick";
  274. status = "disabled";
  275. };
  276. scif5: serial@e8009800 {
  277. compatible = "renesas,scif-r7s72100", "renesas,scif";
  278. reg = <0xe8009800 64>;
  279. interrupts = <0 210 IRQ_TYPE_LEVEL_HIGH>,
  280. <0 211 IRQ_TYPE_LEVEL_HIGH>,
  281. <0 212 IRQ_TYPE_LEVEL_HIGH>,
  282. <0 209 IRQ_TYPE_LEVEL_HIGH>;
  283. clocks = <&mstp4_clks R7S72100_CLK_SCIF5>;
  284. clock-names = "sci_ick";
  285. status = "disabled";
  286. };
  287. scif6: serial@e800a000 {
  288. compatible = "renesas,scif-r7s72100", "renesas,scif";
  289. reg = <0xe800a000 64>;
  290. interrupts = <0 214 IRQ_TYPE_LEVEL_HIGH>,
  291. <0 215 IRQ_TYPE_LEVEL_HIGH>,
  292. <0 216 IRQ_TYPE_LEVEL_HIGH>,
  293. <0 213 IRQ_TYPE_LEVEL_HIGH>;
  294. clocks = <&mstp4_clks R7S72100_CLK_SCIF6>;
  295. clock-names = "sci_ick";
  296. status = "disabled";
  297. };
  298. scif7: serial@e800a800 {
  299. compatible = "renesas,scif-r7s72100", "renesas,scif";
  300. reg = <0xe800a800 64>;
  301. interrupts = <0 218 IRQ_TYPE_LEVEL_HIGH>,
  302. <0 219 IRQ_TYPE_LEVEL_HIGH>,
  303. <0 220 IRQ_TYPE_LEVEL_HIGH>,
  304. <0 217 IRQ_TYPE_LEVEL_HIGH>;
  305. clocks = <&mstp4_clks R7S72100_CLK_SCIF7>;
  306. clock-names = "sci_ick";
  307. status = "disabled";
  308. };
  309. spi0: spi@e800c800 {
  310. compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
  311. reg = <0xe800c800 0x24>;
  312. interrupts = <0 238 IRQ_TYPE_LEVEL_HIGH>,
  313. <0 239 IRQ_TYPE_LEVEL_HIGH>,
  314. <0 240 IRQ_TYPE_LEVEL_HIGH>;
  315. interrupt-names = "error", "rx", "tx";
  316. clocks = <&mstp10_clks R7S72100_CLK_SPI0>;
  317. num-cs = <1>;
  318. #address-cells = <1>;
  319. #size-cells = <0>;
  320. status = "disabled";
  321. };
  322. spi1: spi@e800d000 {
  323. compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
  324. reg = <0xe800d000 0x24>;
  325. interrupts = <0 241 IRQ_TYPE_LEVEL_HIGH>,
  326. <0 242 IRQ_TYPE_LEVEL_HIGH>,
  327. <0 243 IRQ_TYPE_LEVEL_HIGH>;
  328. interrupt-names = "error", "rx", "tx";
  329. clocks = <&mstp10_clks R7S72100_CLK_SPI1>;
  330. num-cs = <1>;
  331. #address-cells = <1>;
  332. #size-cells = <0>;
  333. status = "disabled";
  334. };
  335. spi2: spi@e800d800 {
  336. compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
  337. reg = <0xe800d800 0x24>;
  338. interrupts = <0 244 IRQ_TYPE_LEVEL_HIGH>,
  339. <0 245 IRQ_TYPE_LEVEL_HIGH>,
  340. <0 246 IRQ_TYPE_LEVEL_HIGH>;
  341. interrupt-names = "error", "rx", "tx";
  342. clocks = <&mstp10_clks R7S72100_CLK_SPI2>;
  343. num-cs = <1>;
  344. #address-cells = <1>;
  345. #size-cells = <0>;
  346. status = "disabled";
  347. };
  348. spi3: spi@e800e000 {
  349. compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
  350. reg = <0xe800e000 0x24>;
  351. interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>,
  352. <0 248 IRQ_TYPE_LEVEL_HIGH>,
  353. <0 249 IRQ_TYPE_LEVEL_HIGH>;
  354. interrupt-names = "error", "rx", "tx";
  355. clocks = <&mstp10_clks R7S72100_CLK_SPI3>;
  356. num-cs = <1>;
  357. #address-cells = <1>;
  358. #size-cells = <0>;
  359. status = "disabled";
  360. };
  361. spi4: spi@e800e800 {
  362. compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
  363. reg = <0xe800e800 0x24>;
  364. interrupts = <0 250 IRQ_TYPE_LEVEL_HIGH>,
  365. <0 251 IRQ_TYPE_LEVEL_HIGH>,
  366. <0 252 IRQ_TYPE_LEVEL_HIGH>;
  367. interrupt-names = "error", "rx", "tx";
  368. clocks = <&mstp10_clks R7S72100_CLK_SPI4>;
  369. num-cs = <1>;
  370. #address-cells = <1>;
  371. #size-cells = <0>;
  372. status = "disabled";
  373. };
  374. };