rtsm_ve-motherboard.dtsi 6.6 KB

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