hip05.dtsi 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. /**
  2. * dts file for Hisilicon D02 Development Board
  3. *
  4. * Copyright (C) 2014,2015 Hisilicon Ltd.
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * publishhed by the Free Software Foundation.
  9. *
  10. */
  11. #include <dt-bindings/interrupt-controller/arm-gic.h>
  12. / {
  13. compatible = "hisilicon,hip05-d02";
  14. interrupt-parent = <&gic>;
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. psci {
  18. compatible = "arm,psci-0.2";
  19. method = "smc";
  20. };
  21. cpus {
  22. #address-cells = <1>;
  23. #size-cells = <0>;
  24. cpu-map {
  25. cluster0 {
  26. core0 {
  27. cpu = <&cpu0>;
  28. };
  29. core1 {
  30. cpu = <&cpu1>;
  31. };
  32. core2 {
  33. cpu = <&cpu2>;
  34. };
  35. core3 {
  36. cpu = <&cpu3>;
  37. };
  38. };
  39. cluster1 {
  40. core0 {
  41. cpu = <&cpu4>;
  42. };
  43. core1 {
  44. cpu = <&cpu5>;
  45. };
  46. core2 {
  47. cpu = <&cpu6>;
  48. };
  49. core3 {
  50. cpu = <&cpu7>;
  51. };
  52. };
  53. cluster2 {
  54. core0 {
  55. cpu = <&cpu8>;
  56. };
  57. core1 {
  58. cpu = <&cpu9>;
  59. };
  60. core2 {
  61. cpu = <&cpu10>;
  62. };
  63. core3 {
  64. cpu = <&cpu11>;
  65. };
  66. };
  67. cluster3 {
  68. core0 {
  69. cpu = <&cpu12>;
  70. };
  71. core1 {
  72. cpu = <&cpu13>;
  73. };
  74. core2 {
  75. cpu = <&cpu14>;
  76. };
  77. core3 {
  78. cpu = <&cpu15>;
  79. };
  80. };
  81. };
  82. cpu0: cpu@20000 {
  83. device_type = "cpu";
  84. compatible = "arm,cortex-a57", "arm,armv8";
  85. reg = <0x20000>;
  86. enable-method = "psci";
  87. };
  88. cpu1: cpu@20001 {
  89. device_type = "cpu";
  90. compatible = "arm,cortex-a57", "arm,armv8";
  91. reg = <0x20001>;
  92. enable-method = "psci";
  93. };
  94. cpu2: cpu@20002 {
  95. device_type = "cpu";
  96. compatible = "arm,cortex-a57", "arm,armv8";
  97. reg = <0x20002>;
  98. enable-method = "psci";
  99. };
  100. cpu3: cpu@20003 {
  101. device_type = "cpu";
  102. compatible = "arm,cortex-a57", "arm,armv8";
  103. reg = <0x20003>;
  104. enable-method = "psci";
  105. };
  106. cpu4: cpu@20100 {
  107. device_type = "cpu";
  108. compatible = "arm,cortex-a57", "arm,armv8";
  109. reg = <0x20100>;
  110. enable-method = "psci";
  111. };
  112. cpu5: cpu@20101 {
  113. device_type = "cpu";
  114. compatible = "arm,cortex-a57", "arm,armv8";
  115. reg = <0x20101>;
  116. enable-method = "psci";
  117. };
  118. cpu6: cpu@20102 {
  119. device_type = "cpu";
  120. compatible = "arm,cortex-a57", "arm,armv8";
  121. reg = <0x20102>;
  122. enable-method = "psci";
  123. };
  124. cpu7: cpu@20103 {
  125. device_type = "cpu";
  126. compatible = "arm,cortex-a57", "arm,armv8";
  127. reg = <0x20103>;
  128. enable-method = "psci";
  129. };
  130. cpu8: cpu@20200 {
  131. device_type = "cpu";
  132. compatible = "arm,cortex-a57", "arm,armv8";
  133. reg = <0x20200>;
  134. enable-method = "psci";
  135. };
  136. cpu9: cpu@20201 {
  137. device_type = "cpu";
  138. compatible = "arm,cortex-a57", "arm,armv8";
  139. reg = <0x20201>;
  140. enable-method = "psci";
  141. };
  142. cpu10: cpu@20202 {
  143. device_type = "cpu";
  144. compatible = "arm,cortex-a57", "arm,armv8";
  145. reg = <0x20202>;
  146. enable-method = "psci";
  147. };
  148. cpu11: cpu@20203 {
  149. device_type = "cpu";
  150. compatible = "arm,cortex-a57", "arm,armv8";
  151. reg = <0x20203>;
  152. enable-method = "psci";
  153. };
  154. cpu12: cpu@20300 {
  155. device_type = "cpu";
  156. compatible = "arm,cortex-a57", "arm,armv8";
  157. reg = <0x20300>;
  158. enable-method = "psci";
  159. };
  160. cpu13: cpu@20301 {
  161. device_type = "cpu";
  162. compatible = "arm,cortex-a57", "arm,armv8";
  163. reg = <0x20301>;
  164. enable-method = "psci";
  165. };
  166. cpu14: cpu@20302 {
  167. device_type = "cpu";
  168. compatible = "arm,cortex-a57", "arm,armv8";
  169. reg = <0x20302>;
  170. enable-method = "psci";
  171. };
  172. cpu15: cpu@20303 {
  173. device_type = "cpu";
  174. compatible = "arm,cortex-a57", "arm,armv8";
  175. reg = <0x20303>;
  176. enable-method = "psci";
  177. };
  178. };
  179. gic: interrupt-controller@8d000000 {
  180. compatible = "arm,gic-v3";
  181. #interrupt-cells = <3>;
  182. #address-cells = <2>;
  183. #size-cells = <2>;
  184. ranges;
  185. interrupt-controller;
  186. #redistributor-regions = <1>;
  187. redistributor-stride = <0x0 0x30000>;
  188. reg = <0x0 0x8d000000 0 0x10000>, /* GICD */
  189. <0x0 0x8d100000 0 0x300000>, /* GICR */
  190. <0x0 0xfe000000 0 0x10000>, /* GICC */
  191. <0x0 0xfe010000 0 0x10000>, /* GICH */
  192. <0x0 0xfe020000 0 0x10000>; /* GICV */
  193. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  194. its_totems: interrupt-controller@8c000000 {
  195. compatible = "arm,gic-v3-its";
  196. msi-controller;
  197. reg = <0x0 0x8c000000 0x0 0x40000>;
  198. };
  199. };
  200. timer {
  201. compatible = "arm,armv8-timer";
  202. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
  203. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
  204. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
  205. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
  206. };
  207. pmu {
  208. compatible = "arm,armv8-pmuv3";
  209. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
  210. };
  211. soc {
  212. compatible = "simple-bus";
  213. #address-cells = <2>;
  214. #size-cells = <2>;
  215. ranges;
  216. refclk200mhz: refclk200mhz {
  217. compatible = "fixed-clock";
  218. #clock-cells = <0>;
  219. clock-frequency = <200000000>;
  220. };
  221. uart0: uart@80300000 {
  222. compatible = "snps,dw-apb-uart";
  223. reg = <0x0 0x80300000 0x0 0x10000>;
  224. interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
  225. clocks = <&refclk200mhz>;
  226. clock-names = "apb_pclk";
  227. reg-shift = <2>;
  228. reg-io-width = <4>;
  229. status = "disabled";
  230. };
  231. uart1: uart@80310000 {
  232. compatible = "snps,dw-apb-uart";
  233. reg = <0x0 0x80310000 0x0 0x10000>;
  234. interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
  235. clocks = <&refclk200mhz>;
  236. clock-names = "apb_pclk";
  237. reg-shift = <2>;
  238. reg-io-width = <4>;
  239. status = "disabled";
  240. };
  241. };
  242. };