rtsm_ve-motherboard-aarch32.dtsi 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. /*
  2. * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. motherboard {
  7. arm,v2m-memory-map = "rs1";
  8. compatible = "arm,vexpress,v2m-p1", "simple-bus";
  9. #address-cells = <2>; /* SMB chipselect number and offset */
  10. #size-cells = <1>;
  11. #interrupt-cells = <1>;
  12. ranges;
  13. flash@0,00000000 {
  14. compatible = "arm,vexpress-flash", "cfi-flash";
  15. reg = <0 0x00000000 0x04000000>,
  16. <4 0x00000000 0x04000000>;
  17. bank-width = <4>;
  18. };
  19. vram@2,00000000 {
  20. compatible = "arm,vexpress-vram";
  21. reg = <2 0x00000000 0x00800000>;
  22. };
  23. ethernet@2,02000000 {
  24. compatible = "smsc,lan91c111";
  25. reg = <2 0x02000000 0x10000>;
  26. interrupts = <15>;
  27. };
  28. v2m_clk24mhz: clk24mhz {
  29. compatible = "fixed-clock";
  30. #clock-cells = <0>;
  31. clock-frequency = <24000000>;
  32. clock-output-names = "v2m:clk24mhz";
  33. };
  34. v2m_refclk1mhz: refclk1mhz {
  35. compatible = "fixed-clock";
  36. #clock-cells = <0>;
  37. clock-frequency = <1000000>;
  38. clock-output-names = "v2m:refclk1mhz";
  39. };
  40. v2m_refclk32khz: refclk32khz {
  41. compatible = "fixed-clock";
  42. #clock-cells = <0>;
  43. clock-frequency = <32768>;
  44. clock-output-names = "v2m:refclk32khz";
  45. };
  46. iofpga@3,00000000 {
  47. compatible = "arm,amba-bus", "simple-bus";
  48. #address-cells = <1>;
  49. #size-cells = <1>;
  50. ranges = <0 3 0 0x200000>;
  51. v2m_sysreg: sysreg@10000 {
  52. compatible = "arm,vexpress-sysreg";
  53. reg = <0x010000 0x1000>;
  54. gpio-controller;
  55. #gpio-cells = <2>;
  56. };
  57. v2m_sysctl: sysctl@20000 {
  58. compatible = "arm,sp810", "arm,primecell";
  59. reg = <0x020000 0x1000>;
  60. clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
  61. clock-names = "refclk", "timclk", "apb_pclk";
  62. #clock-cells = <1>;
  63. clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
  64. };
  65. aaci@40000 {
  66. compatible = "arm,pl041", "arm,primecell";
  67. reg = <0x040000 0x1000>;
  68. interrupts = <11>;
  69. clocks = <&v2m_clk24mhz>;
  70. clock-names = "apb_pclk";
  71. };
  72. mmci@50000 {
  73. compatible = "arm,pl180", "arm,primecell";
  74. reg = <0x050000 0x1000>;
  75. interrupts = <9 10>;
  76. cd-gpios = <&v2m_sysreg 0 0>;
  77. wp-gpios = <&v2m_sysreg 1 0>;
  78. max-frequency = <12000000>;
  79. vmmc-supply = <&v2m_fixed_3v3>;
  80. clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
  81. clock-names = "mclk", "apb_pclk";
  82. };
  83. kmi@60000 {
  84. compatible = "arm,pl050", "arm,primecell";
  85. reg = <0x060000 0x1000>;
  86. interrupts = <12>;
  87. clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
  88. clock-names = "KMIREFCLK", "apb_pclk";
  89. };
  90. kmi@70000 {
  91. compatible = "arm,pl050", "arm,primecell";
  92. reg = <0x070000 0x1000>;
  93. interrupts = <13>;
  94. clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
  95. clock-names = "KMIREFCLK", "apb_pclk";
  96. };
  97. v2m_serial0: uart@90000 {
  98. compatible = "arm,pl011", "arm,primecell";
  99. reg = <0x090000 0x1000>;
  100. interrupts = <5>;
  101. clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
  102. clock-names = "uartclk", "apb_pclk";
  103. };
  104. v2m_serial1: uart@a0000 {
  105. compatible = "arm,pl011", "arm,primecell";
  106. reg = <0x0a0000 0x1000>;
  107. interrupts = <6>;
  108. clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
  109. clock-names = "uartclk", "apb_pclk";
  110. };
  111. v2m_serial2: uart@b0000 {
  112. compatible = "arm,pl011", "arm,primecell";
  113. reg = <0x0b0000 0x1000>;
  114. interrupts = <7>;
  115. clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
  116. clock-names = "uartclk", "apb_pclk";
  117. };
  118. v2m_serial3: uart@c0000 {
  119. compatible = "arm,pl011", "arm,primecell";
  120. reg = <0x0c0000 0x1000>;
  121. interrupts = <8>;
  122. clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
  123. clock-names = "uartclk", "apb_pclk";
  124. };
  125. wdt@f0000 {
  126. compatible = "arm,sp805", "arm,primecell";
  127. reg = <0x0f0000 0x1000>;
  128. interrupts = <0>;
  129. clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>;
  130. clock-names = "wdogclk", "apb_pclk";
  131. };
  132. v2m_timer01: timer@110000 {
  133. compatible = "arm,sp804", "arm,primecell";
  134. reg = <0x110000 0x1000>;
  135. interrupts = <2>;
  136. clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>;
  137. clock-names = "timclken1", "timclken2", "apb_pclk";
  138. };
  139. v2m_timer23: timer@120000 {
  140. compatible = "arm,sp804", "arm,primecell";
  141. reg = <0x120000 0x1000>;
  142. interrupts = <3>;
  143. clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>;
  144. clock-names = "timclken1", "timclken2", "apb_pclk";
  145. };
  146. rtc@170000 {
  147. compatible = "arm,pl031", "arm,primecell";
  148. reg = <0x170000 0x1000>;
  149. interrupts = <4>;
  150. clocks = <&v2m_clk24mhz>;
  151. clock-names = "apb_pclk";
  152. };
  153. clcd@1f0000 {
  154. compatible = "arm,pl111", "arm,primecell";
  155. reg = <0x1f0000 0x1000>;
  156. interrupts = <14>;
  157. clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
  158. clock-names = "clcdclk", "apb_pclk";
  159. mode = "XVGA";
  160. use_dma = <0>;
  161. framebuffer = <0x18000000 0x00180000>;
  162. };
  163. virtio_block@130000 {
  164. compatible = "virtio,mmio";
  165. reg = <0x130000 0x1000>;
  166. interrupts = <0x2a>;
  167. };
  168. };
  169. v2m_fixed_3v3: fixedregulator@0 {
  170. compatible = "regulator-fixed";
  171. regulator-name = "3V3";
  172. regulator-min-microvolt = <3300000>;
  173. regulator-max-microvolt = <3300000>;
  174. regulator-always-on;
  175. };
  176. mcc {
  177. compatible = "arm,vexpress,config-bus", "simple-bus";
  178. arm,vexpress,config-bridge = <&v2m_sysreg>;
  179. v2m_oscclk1: osc@1 {
  180. /* CLCD clock */
  181. compatible = "arm,vexpress-osc";
  182. arm,vexpress-sysreg,func = <1 1>;
  183. freq-range = <23750000 63500000>;
  184. #clock-cells = <0>;
  185. clock-output-names = "v2m:oscclk1";
  186. };
  187. /*
  188. * Not supported in FVP models
  189. *
  190. * reset@0 {
  191. * compatible = "arm,vexpress-reset";
  192. * arm,vexpress-sysreg,func = <5 0>;
  193. * };
  194. */
  195. muxfpga@0 {
  196. compatible = "arm,vexpress-muxfpga";
  197. arm,vexpress-sysreg,func = <7 0>;
  198. };
  199. /*
  200. * Not used - Superseded by PSCI sys_poweroff
  201. *
  202. * shutdown@0 {
  203. * compatible = "arm,vexpress-shutdown";
  204. * arm,vexpress-sysreg,func = <8 0>;
  205. * };
  206. */
  207. /*
  208. * Not used - Superseded by PSCI sys_reset
  209. *
  210. * reboot@0 {
  211. * compatible = "arm,vexpress-reboot";
  212. * arm,vexpress-sysreg,func = <9 0>;
  213. * };
  214. */
  215. dvimode@0 {
  216. compatible = "arm,vexpress-dvimode";
  217. arm,vexpress-sysreg,func = <11 0>;
  218. };
  219. };
  220. };