abilis_tb10x.dtsi 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Abilis Systems TB10X SOC device tree
  4. *
  5. * Copyright (C) Abilis Systems 2013
  6. *
  7. * Author: Christian Ruppert <[email protected]>
  8. */
  9. / {
  10. compatible = "abilis,arc-tb10x";
  11. #address-cells = <1>;
  12. #size-cells = <1>;
  13. cpus {
  14. #address-cells = <1>;
  15. #size-cells = <0>;
  16. cpu@0 {
  17. device_type = "cpu";
  18. compatible = "snps,arc770d";
  19. reg = <0>;
  20. };
  21. };
  22. /* TIMER0 with interrupt for clockevent */
  23. timer0 {
  24. compatible = "snps,arc-timer";
  25. interrupts = <3>;
  26. interrupt-parent = <&intc>;
  27. clocks = <&cpu_clk>;
  28. };
  29. /* TIMER1 for free running clocksource */
  30. timer1 {
  31. compatible = "snps,arc-timer";
  32. clocks = <&cpu_clk>;
  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 = <4>;
  108. clocks = <&ahb_clk>;
  109. clock-names = "hclk";
  110. multi-block = <1 1 1 1 1 1>;
  111. };
  112. i2c0: i2c@ff120000 {
  113. #address-cells = <1>;
  114. #size-cells = <0>;
  115. compatible = "snps,designware-i2c";
  116. reg = <0xff120000 0x1000>;
  117. interrupt-parent = <&tb10x_ictl>;
  118. interrupts = <12 8>;
  119. clocks = <&ahb_clk>;
  120. };
  121. i2c1: i2c@ff121000 {
  122. #address-cells = <1>;
  123. #size-cells = <0>;
  124. compatible = "snps,designware-i2c";
  125. reg = <0xff121000 0x1000>;
  126. interrupt-parent = <&tb10x_ictl>;
  127. interrupts = <12 8>;
  128. clocks = <&ahb_clk>;
  129. };
  130. i2c2: i2c@ff122000 {
  131. #address-cells = <1>;
  132. #size-cells = <0>;
  133. compatible = "snps,designware-i2c";
  134. reg = <0xff122000 0x1000>;
  135. interrupt-parent = <&tb10x_ictl>;
  136. interrupts = <12 8>;
  137. clocks = <&ahb_clk>;
  138. };
  139. i2c3: i2c@ff123000 {
  140. #address-cells = <1>;
  141. #size-cells = <0>;
  142. compatible = "snps,designware-i2c";
  143. reg = <0xff123000 0x1000>;
  144. interrupt-parent = <&tb10x_ictl>;
  145. interrupts = <12 8>;
  146. clocks = <&ahb_clk>;
  147. };
  148. i2c4: i2c@ff124000 {
  149. #address-cells = <1>;
  150. #size-cells = <0>;
  151. compatible = "snps,designware-i2c";
  152. reg = <0xff124000 0x1000>;
  153. interrupt-parent = <&tb10x_ictl>;
  154. interrupts = <12 8>;
  155. clocks = <&ahb_clk>;
  156. };
  157. spi0: spi@fe010000 {
  158. #address-cells = <1>;
  159. #size-cells = <0>;
  160. cell-index = <0>;
  161. compatible = "abilis,tb100-spi";
  162. num-cs = <1>;
  163. reg = <0xfe010000 0x20>;
  164. interrupt-parent = <&tb10x_ictl>;
  165. interrupts = <26 8>;
  166. clocks = <&ahb_clk>;
  167. };
  168. spi1: spi@fe011000 {
  169. #address-cells = <1>;
  170. #size-cells = <0>;
  171. cell-index = <1>;
  172. compatible = "abilis,tb100-spi";
  173. num-cs = <2>;
  174. reg = <0xfe011000 0x20>;
  175. interrupt-parent = <&tb10x_ictl>;
  176. interrupts = <10 8>;
  177. clocks = <&ahb_clk>;
  178. };
  179. tb10x_tsm: tb10x-tsm@ff316000 {
  180. compatible = "abilis,tb100-tsm";
  181. reg = <0xff316000 0x400>;
  182. interrupt-parent = <&tb10x_ictl>;
  183. interrupts = <17 8>;
  184. output-clkdiv = <4>;
  185. global-packet-delay = <0x21>;
  186. port-packet-delay = <0>;
  187. };
  188. tb10x_stream_proc: tb10x-stream-proc {
  189. compatible = "abilis,tb100-streamproc";
  190. reg = <0xfff00000 0x200>,
  191. <0x000f0000 0x10000>,
  192. <0xfff00200 0x105>,
  193. <0xff10600c 0x1>,
  194. <0xfe001018 0x1>;
  195. reg-names = "mbox",
  196. "sp_iccm",
  197. "mbox_irq",
  198. "cpuctrl",
  199. "a6it_int_force";
  200. interrupt-parent = <&tb10x_ictl>;
  201. interrupts = <20 2>, <19 2>;
  202. interrupt-names = "cmd_irq", "event_irq";
  203. };
  204. tb10x_mdsc0: tb10x-mdscr@ff300000 {
  205. compatible = "abilis,tb100-mdscr";
  206. reg = <0xff300000 0x7000>;
  207. tb100-mdscr-manage-tsin;
  208. };
  209. tb10x_mscr0: tb10x-mdscr@ff307000 {
  210. compatible = "abilis,tb100-mdscr";
  211. reg = <0xff307000 0x7000>;
  212. };
  213. tb10x_scr0: tb10x-mdscr@ff30e000 {
  214. compatible = "abilis,tb100-mdscr";
  215. reg = <0xff30e000 0x4000>;
  216. tb100-mdscr-manage-tsin;
  217. };
  218. tb10x_scr1: tb10x-mdscr@ff312000 {
  219. compatible = "abilis,tb100-mdscr";
  220. reg = <0xff312000 0x4000>;
  221. tb100-mdscr-manage-tsin;
  222. };
  223. tb10x_wfb: tb10x-wfb@ff319000 {
  224. compatible = "abilis,tb100-wfb";
  225. reg = <0xff319000 0x1000>;
  226. interrupt-parent = <&tb10x_ictl>;
  227. interrupts = <16 8>;
  228. };
  229. };
  230. };