picoxcell-pc3x2.dtsi 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. /*
  2. * Copyright (C) 2011 Picochip, Jamie Iles
  3. *
  4. * This software is licensed under the terms of the GNU General Public
  5. * License version 2, as published by the Free Software Foundation, and
  6. * may be copied, distributed, and modified under those terms.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. */
  13. /include/ "skeleton.dtsi"
  14. / {
  15. model = "Picochip picoXcell PC3X2";
  16. compatible = "picochip,pc3x2";
  17. #address-cells = <1>;
  18. #size-cells = <1>;
  19. cpus {
  20. #address-cells = <1>;
  21. #size-cells = <0>;
  22. cpu@0 {
  23. compatible = "arm,1176jz-s";
  24. clock-frequency = <400000000>;
  25. reg = <0>;
  26. d-cache-line-size = <32>;
  27. d-cache-size = <32768>;
  28. i-cache-line-size = <32>;
  29. i-cache-size = <32768>;
  30. };
  31. };
  32. clocks {
  33. #address-cells = <1>;
  34. #size-cells = <1>;
  35. ranges;
  36. pclk: clock@0 {
  37. compatible = "fixed-clock";
  38. clock-outputs = "bus", "pclk";
  39. clock-frequency = <200000000>;
  40. ref-clock = <&ref_clk>, "ref";
  41. };
  42. };
  43. paxi {
  44. compatible = "simple-bus";
  45. #address-cells = <1>;
  46. #size-cells = <1>;
  47. ranges = <0 0x80000000 0x400000>;
  48. emac: gem@30000 {
  49. compatible = "cadence,gem";
  50. reg = <0x30000 0x10000>;
  51. interrupts = <31>;
  52. };
  53. dmac1: dmac@40000 {
  54. compatible = "snps,dw-dmac";
  55. reg = <0x40000 0x10000>;
  56. interrupts = <25>;
  57. };
  58. dmac2: dmac@50000 {
  59. compatible = "snps,dw-dmac";
  60. reg = <0x50000 0x10000>;
  61. interrupts = <26>;
  62. };
  63. vic0: interrupt-controller@60000 {
  64. compatible = "arm,pl192-vic";
  65. interrupt-controller;
  66. reg = <0x60000 0x1000>;
  67. #interrupt-cells = <1>;
  68. };
  69. vic1: interrupt-controller@64000 {
  70. compatible = "arm,pl192-vic";
  71. interrupt-controller;
  72. reg = <0x64000 0x1000>;
  73. #interrupt-cells = <1>;
  74. };
  75. fuse: picoxcell-fuse@80000 {
  76. compatible = "picoxcell,fuse-pc3x2";
  77. reg = <0x80000 0x10000>;
  78. };
  79. ssi: picoxcell-spi@90000 {
  80. compatible = "picoxcell,spi";
  81. reg = <0x90000 0x10000>;
  82. interrupt-parent = <&vic0>;
  83. interrupts = <10>;
  84. };
  85. ipsec: spacc@100000 {
  86. compatible = "picochip,spacc-ipsec";
  87. reg = <0x100000 0x10000>;
  88. interrupt-parent = <&vic0>;
  89. interrupts = <24>;
  90. ref-clock = <&pclk>, "ref";
  91. };
  92. srtp: spacc@140000 {
  93. compatible = "picochip,spacc-srtp";
  94. reg = <0x140000 0x10000>;
  95. interrupt-parent = <&vic0>;
  96. interrupts = <23>;
  97. };
  98. l2_engine: spacc@180000 {
  99. compatible = "picochip,spacc-l2";
  100. reg = <0x180000 0x10000>;
  101. interrupt-parent = <&vic0>;
  102. interrupts = <22>;
  103. ref-clock = <&pclk>, "ref";
  104. };
  105. apb {
  106. compatible = "simple-bus";
  107. #address-cells = <1>;
  108. #size-cells = <1>;
  109. ranges = <0 0x200000 0x80000>;
  110. rtc0: rtc@00000 {
  111. compatible = "picochip,pc3x2-rtc";
  112. clock-freq = <200000000>;
  113. reg = <0x00000 0xf>;
  114. interrupt-parent = <&vic1>;
  115. interrupts = <8>;
  116. };
  117. timer0: timer@10000 {
  118. compatible = "picochip,pc3x2-timer";
  119. interrupt-parent = <&vic0>;
  120. interrupts = <4>;
  121. clock-freq = <200000000>;
  122. reg = <0x10000 0x14>;
  123. };
  124. timer1: timer@10014 {
  125. compatible = "picochip,pc3x2-timer";
  126. interrupt-parent = <&vic0>;
  127. interrupts = <5>;
  128. clock-freq = <200000000>;
  129. reg = <0x10014 0x14>;
  130. };
  131. timer2: timer@10028 {
  132. compatible = "picochip,pc3x2-timer";
  133. interrupt-parent = <&vic0>;
  134. interrupts = <6>;
  135. clock-freq = <200000000>;
  136. reg = <0x10028 0x14>;
  137. };
  138. timer3: timer@1003c {
  139. compatible = "picochip,pc3x2-timer";
  140. interrupt-parent = <&vic0>;
  141. interrupts = <7>;
  142. clock-freq = <200000000>;
  143. reg = <0x1003c 0x14>;
  144. };
  145. gpio: gpio@20000 {
  146. compatible = "snps,dw-apb-gpio";
  147. reg = <0x20000 0x1000>;
  148. #address-cells = <1>;
  149. #size-cells = <0>;
  150. reg-io-width = <4>;
  151. banka: gpio-controller@0 {
  152. compatible = "snps,dw-apb-gpio-bank";
  153. gpio-controller;
  154. #gpio-cells = <2>;
  155. gpio-generic,nr-gpio = <8>;
  156. regoffset-dat = <0x50>;
  157. regoffset-set = <0x00>;
  158. regoffset-dirout = <0x04>;
  159. };
  160. bankb: gpio-controller@1 {
  161. compatible = "snps,dw-apb-gpio-bank";
  162. gpio-controller;
  163. #gpio-cells = <2>;
  164. gpio-generic,nr-gpio = <8>;
  165. regoffset-dat = <0x54>;
  166. regoffset-set = <0x0c>;
  167. regoffset-dirout = <0x10>;
  168. };
  169. };
  170. uart0: uart@30000 {
  171. compatible = "snps,dw-apb-uart";
  172. reg = <0x30000 0x1000>;
  173. interrupt-parent = <&vic1>;
  174. interrupts = <10>;
  175. clock-frequency = <3686400>;
  176. reg-shift = <2>;
  177. reg-io-width = <4>;
  178. };
  179. uart1: uart@40000 {
  180. compatible = "snps,dw-apb-uart";
  181. reg = <0x40000 0x1000>;
  182. interrupt-parent = <&vic1>;
  183. interrupts = <9>;
  184. clock-frequency = <3686400>;
  185. reg-shift = <2>;
  186. reg-io-width = <4>;
  187. };
  188. wdog: watchdog@50000 {
  189. compatible = "snps,dw-apb-wdg";
  190. reg = <0x50000 0x10000>;
  191. interrupt-parent = <&vic0>;
  192. interrupts = <11>;
  193. bus-clock = <&pclk>, "bus";
  194. };
  195. };
  196. };
  197. rwid-axi {
  198. #address-cells = <1>;
  199. #size-cells = <1>;
  200. compatible = "simple-bus";
  201. ranges;
  202. ebi@50000000 {
  203. compatible = "simple-bus";
  204. #address-cells = <2>;
  205. #size-cells = <1>;
  206. ranges = <0 0 0x40000000 0x08000000
  207. 1 0 0x48000000 0x08000000
  208. 2 0 0x50000000 0x08000000
  209. 3 0 0x58000000 0x08000000>;
  210. };
  211. axi2pico@c0000000 {
  212. compatible = "picochip,axi2pico-pc3x2";
  213. reg = <0xc0000000 0x10000>;
  214. interrupts = <13 14 15 16 17 18 19 20 21>;
  215. };
  216. };
  217. };