arm-realview-eb-mp.dtsi 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. /*
  2. * Copyright 2016 Linaro Ltd
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a copy
  5. * of this software and associated documentation files (the "Software"), to deal
  6. * in the Software without restriction, including without limitation the rights
  7. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. * copies of the Software, and to permit persons to whom the Software is
  9. * furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice shall be included in
  12. * all copies or substantial portions of the Software.
  13. *
  14. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  17. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20. * THE SOFTWARE.
  21. */
  22. #include <dt-bindings/interrupt-controller/irq.h>
  23. #include <dt-bindings/gpio/gpio.h>
  24. #include "arm-realview-eb.dtsi"
  25. /*
  26. * This is the common include file for all MPCore variants of the
  27. * Evaluation Baseboard, i.e. ARM11MPCore, ARM11MPCore Revision B
  28. * and Cortex-A9 MPCore.
  29. */
  30. / {
  31. soc {
  32. #address-cells = <1>;
  33. #size-cells = <1>;
  34. compatible = "arm,realview-eb-soc", "simple-bus";
  35. regmap = <&syscon>;
  36. ranges;
  37. /* Primary interrupt controller in the test chip */
  38. intc: interrupt-controller@1f000100 {
  39. compatible = "arm,eb11mp-gic";
  40. #interrupt-cells = <3>;
  41. #address-cells = <1>;
  42. interrupt-controller;
  43. reg = <0x1f001000 0x1000>,
  44. <0x1f000100 0x100>;
  45. };
  46. /* Secondary interrupt controller on the FPGA */
  47. intc_second: interrupt-controller@10040000 {
  48. compatible = "arm,pl390";
  49. #interrupt-cells = <3>;
  50. #address-cells = <1>;
  51. interrupt-controller;
  52. reg = <0x10041000 0x1000>,
  53. <0x10040000 0x100>;
  54. interrupt-parent = <&intc>;
  55. interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
  56. };
  57. L2: cache-controller {
  58. compatible = "arm,l220-cache";
  59. reg = <0x1f002000 0x1000>;
  60. interrupt-parent = <&intc>;
  61. interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>,
  62. <0 30 IRQ_TYPE_LEVEL_HIGH>,
  63. <0 31 IRQ_TYPE_LEVEL_HIGH>;
  64. cache-unified;
  65. cache-level = <2>;
  66. /*
  67. * Override default cache size, sets and
  68. * associativity as these may be erroneously set
  69. * up by boot loader(s), probably for safety
  70. * since th outer sync operation can cause the
  71. * cache to hang unless disabled.
  72. */
  73. cache-size = <1048576>; // 1MB
  74. cache-sets = <4096>;
  75. cache-line-size = <32>;
  76. arm,shared-override;
  77. arm,parity-enable;
  78. arm,outer-sync-disable;
  79. };
  80. scu: scu@1f000000 {
  81. compatible = "arm,arm11mp-scu";
  82. reg = <0x1f000000 0x100>;
  83. };
  84. twd_timer: timer@1f000600 {
  85. compatible = "arm,arm11mp-twd-timer";
  86. reg = <0x1f000600 0x20>;
  87. interrupt-parent = <&intc>;
  88. interrupts = <1 13 0xf04>;
  89. };
  90. twd_wdog: watchdog@1f000620 {
  91. compatible = "arm,arm11mp-twd-wdt";
  92. reg = <0x1f000620 0x20>;
  93. interrupt-parent = <&intc>;
  94. interrupts = <1 14 0xf04>;
  95. };
  96. /* PMU with one IRQ line per core */
  97. pmu: pmu@0 {
  98. compatible = "arm,arm11mpcore-pmu";
  99. interrupt-parent = <&intc>;
  100. interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH>,
  101. <0 18 IRQ_TYPE_LEVEL_HIGH>,
  102. <0 19 IRQ_TYPE_LEVEL_HIGH>,
  103. <0 20 IRQ_TYPE_LEVEL_HIGH>;
  104. };
  105. };
  106. };
  107. /*
  108. * This adapts all the peripherals to the interrupt routing
  109. * to the GIC on the core tile.
  110. */
  111. &ethernet {
  112. interrupt-parent = <&intc>;
  113. interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
  114. };
  115. &usb {
  116. interrupt-parent = <&intc>;
  117. interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>;
  118. };
  119. &aaci {
  120. interrupt-parent = <&intc>;
  121. interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
  122. };
  123. &mmc {
  124. interrupt-parent = <&intc>;
  125. interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>,
  126. <0 15 IRQ_TYPE_LEVEL_HIGH>;
  127. };
  128. &kmi0 {
  129. interrupt-parent = <&intc>;
  130. interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
  131. };
  132. &kmi1 {
  133. interrupt-parent = <&intc>;
  134. interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
  135. };
  136. &serial0 {
  137. interrupt-parent = <&intc>;
  138. interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
  139. };
  140. &serial1 {
  141. interrupt-parent = <&intc>;
  142. interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
  143. };
  144. &timer01 {
  145. interrupt-parent = <&intc>;
  146. interrupts = <0 1 IRQ_TYPE_LEVEL_HIGH>;
  147. };
  148. &timer23 {
  149. interrupt-parent = <&intc>;
  150. interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
  151. };
  152. &rtc {
  153. interrupt-parent = <&intc>;
  154. interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
  155. };
  156. /*
  157. * On revision A, these peripherals does not have their IRQ lines
  158. * routed to the core tile, but they can be reached on the secondary
  159. * GIC.
  160. */
  161. &gpio0 {
  162. interrupt-parent = <&intc_second>;
  163. interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
  164. };
  165. &gpio1 {
  166. interrupt-parent = <&intc_second>;
  167. interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
  168. };
  169. &gpio2 {
  170. interrupt-parent = <&intc_second>;
  171. interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
  172. };
  173. &serial2 {
  174. interrupt-parent = <&intc_second>;
  175. interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
  176. status = "okay";
  177. };
  178. &serial3 {
  179. interrupt-parent = <&intc_second>;
  180. interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
  181. status = "okay";
  182. };
  183. &ssp {
  184. interrupt-parent = <&intc_second>;
  185. interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
  186. status = "okay";
  187. };
  188. &wdog {
  189. interrupt-parent = <&intc_second>;
  190. interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>;
  191. status = "okay";
  192. };