hip05.dtsi 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  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. next-level-cache = <&cluster0_l2>;
  88. };
  89. cpu1: cpu@20001 {
  90. device_type = "cpu";
  91. compatible = "arm,cortex-a57", "arm,armv8";
  92. reg = <0x20001>;
  93. enable-method = "psci";
  94. next-level-cache = <&cluster0_l2>;
  95. };
  96. cpu2: cpu@20002 {
  97. device_type = "cpu";
  98. compatible = "arm,cortex-a57", "arm,armv8";
  99. reg = <0x20002>;
  100. enable-method = "psci";
  101. next-level-cache = <&cluster0_l2>;
  102. };
  103. cpu3: cpu@20003 {
  104. device_type = "cpu";
  105. compatible = "arm,cortex-a57", "arm,armv8";
  106. reg = <0x20003>;
  107. enable-method = "psci";
  108. next-level-cache = <&cluster0_l2>;
  109. };
  110. cpu4: cpu@20100 {
  111. device_type = "cpu";
  112. compatible = "arm,cortex-a57", "arm,armv8";
  113. reg = <0x20100>;
  114. enable-method = "psci";
  115. next-level-cache = <&cluster1_l2>;
  116. };
  117. cpu5: cpu@20101 {
  118. device_type = "cpu";
  119. compatible = "arm,cortex-a57", "arm,armv8";
  120. reg = <0x20101>;
  121. enable-method = "psci";
  122. next-level-cache = <&cluster1_l2>;
  123. };
  124. cpu6: cpu@20102 {
  125. device_type = "cpu";
  126. compatible = "arm,cortex-a57", "arm,armv8";
  127. reg = <0x20102>;
  128. enable-method = "psci";
  129. next-level-cache = <&cluster1_l2>;
  130. };
  131. cpu7: cpu@20103 {
  132. device_type = "cpu";
  133. compatible = "arm,cortex-a57", "arm,armv8";
  134. reg = <0x20103>;
  135. enable-method = "psci";
  136. next-level-cache = <&cluster1_l2>;
  137. };
  138. cpu8: cpu@20200 {
  139. device_type = "cpu";
  140. compatible = "arm,cortex-a57", "arm,armv8";
  141. reg = <0x20200>;
  142. enable-method = "psci";
  143. next-level-cache = <&cluster2_l2>;
  144. };
  145. cpu9: cpu@20201 {
  146. device_type = "cpu";
  147. compatible = "arm,cortex-a57", "arm,armv8";
  148. reg = <0x20201>;
  149. enable-method = "psci";
  150. next-level-cache = <&cluster2_l2>;
  151. };
  152. cpu10: cpu@20202 {
  153. device_type = "cpu";
  154. compatible = "arm,cortex-a57", "arm,armv8";
  155. reg = <0x20202>;
  156. enable-method = "psci";
  157. next-level-cache = <&cluster2_l2>;
  158. };
  159. cpu11: cpu@20203 {
  160. device_type = "cpu";
  161. compatible = "arm,cortex-a57", "arm,armv8";
  162. reg = <0x20203>;
  163. enable-method = "psci";
  164. next-level-cache = <&cluster2_l2>;
  165. };
  166. cpu12: cpu@20300 {
  167. device_type = "cpu";
  168. compatible = "arm,cortex-a57", "arm,armv8";
  169. reg = <0x20300>;
  170. enable-method = "psci";
  171. next-level-cache = <&cluster3_l2>;
  172. };
  173. cpu13: cpu@20301 {
  174. device_type = "cpu";
  175. compatible = "arm,cortex-a57", "arm,armv8";
  176. reg = <0x20301>;
  177. enable-method = "psci";
  178. next-level-cache = <&cluster3_l2>;
  179. };
  180. cpu14: cpu@20302 {
  181. device_type = "cpu";
  182. compatible = "arm,cortex-a57", "arm,armv8";
  183. reg = <0x20302>;
  184. enable-method = "psci";
  185. next-level-cache = <&cluster3_l2>;
  186. };
  187. cpu15: cpu@20303 {
  188. device_type = "cpu";
  189. compatible = "arm,cortex-a57", "arm,armv8";
  190. reg = <0x20303>;
  191. enable-method = "psci";
  192. next-level-cache = <&cluster3_l2>;
  193. };
  194. cluster0_l2: l2-cache0 {
  195. compatible = "cache";
  196. };
  197. cluster1_l2: l2-cache1 {
  198. compatible = "cache";
  199. };
  200. cluster2_l2: l2-cache2 {
  201. compatible = "cache";
  202. };
  203. cluster3_l2: l2-cache3 {
  204. compatible = "cache";
  205. };
  206. };
  207. gic: interrupt-controller@8d000000 {
  208. compatible = "arm,gic-v3";
  209. #interrupt-cells = <3>;
  210. #address-cells = <2>;
  211. #size-cells = <2>;
  212. ranges;
  213. interrupt-controller;
  214. #redistributor-regions = <1>;
  215. redistributor-stride = <0x0 0x30000>;
  216. reg = <0x0 0x8d000000 0 0x10000>, /* GICD */
  217. <0x0 0x8d100000 0 0x300000>, /* GICR */
  218. <0x0 0xfe000000 0 0x10000>, /* GICC */
  219. <0x0 0xfe010000 0 0x10000>, /* GICH */
  220. <0x0 0xfe020000 0 0x10000>; /* GICV */
  221. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  222. its_peri: interrupt-controller@8c000000 {
  223. compatible = "arm,gic-v3-its";
  224. msi-controller;
  225. #msi-cells = <1>;
  226. reg = <0x0 0x8c000000 0x0 0x40000>;
  227. };
  228. its_m3: interrupt-controller@a3000000 {
  229. compatible = "arm,gic-v3-its";
  230. msi-controller;
  231. #msi-cells = <1>;
  232. reg = <0x0 0xa3000000 0x0 0x40000>;
  233. };
  234. its_pcie: interrupt-controller@b7000000 {
  235. compatible = "arm,gic-v3-its";
  236. msi-controller;
  237. #msi-cells = <1>;
  238. reg = <0x0 0xb7000000 0x0 0x40000>;
  239. };
  240. its_dsa: interrupt-controller@c6000000 {
  241. compatible = "arm,gic-v3-its";
  242. msi-controller;
  243. #msi-cells = <1>;
  244. reg = <0x0 0xc6000000 0x0 0x40000>;
  245. };
  246. };
  247. timer {
  248. compatible = "arm,armv8-timer";
  249. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
  250. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
  251. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
  252. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
  253. };
  254. pmu {
  255. compatible = "arm,cortex-a57-pmu";
  256. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
  257. };
  258. soc {
  259. compatible = "simple-bus";
  260. #address-cells = <2>;
  261. #size-cells = <2>;
  262. ranges;
  263. refclk200mhz: refclk200mhz {
  264. compatible = "fixed-clock";
  265. #clock-cells = <0>;
  266. clock-frequency = <200000000>;
  267. };
  268. uart0: uart@80300000 {
  269. compatible = "snps,dw-apb-uart";
  270. reg = <0x0 0x80300000 0x0 0x10000>;
  271. interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
  272. clocks = <&refclk200mhz>;
  273. clock-names = "apb_pclk";
  274. reg-shift = <2>;
  275. reg-io-width = <4>;
  276. status = "disabled";
  277. };
  278. uart1: uart@80310000 {
  279. compatible = "snps,dw-apb-uart";
  280. reg = <0x0 0x80310000 0x0 0x10000>;
  281. interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
  282. clocks = <&refclk200mhz>;
  283. clock-names = "apb_pclk";
  284. reg-shift = <2>;
  285. reg-io-width = <4>;
  286. status = "disabled";
  287. };
  288. lbc: localbus@80380000 {
  289. compatible = "hisilicon,hisi-localbus", "simple-bus";
  290. reg = <0x0 0x80380000 0x0 0x10000>;
  291. status = "disabled";
  292. };
  293. peri_gpio0: gpio@802e0000 {
  294. #address-cells = <1>;
  295. #size-cells = <0>;
  296. compatible = "snps,dw-apb-gpio";
  297. reg = <0x0 0x802e0000 0x0 0x10000>;
  298. status = "disabled";
  299. porta: gpio-controller@0 {
  300. compatible = "snps,dw-apb-gpio-port";
  301. gpio-controller;
  302. #gpio-cells = <2>;
  303. snps,nr-gpios = <32>;
  304. reg = <0>;
  305. interrupt-controller;
  306. #interrupt-cells = <2>;
  307. interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>;
  308. };
  309. };
  310. peri_gpio1: gpio@802f0000 {
  311. #address-cells = <1>;
  312. #size-cells = <0>;
  313. compatible = "snps,dw-apb-gpio";
  314. reg = <0x0 0x802f0000 0x0 0x10000>;
  315. status = "disabled";
  316. portb: gpio-controller@0 {
  317. compatible = "snps,dw-apb-gpio-port";
  318. gpio-controller;
  319. #gpio-cells = <2>;
  320. snps,nr-gpios = <32>;
  321. reg = <0>;
  322. interrupt-controller;
  323. #interrupt-cells = <2>;
  324. interrupts = <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>;
  325. };
  326. };
  327. };
  328. };