abilis_tb10x.dtsi 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. /*
  2. * Abilis Systems TB10X SOC device tree
  3. *
  4. * Copyright (C) Abilis Systems 2013
  5. *
  6. * Author: Christian Ruppert <christian.ruppert@abilis.com>
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  20. */
  21. / {
  22. compatible = "abilis,arc-tb10x";
  23. #address-cells = <1>;
  24. #size-cells = <1>;
  25. cpus {
  26. #address-cells = <1>;
  27. #size-cells = <0>;
  28. cpu@0 {
  29. device_type = "cpu";
  30. compatible = "snps,arc770d";
  31. reg = <0>;
  32. };
  33. };
  34. /* TIMER0 with interrupt for clockevent */
  35. timer0 {
  36. compatible = "snps,arc-timer";
  37. interrupts = <3>;
  38. interrupt-parent = <&intc>;
  39. clocks = <&cpu_clk>;
  40. };
  41. /* TIMER1 for free running clocksource */
  42. timer1 {
  43. compatible = "snps,arc-timer";
  44. clocks = <&cpu_clk>;
  45. };
  46. soc100 {
  47. #address-cells = <1>;
  48. #size-cells = <1>;
  49. device_type = "soc";
  50. ranges = <0xfe000000 0xfe000000 0x02000000
  51. 0x000F0000 0x000F0000 0x00010000>;
  52. compatible = "abilis,tb10x", "simple-bus";
  53. pll0: oscillator {
  54. compatible = "fixed-clock";
  55. #clock-cells = <0>;
  56. clock-output-names = "pll0";
  57. };
  58. cpu_clk: clkdiv_cpu {
  59. compatible = "fixed-factor-clock";
  60. #clock-cells = <0>;
  61. clocks = <&pll0>;
  62. clock-output-names = "cpu_clk";
  63. };
  64. ahb_clk: clkdiv_ahb {
  65. compatible = "fixed-factor-clock";
  66. #clock-cells = <0>;
  67. clocks = <&pll0>;
  68. clock-output-names = "ahb_clk";
  69. };
  70. iomux: iomux@FF10601c {
  71. compatible = "abilis,tb10x-iomux";
  72. #gpio-range-cells = <3>;
  73. reg = <0xFF10601c 0x4>;
  74. };
  75. intc: interrupt-controller {
  76. compatible = "snps,arc700-intc";
  77. interrupt-controller;
  78. #interrupt-cells = <1>;
  79. };
  80. tb10x_ictl: pic@fe002000 {
  81. compatible = "abilis,tb10x-ictl";
  82. reg = <0xFE002000 0x20>;
  83. interrupt-controller;
  84. #interrupt-cells = <2>;
  85. interrupt-parent = <&intc>;
  86. interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
  87. 20 21 22 23 24 25 26 27 28 29 30 31>;
  88. };
  89. uart@FF100000 {
  90. compatible = "snps,dw-apb-uart";
  91. reg = <0xFF100000 0x100>;
  92. clock-frequency = <166666666>;
  93. interrupts = <25 8>;
  94. reg-shift = <2>;
  95. reg-io-width = <4>;
  96. interrupt-parent = <&tb10x_ictl>;
  97. };
  98. ethernet@FE100000 {
  99. compatible = "snps,dwmac-3.70a","snps,dwmac";
  100. reg = <0xFE100000 0x1058>;
  101. interrupt-parent = <&tb10x_ictl>;
  102. interrupts = <6 8>;
  103. interrupt-names = "macirq";
  104. clocks = <&ahb_clk>;
  105. clock-names = "stmmaceth";
  106. };
  107. dma@FE000000 {
  108. compatible = "snps,dma-spear1340";
  109. reg = <0xFE000000 0x400>;
  110. interrupt-parent = <&tb10x_ictl>;
  111. interrupts = <14 8>;
  112. dma-channels = <6>;
  113. dma-requests = <0>;
  114. dma-masters = <1>;
  115. #dma-cells = <3>;
  116. chan_allocation_order = <0>;
  117. chan_priority = <1>;
  118. block_size = <0x7ff>;
  119. data-width = <4>;
  120. clocks = <&ahb_clk>;
  121. clock-names = "hclk";
  122. };
  123. i2c0: i2c@FF120000 {
  124. #address-cells = <1>;
  125. #size-cells = <0>;
  126. compatible = "snps,designware-i2c";
  127. reg = <0xFF120000 0x1000>;
  128. interrupt-parent = <&tb10x_ictl>;
  129. interrupts = <12 8>;
  130. clocks = <&ahb_clk>;
  131. };
  132. i2c1: i2c@FF121000 {
  133. #address-cells = <1>;
  134. #size-cells = <0>;
  135. compatible = "snps,designware-i2c";
  136. reg = <0xFF121000 0x1000>;
  137. interrupt-parent = <&tb10x_ictl>;
  138. interrupts = <12 8>;
  139. clocks = <&ahb_clk>;
  140. };
  141. i2c2: i2c@FF122000 {
  142. #address-cells = <1>;
  143. #size-cells = <0>;
  144. compatible = "snps,designware-i2c";
  145. reg = <0xFF122000 0x1000>;
  146. interrupt-parent = <&tb10x_ictl>;
  147. interrupts = <12 8>;
  148. clocks = <&ahb_clk>;
  149. };
  150. i2c3: i2c@FF123000 {
  151. #address-cells = <1>;
  152. #size-cells = <0>;
  153. compatible = "snps,designware-i2c";
  154. reg = <0xFF123000 0x1000>;
  155. interrupt-parent = <&tb10x_ictl>;
  156. interrupts = <12 8>;
  157. clocks = <&ahb_clk>;
  158. };
  159. i2c4: i2c@FF124000 {
  160. #address-cells = <1>;
  161. #size-cells = <0>;
  162. compatible = "snps,designware-i2c";
  163. reg = <0xFF124000 0x1000>;
  164. interrupt-parent = <&tb10x_ictl>;
  165. interrupts = <12 8>;
  166. clocks = <&ahb_clk>;
  167. };
  168. spi0: spi@0xFE010000 {
  169. #address-cells = <1>;
  170. #size-cells = <0>;
  171. cell-index = <0>;
  172. compatible = "abilis,tb100-spi";
  173. num-cs = <1>;
  174. reg = <0xFE010000 0x20>;
  175. interrupt-parent = <&tb10x_ictl>;
  176. interrupts = <26 8>;
  177. clocks = <&ahb_clk>;
  178. };
  179. spi1: spi@0xFE011000 {
  180. #address-cells = <1>;
  181. #size-cells = <0>;
  182. cell-index = <1>;
  183. compatible = "abilis,tb100-spi";
  184. num-cs = <2>;
  185. reg = <0xFE011000 0x20>;
  186. interrupt-parent = <&tb10x_ictl>;
  187. interrupts = <10 8>;
  188. clocks = <&ahb_clk>;
  189. };
  190. tb10x_tsm: tb10x-tsm@ff316000 {
  191. compatible = "abilis,tb100-tsm";
  192. reg = <0xff316000 0x400>;
  193. interrupt-parent = <&tb10x_ictl>;
  194. interrupts = <17 8>;
  195. output-clkdiv = <4>;
  196. global-packet-delay = <0x21>;
  197. port-packet-delay = <0>;
  198. };
  199. tb10x_stream_proc: tb10x-stream-proc {
  200. compatible = "abilis,tb100-streamproc";
  201. reg = <0xfff00000 0x200>,
  202. <0x000f0000 0x10000>,
  203. <0xfff00200 0x105>,
  204. <0xff10600c 0x1>,
  205. <0xfe001018 0x1>;
  206. reg-names = "mbox",
  207. "sp_iccm",
  208. "mbox_irq",
  209. "cpuctrl",
  210. "a6it_int_force";
  211. interrupt-parent = <&tb10x_ictl>;
  212. interrupts = <20 2>, <19 2>;
  213. interrupt-names = "cmd_irq", "event_irq";
  214. };
  215. tb10x_mdsc0: tb10x-mdscr@FF300000 {
  216. compatible = "abilis,tb100-mdscr";
  217. reg = <0xFF300000 0x7000>;
  218. tb100-mdscr-manage-tsin;
  219. };
  220. tb10x_mscr0: tb10x-mdscr@FF307000 {
  221. compatible = "abilis,tb100-mdscr";
  222. reg = <0xFF307000 0x7000>;
  223. };
  224. tb10x_scr0: tb10x-mdscr@ff30e000 {
  225. compatible = "abilis,tb100-mdscr";
  226. reg = <0xFF30e000 0x4000>;
  227. tb100-mdscr-manage-tsin;
  228. };
  229. tb10x_scr1: tb10x-mdscr@ff312000 {
  230. compatible = "abilis,tb100-mdscr";
  231. reg = <0xFF312000 0x4000>;
  232. tb100-mdscr-manage-tsin;
  233. };
  234. tb10x_wfb: tb10x-wfb@ff319000 {
  235. compatible = "abilis,tb100-wfb";
  236. reg = <0xff319000 0x1000>;
  237. interrupt-parent = <&tb10x_ictl>;
  238. interrupts = <16 8>;
  239. };
  240. };
  241. };