abilis_tb10x.dtsi 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  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. soc100 {
  35. #address-cells = <1>;
  36. #size-cells = <1>;
  37. device_type = "soc";
  38. ranges = <0xfe000000 0xfe000000 0x02000000
  39. 0x000F0000 0x000F0000 0x00010000>;
  40. compatible = "abilis,tb10x", "simple-bus";
  41. pll0: oscillator {
  42. compatible = "fixed-clock";
  43. #clock-cells = <0>;
  44. clock-output-names = "pll0";
  45. };
  46. cpu_clk: clkdiv_cpu {
  47. compatible = "fixed-factor-clock";
  48. #clock-cells = <0>;
  49. clocks = <&pll0>;
  50. clock-output-names = "cpu_clk";
  51. };
  52. ahb_clk: clkdiv_ahb {
  53. compatible = "fixed-factor-clock";
  54. #clock-cells = <0>;
  55. clocks = <&pll0>;
  56. clock-output-names = "ahb_clk";
  57. };
  58. iomux: iomux@FF10601c {
  59. compatible = "abilis,tb10x-iomux";
  60. #gpio-range-cells = <3>;
  61. reg = <0xFF10601c 0x4>;
  62. };
  63. intc: interrupt-controller {
  64. compatible = "snps,arc700-intc";
  65. interrupt-controller;
  66. #interrupt-cells = <1>;
  67. };
  68. tb10x_ictl: pic@fe002000 {
  69. compatible = "abilis,tb10x-ictl";
  70. reg = <0xFE002000 0x20>;
  71. interrupt-controller;
  72. #interrupt-cells = <2>;
  73. interrupt-parent = <&intc>;
  74. interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
  75. 20 21 22 23 24 25 26 27 28 29 30 31>;
  76. };
  77. uart@FF100000 {
  78. compatible = "snps,dw-apb-uart";
  79. reg = <0xFF100000 0x100>;
  80. clock-frequency = <166666666>;
  81. interrupts = <25 8>;
  82. reg-shift = <2>;
  83. reg-io-width = <4>;
  84. interrupt-parent = <&tb10x_ictl>;
  85. };
  86. ethernet@FE100000 {
  87. compatible = "snps,dwmac-3.70a","snps,dwmac";
  88. reg = <0xFE100000 0x1058>;
  89. interrupt-parent = <&tb10x_ictl>;
  90. interrupts = <6 8>;
  91. interrupt-names = "macirq";
  92. clocks = <&ahb_clk>;
  93. clock-names = "stmmaceth";
  94. };
  95. dma@FE000000 {
  96. compatible = "snps,dma-spear1340";
  97. reg = <0xFE000000 0x400>;
  98. interrupt-parent = <&tb10x_ictl>;
  99. interrupts = <14 8>;
  100. dma-channels = <6>;
  101. dma-requests = <0>;
  102. dma-masters = <1>;
  103. #dma-cells = <3>;
  104. chan_allocation_order = <0>;
  105. chan_priority = <1>;
  106. block_size = <0x7ff>;
  107. data_width = <2>;
  108. clocks = <&ahb_clk>;
  109. clock-names = "hclk";
  110. };
  111. i2c0: i2c@FF120000 {
  112. #address-cells = <1>;
  113. #size-cells = <0>;
  114. compatible = "snps,designware-i2c";
  115. reg = <0xFF120000 0x1000>;
  116. interrupt-parent = <&tb10x_ictl>;
  117. interrupts = <12 8>;
  118. clocks = <&ahb_clk>;
  119. };
  120. i2c1: i2c@FF121000 {
  121. #address-cells = <1>;
  122. #size-cells = <0>;
  123. compatible = "snps,designware-i2c";
  124. reg = <0xFF121000 0x1000>;
  125. interrupt-parent = <&tb10x_ictl>;
  126. interrupts = <12 8>;
  127. clocks = <&ahb_clk>;
  128. };
  129. i2c2: i2c@FF122000 {
  130. #address-cells = <1>;
  131. #size-cells = <0>;
  132. compatible = "snps,designware-i2c";
  133. reg = <0xFF122000 0x1000>;
  134. interrupt-parent = <&tb10x_ictl>;
  135. interrupts = <12 8>;
  136. clocks = <&ahb_clk>;
  137. };
  138. i2c3: i2c@FF123000 {
  139. #address-cells = <1>;
  140. #size-cells = <0>;
  141. compatible = "snps,designware-i2c";
  142. reg = <0xFF123000 0x1000>;
  143. interrupt-parent = <&tb10x_ictl>;
  144. interrupts = <12 8>;
  145. clocks = <&ahb_clk>;
  146. };
  147. i2c4: i2c@FF124000 {
  148. #address-cells = <1>;
  149. #size-cells = <0>;
  150. compatible = "snps,designware-i2c";
  151. reg = <0xFF124000 0x1000>;
  152. interrupt-parent = <&tb10x_ictl>;
  153. interrupts = <12 8>;
  154. clocks = <&ahb_clk>;
  155. };
  156. spi0: spi@0xFE010000 {
  157. #address-cells = <1>;
  158. #size-cells = <0>;
  159. cell-index = <0>;
  160. compatible = "abilis,tb100-spi";
  161. num-cs = <1>;
  162. reg = <0xFE010000 0x20>;
  163. interrupt-parent = <&tb10x_ictl>;
  164. interrupts = <26 8>;
  165. clocks = <&ahb_clk>;
  166. };
  167. spi1: spi@0xFE011000 {
  168. #address-cells = <1>;
  169. #size-cells = <0>;
  170. cell-index = <1>;
  171. compatible = "abilis,tb100-spi";
  172. num-cs = <2>;
  173. reg = <0xFE011000 0x20>;
  174. interrupt-parent = <&tb10x_ictl>;
  175. interrupts = <10 8>;
  176. clocks = <&ahb_clk>;
  177. };
  178. tb10x_tsm: tb10x-tsm@ff316000 {
  179. compatible = "abilis,tb100-tsm";
  180. reg = <0xff316000 0x400>;
  181. interrupt-parent = <&tb10x_ictl>;
  182. interrupts = <17 8>;
  183. output-clkdiv = <4>;
  184. global-packet-delay = <0x21>;
  185. port-packet-delay = <0>;
  186. };
  187. tb10x_stream_proc: tb10x-stream-proc {
  188. compatible = "abilis,tb100-streamproc";
  189. reg = <0xfff00000 0x200>,
  190. <0x000f0000 0x10000>,
  191. <0xfff00200 0x105>,
  192. <0xff10600c 0x1>,
  193. <0xfe001018 0x1>;
  194. reg-names = "mbox",
  195. "sp_iccm",
  196. "mbox_irq",
  197. "cpuctrl",
  198. "a6it_int_force";
  199. interrupt-parent = <&tb10x_ictl>;
  200. interrupts = <20 2>, <19 2>;
  201. interrupt-names = "cmd_irq", "event_irq";
  202. };
  203. tb10x_mdsc0: tb10x-mdscr@FF300000 {
  204. compatible = "abilis,tb100-mdscr";
  205. reg = <0xFF300000 0x7000>;
  206. tb100-mdscr-manage-tsin;
  207. };
  208. tb10x_mscr0: tb10x-mdscr@FF307000 {
  209. compatible = "abilis,tb100-mdscr";
  210. reg = <0xFF307000 0x7000>;
  211. };
  212. tb10x_scr0: tb10x-mdscr@ff30e000 {
  213. compatible = "abilis,tb100-mdscr";
  214. reg = <0xFF30e000 0x4000>;
  215. tb100-mdscr-manage-tsin;
  216. };
  217. tb10x_scr1: tb10x-mdscr@ff312000 {
  218. compatible = "abilis,tb100-mdscr";
  219. reg = <0xFF312000 0x4000>;
  220. tb100-mdscr-manage-tsin;
  221. };
  222. tb10x_wfb: tb10x-wfb@ff319000 {
  223. compatible = "abilis,tb100-wfb";
  224. reg = <0xff319000 0x1000>;
  225. interrupt-parent = <&tb10x_ictl>;
  226. interrupts = <16 8>;
  227. };
  228. };
  229. };