hi6220.dtsi 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. /*
  2. * dts file for Hisilicon Hi6220 SoC
  3. *
  4. * Copyright (C) 2015, Hisilicon Ltd.
  5. */
  6. #include <dt-bindings/interrupt-controller/arm-gic.h>
  7. #include <dt-bindings/clock/hi6220-clock.h>
  8. / {
  9. compatible = "hisilicon,hi6220";
  10. interrupt-parent = <&gic>;
  11. #address-cells = <2>;
  12. #size-cells = <2>;
  13. psci {
  14. compatible = "arm,psci-0.2";
  15. method = "smc";
  16. };
  17. cpus {
  18. #address-cells = <2>;
  19. #size-cells = <0>;
  20. cpu-map {
  21. cluster0 {
  22. core0 {
  23. cpu = <&cpu0>;
  24. };
  25. core1 {
  26. cpu = <&cpu1>;
  27. };
  28. core2 {
  29. cpu = <&cpu2>;
  30. };
  31. core3 {
  32. cpu = <&cpu3>;
  33. };
  34. };
  35. cluster1 {
  36. core0 {
  37. cpu = <&cpu4>;
  38. };
  39. core1 {
  40. cpu = <&cpu5>;
  41. };
  42. core2 {
  43. cpu = <&cpu6>;
  44. };
  45. core3 {
  46. cpu = <&cpu7>;
  47. };
  48. };
  49. };
  50. cpu0: cpu@0 {
  51. compatible = "arm,cortex-a53", "arm,armv8";
  52. device_type = "cpu";
  53. reg = <0x0 0x0>;
  54. enable-method = "psci";
  55. };
  56. cpu1: cpu@1 {
  57. compatible = "arm,cortex-a53", "arm,armv8";
  58. device_type = "cpu";
  59. reg = <0x0 0x1>;
  60. enable-method = "psci";
  61. };
  62. cpu2: cpu@2 {
  63. compatible = "arm,cortex-a53", "arm,armv8";
  64. device_type = "cpu";
  65. reg = <0x0 0x2>;
  66. enable-method = "psci";
  67. };
  68. cpu3: cpu@3 {
  69. compatible = "arm,cortex-a53", "arm,armv8";
  70. device_type = "cpu";
  71. reg = <0x0 0x3>;
  72. enable-method = "psci";
  73. };
  74. cpu4: cpu@100 {
  75. compatible = "arm,cortex-a53", "arm,armv8";
  76. device_type = "cpu";
  77. reg = <0x0 0x100>;
  78. enable-method = "psci";
  79. };
  80. cpu5: cpu@101 {
  81. compatible = "arm,cortex-a53", "arm,armv8";
  82. device_type = "cpu";
  83. reg = <0x0 0x101>;
  84. enable-method = "psci";
  85. };
  86. cpu6: cpu@102 {
  87. compatible = "arm,cortex-a53", "arm,armv8";
  88. device_type = "cpu";
  89. reg = <0x0 0x102>;
  90. enable-method = "psci";
  91. };
  92. cpu7: cpu@103 {
  93. compatible = "arm,cortex-a53", "arm,armv8";
  94. device_type = "cpu";
  95. reg = <0x0 0x103>;
  96. enable-method = "psci";
  97. };
  98. };
  99. gic: interrupt-controller@f6801000 {
  100. compatible = "arm,gic-400";
  101. reg = <0x0 0xf6801000 0 0x1000>, /* GICD */
  102. <0x0 0xf6802000 0 0x2000>, /* GICC */
  103. <0x0 0xf6804000 0 0x2000>, /* GICH */
  104. <0x0 0xf6806000 0 0x2000>; /* GICV */
  105. #address-cells = <0>;
  106. #interrupt-cells = <3>;
  107. interrupt-controller;
  108. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  109. };
  110. timer {
  111. compatible = "arm,armv8-timer";
  112. interrupt-parent = <&gic>;
  113. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
  114. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
  115. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
  116. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
  117. };
  118. soc {
  119. compatible = "simple-bus";
  120. #address-cells = <2>;
  121. #size-cells = <2>;
  122. ranges;
  123. ao_ctrl: ao_ctrl@f7800000 {
  124. compatible = "hisilicon,hi6220-aoctrl", "syscon";
  125. reg = <0x0 0xf7800000 0x0 0x2000>;
  126. #clock-cells = <1>;
  127. };
  128. sys_ctrl: sys_ctrl@f7030000 {
  129. compatible = "hisilicon,hi6220-sysctrl", "syscon";
  130. reg = <0x0 0xf7030000 0x0 0x2000>;
  131. #clock-cells = <1>;
  132. };
  133. media_ctrl: media_ctrl@f4410000 {
  134. compatible = "hisilicon,hi6220-mediactrl", "syscon";
  135. reg = <0x0 0xf4410000 0x0 0x1000>;
  136. #clock-cells = <1>;
  137. };
  138. pm_ctrl: pm_ctrl@f7032000 {
  139. compatible = "hisilicon,hi6220-pmctrl", "syscon";
  140. reg = <0x0 0xf7032000 0x0 0x1000>;
  141. #clock-cells = <1>;
  142. };
  143. uart0: uart@f8015000 { /* console */
  144. compatible = "arm,pl011", "arm,primecell";
  145. reg = <0x0 0xf8015000 0x0 0x1000>;
  146. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  147. clocks = <&ao_ctrl HI6220_UART0_PCLK>,
  148. <&ao_ctrl HI6220_UART0_PCLK>;
  149. clock-names = "uartclk", "apb_pclk";
  150. };
  151. uart1: uart@f7111000 {
  152. compatible = "arm,pl011", "arm,primecell";
  153. reg = <0x0 0xf7111000 0x0 0x1000>;
  154. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  155. clocks = <&sys_ctrl HI6220_UART1_PCLK>,
  156. <&sys_ctrl HI6220_UART1_PCLK>;
  157. clock-names = "uartclk", "apb_pclk";
  158. status = "disabled";
  159. };
  160. uart2: uart@f7112000 {
  161. compatible = "arm,pl011", "arm,primecell";
  162. reg = <0x0 0xf7112000 0x0 0x1000>;
  163. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  164. clocks = <&sys_ctrl HI6220_UART2_PCLK>,
  165. <&sys_ctrl HI6220_UART2_PCLK>;
  166. clock-names = "uartclk", "apb_pclk";
  167. status = "disabled";
  168. };
  169. uart3: uart@f7113000 {
  170. compatible = "arm,pl011", "arm,primecell";
  171. reg = <0x0 0xf7113000 0x0 0x1000>;
  172. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  173. clocks = <&sys_ctrl HI6220_UART3_PCLK>,
  174. <&sys_ctrl HI6220_UART3_PCLK>;
  175. clock-names = "uartclk", "apb_pclk";
  176. };
  177. uart4: uart@f7114000 {
  178. compatible = "arm,pl011", "arm,primecell";
  179. reg = <0x0 0xf7114000 0x0 0x1000>;
  180. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  181. clocks = <&sys_ctrl HI6220_UART4_PCLK>,
  182. <&sys_ctrl HI6220_UART4_PCLK>;
  183. clock-names = "uartclk", "apb_pclk";
  184. status = "disabled";
  185. };
  186. };
  187. };