hip04.dtsi 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. /*
  2. * Hisilicon Ltd. HiP04 SoC
  3. *
  4. * Copyright (C) 2013-2014 Hisilicon Ltd.
  5. * Copyright (C) 2013-2014 Linaro Ltd.
  6. *
  7. * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
  8. *
  9. * This program is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License version 2 as
  11. * published by the Free Software Foundation.
  12. */
  13. / {
  14. /* memory bus is 64-bit */
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. aliases {
  18. serial0 = &uart0;
  19. };
  20. bootwrapper {
  21. compatible = "hisilicon,hip04-bootwrapper";
  22. boot-method = <0x10c00000 0x10000>, <0xe0000100 0x1000>;
  23. };
  24. cpus {
  25. #address-cells = <1>;
  26. #size-cells = <0>;
  27. cpu-map {
  28. cluster0 {
  29. core0 {
  30. cpu = <&CPU0>;
  31. };
  32. core1 {
  33. cpu = <&CPU1>;
  34. };
  35. core2 {
  36. cpu = <&CPU2>;
  37. };
  38. core3 {
  39. cpu = <&CPU3>;
  40. };
  41. };
  42. cluster1 {
  43. core0 {
  44. cpu = <&CPU4>;
  45. };
  46. core1 {
  47. cpu = <&CPU5>;
  48. };
  49. core2 {
  50. cpu = <&CPU6>;
  51. };
  52. core3 {
  53. cpu = <&CPU7>;
  54. };
  55. };
  56. cluster2 {
  57. core0 {
  58. cpu = <&CPU8>;
  59. };
  60. core1 {
  61. cpu = <&CPU9>;
  62. };
  63. core2 {
  64. cpu = <&CPU10>;
  65. };
  66. core3 {
  67. cpu = <&CPU11>;
  68. };
  69. };
  70. cluster3 {
  71. core0 {
  72. cpu = <&CPU12>;
  73. };
  74. core1 {
  75. cpu = <&CPU13>;
  76. };
  77. core2 {
  78. cpu = <&CPU14>;
  79. };
  80. core3 {
  81. cpu = <&CPU15>;
  82. };
  83. };
  84. };
  85. CPU0: cpu@0 {
  86. device_type = "cpu";
  87. compatible = "arm,cortex-a15";
  88. reg = <0>;
  89. };
  90. CPU1: cpu@1 {
  91. device_type = "cpu";
  92. compatible = "arm,cortex-a15";
  93. reg = <1>;
  94. };
  95. CPU2: cpu@2 {
  96. device_type = "cpu";
  97. compatible = "arm,cortex-a15";
  98. reg = <2>;
  99. };
  100. CPU3: cpu@3 {
  101. device_type = "cpu";
  102. compatible = "arm,cortex-a15";
  103. reg = <3>;
  104. };
  105. CPU4: cpu@100 {
  106. device_type = "cpu";
  107. compatible = "arm,cortex-a15";
  108. reg = <0x100>;
  109. };
  110. CPU5: cpu@101 {
  111. device_type = "cpu";
  112. compatible = "arm,cortex-a15";
  113. reg = <0x101>;
  114. };
  115. CPU6: cpu@102 {
  116. device_type = "cpu";
  117. compatible = "arm,cortex-a15";
  118. reg = <0x102>;
  119. };
  120. CPU7: cpu@103 {
  121. device_type = "cpu";
  122. compatible = "arm,cortex-a15";
  123. reg = <0x103>;
  124. };
  125. CPU8: cpu@200 {
  126. device_type = "cpu";
  127. compatible = "arm,cortex-a15";
  128. reg = <0x200>;
  129. };
  130. CPU9: cpu@201 {
  131. device_type = "cpu";
  132. compatible = "arm,cortex-a15";
  133. reg = <0x201>;
  134. };
  135. CPU10: cpu@202 {
  136. device_type = "cpu";
  137. compatible = "arm,cortex-a15";
  138. reg = <0x202>;
  139. };
  140. CPU11: cpu@203 {
  141. device_type = "cpu";
  142. compatible = "arm,cortex-a15";
  143. reg = <0x203>;
  144. };
  145. CPU12: cpu@300 {
  146. device_type = "cpu";
  147. compatible = "arm,cortex-a15";
  148. reg = <0x300>;
  149. };
  150. CPU13: cpu@301 {
  151. device_type = "cpu";
  152. compatible = "arm,cortex-a15";
  153. reg = <0x301>;
  154. };
  155. CPU14: cpu@302 {
  156. device_type = "cpu";
  157. compatible = "arm,cortex-a15";
  158. reg = <0x302>;
  159. };
  160. CPU15: cpu@303 {
  161. device_type = "cpu";
  162. compatible = "arm,cortex-a15";
  163. reg = <0x303>;
  164. };
  165. };
  166. timer {
  167. compatible = "arm,armv7-timer";
  168. interrupt-parent = <&gic>;
  169. interrupts = <1 13 0xf08>,
  170. <1 14 0xf08>,
  171. <1 11 0xf08>,
  172. <1 10 0xf08>;
  173. };
  174. clk_50m: clk_50m {
  175. #clock-cells = <0>;
  176. compatible = "fixed-clock";
  177. clock-frequency = <50000000>;
  178. };
  179. clk_168m: clk_168m {
  180. #clock-cells = <0>;
  181. compatible = "fixed-clock";
  182. clock-frequency = <168000000>;
  183. };
  184. soc {
  185. /* It's a 32-bit SoC. */
  186. #address-cells = <1>;
  187. #size-cells = <1>;
  188. compatible = "simple-bus";
  189. interrupt-parent = <&gic>;
  190. ranges = <0 0 0xe0000000 0x10000000>;
  191. gic: interrupt-controller@c01000 {
  192. compatible = "hisilicon,hip04-intc";
  193. #interrupt-cells = <3>;
  194. #address-cells = <0>;
  195. interrupt-controller;
  196. interrupts = <1 9 0xf04>;
  197. reg = <0xc01000 0x1000>, <0xc02000 0x1000>,
  198. <0xc04000 0x2000>, <0xc06000 0x2000>;
  199. };
  200. sysctrl: sysctrl {
  201. compatible = "hisilicon,sysctrl";
  202. reg = <0x3e00000 0x00100000>;
  203. };
  204. fabric: fabric {
  205. compatible = "hisilicon,hip04-fabric";
  206. reg = <0x302a000 0x1000>;
  207. };
  208. dual_timer0: dual_timer@3000000 {
  209. compatible = "arm,sp804", "arm,primecell";
  210. reg = <0x3000000 0x1000>;
  211. interrupts = <0 224 4>;
  212. clocks = <&clk_50m>, <&clk_50m>;
  213. clock-names = "apb_pclk";
  214. };
  215. arm-pmu {
  216. compatible = "arm,cortex-a15-pmu";
  217. interrupts = <0 64 4>,
  218. <0 65 4>,
  219. <0 66 4>,
  220. <0 67 4>,
  221. <0 68 4>,
  222. <0 69 4>,
  223. <0 70 4>,
  224. <0 71 4>,
  225. <0 72 4>,
  226. <0 73 4>,
  227. <0 74 4>,
  228. <0 75 4>,
  229. <0 76 4>,
  230. <0 77 4>,
  231. <0 78 4>,
  232. <0 79 4>;
  233. };
  234. uart0: uart@4007000 {
  235. compatible = "snps,dw-apb-uart";
  236. reg = <0x4007000 0x1000>;
  237. interrupts = <0 381 4>;
  238. clocks = <&clk_168m>;
  239. clock-names = "uartclk";
  240. reg-shift = <2>;
  241. status = "disabled";
  242. };
  243. sata0: sata@a000000 {
  244. compatible = "hisilicon,hisi-ahci";
  245. reg = <0xa000000 0x1000000>;
  246. interrupts = <0 372 4>;
  247. };
  248. };
  249. };