vexpress-v2p-ca5s.dts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * ARM Ltd. Versatile Express
  4. *
  5. * CoreTile Express A5x2
  6. * Cortex-A5 MPCore (V2P-CA5s)
  7. *
  8. * HBI-0225B
  9. */
  10. /dts-v1/;
  11. #include "vexpress-v2m-rs1.dtsi"
  12. / {
  13. model = "V2P-CA5s";
  14. arm,hbi = <0x225>;
  15. arm,vexpress,site = <0xf>;
  16. compatible = "arm,vexpress,v2p-ca5s", "arm,vexpress";
  17. interrupt-parent = <&gic>;
  18. #address-cells = <1>;
  19. #size-cells = <1>;
  20. chosen { };
  21. aliases {
  22. serial0 = &v2m_serial0;
  23. serial1 = &v2m_serial1;
  24. serial2 = &v2m_serial2;
  25. serial3 = &v2m_serial3;
  26. i2c0 = &v2m_i2c_dvi;
  27. i2c1 = &v2m_i2c_pcie;
  28. };
  29. cpus {
  30. #address-cells = <1>;
  31. #size-cells = <0>;
  32. cpu@0 {
  33. device_type = "cpu";
  34. compatible = "arm,cortex-a5";
  35. reg = <0>;
  36. next-level-cache = <&L2>;
  37. };
  38. cpu@1 {
  39. device_type = "cpu";
  40. compatible = "arm,cortex-a5";
  41. reg = <1>;
  42. next-level-cache = <&L2>;
  43. };
  44. };
  45. memory@80000000 {
  46. device_type = "memory";
  47. reg = <0x80000000 0x40000000>;
  48. };
  49. reserved-memory {
  50. #address-cells = <1>;
  51. #size-cells = <1>;
  52. ranges;
  53. /* Chipselect 2 is physically at 0x18000000 */
  54. vram: vram@18000000 {
  55. /* 8 MB of designated video RAM */
  56. compatible = "shared-dma-pool";
  57. reg = <0x18000000 0x00800000>;
  58. no-map;
  59. };
  60. };
  61. hdlcd@2a110000 {
  62. compatible = "arm,hdlcd";
  63. reg = <0x2a110000 0x1000>;
  64. interrupts = <0 85 4>;
  65. clocks = <&hdlcd_clk>;
  66. clock-names = "pxlclk";
  67. };
  68. memory-controller@2a150000 {
  69. compatible = "arm,pl341", "arm,primecell";
  70. reg = <0x2a150000 0x1000>;
  71. clocks = <&axi_clk>;
  72. clock-names = "apb_pclk";
  73. };
  74. memory-controller@2a190000 {
  75. compatible = "arm,pl354", "arm,primecell";
  76. reg = <0x2a190000 0x1000>;
  77. interrupts = <0 86 4>,
  78. <0 87 4>;
  79. clocks = <&axi_clk>;
  80. clock-names = "apb_pclk";
  81. };
  82. scu@2c000000 {
  83. compatible = "arm,cortex-a5-scu";
  84. reg = <0x2c000000 0x58>;
  85. };
  86. timer@2c000600 {
  87. compatible = "arm,cortex-a5-twd-timer";
  88. reg = <0x2c000600 0x20>;
  89. interrupts = <1 13 0x304>;
  90. };
  91. timer@2c000200 {
  92. compatible = "arm,cortex-a5-global-timer",
  93. "arm,cortex-a9-global-timer";
  94. reg = <0x2c000200 0x20>;
  95. interrupts = <1 11 0x304>;
  96. clocks = <&cpu_clk>;
  97. };
  98. watchdog@2c000620 {
  99. compatible = "arm,cortex-a5-twd-wdt";
  100. reg = <0x2c000620 0x20>;
  101. interrupts = <1 14 0x304>;
  102. };
  103. gic: interrupt-controller@2c001000 {
  104. compatible = "arm,cortex-a5-gic", "arm,cortex-a9-gic";
  105. #interrupt-cells = <3>;
  106. #address-cells = <0>;
  107. interrupt-controller;
  108. reg = <0x2c001000 0x1000>,
  109. <0x2c000100 0x100>;
  110. };
  111. L2: cache-controller@2c0f0000 {
  112. compatible = "arm,pl310-cache";
  113. reg = <0x2c0f0000 0x1000>;
  114. interrupts = <0 84 4>;
  115. cache-level = <2>;
  116. cache-unified;
  117. };
  118. pmu {
  119. compatible = "arm,cortex-a5-pmu";
  120. interrupts = <0 68 4>,
  121. <0 69 4>;
  122. };
  123. dcc {
  124. compatible = "arm,vexpress,config-bus";
  125. arm,vexpress,config-bridge = <&v2m_sysreg>;
  126. cpu_clk: oscclk0 {
  127. /* CPU and internal AXI reference clock */
  128. compatible = "arm,vexpress-osc";
  129. arm,vexpress-sysreg,func = <1 0>;
  130. freq-range = <50000000 100000000>;
  131. #clock-cells = <0>;
  132. clock-output-names = "oscclk0";
  133. };
  134. axi_clk: oscclk1 {
  135. /* Multiplexed AXI master clock */
  136. compatible = "arm,vexpress-osc";
  137. arm,vexpress-sysreg,func = <1 1>;
  138. freq-range = <5000000 50000000>;
  139. #clock-cells = <0>;
  140. clock-output-names = "oscclk1";
  141. };
  142. oscclk2 {
  143. /* DDR2 */
  144. compatible = "arm,vexpress-osc";
  145. arm,vexpress-sysreg,func = <1 2>;
  146. freq-range = <80000000 120000000>;
  147. #clock-cells = <0>;
  148. clock-output-names = "oscclk2";
  149. };
  150. hdlcd_clk: oscclk3 {
  151. /* HDLCD */
  152. compatible = "arm,vexpress-osc";
  153. arm,vexpress-sysreg,func = <1 3>;
  154. freq-range = <23750000 165000000>;
  155. #clock-cells = <0>;
  156. clock-output-names = "oscclk3";
  157. };
  158. oscclk4 {
  159. /* Test chip gate configuration */
  160. compatible = "arm,vexpress-osc";
  161. arm,vexpress-sysreg,func = <1 4>;
  162. freq-range = <80000000 80000000>;
  163. #clock-cells = <0>;
  164. clock-output-names = "oscclk4";
  165. };
  166. smbclk: oscclk5 {
  167. /* SMB clock */
  168. compatible = "arm,vexpress-osc";
  169. arm,vexpress-sysreg,func = <1 5>;
  170. freq-range = <25000000 60000000>;
  171. #clock-cells = <0>;
  172. clock-output-names = "oscclk5";
  173. };
  174. temp-dcc {
  175. /* DCC internal operating temperature */
  176. compatible = "arm,vexpress-temp";
  177. arm,vexpress-sysreg,func = <4 0>;
  178. label = "DCC";
  179. };
  180. };
  181. smb: bus@8000000 {
  182. ranges = <0 0x8000000 0x18000000>;
  183. };
  184. site2: hsb@40000000 {
  185. compatible = "simple-bus";
  186. #address-cells = <1>;
  187. #size-cells = <1>;
  188. ranges = <0 0x40000000 0x40000000>;
  189. #interrupt-cells = <1>;
  190. interrupt-map-mask = <0 3>;
  191. interrupt-map = <0 0 &gic 0 36 4>,
  192. <0 1 &gic 0 37 4>,
  193. <0 2 &gic 0 38 4>,
  194. <0 3 &gic 0 39 4>;
  195. };
  196. };