wm8850.dtsi 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * wm8850.dtsi - Device tree file for Wondermedia WM8850 SoC
  4. *
  5. * Copyright (C) 2012 Tony Prisk <[email protected]>
  6. */
  7. / {
  8. #address-cells = <1>;
  9. #size-cells = <1>;
  10. compatible = "wm,wm8850";
  11. cpus {
  12. #address-cells = <1>;
  13. #size-cells = <0>;
  14. cpu@0 {
  15. device_type = "cpu";
  16. compatible = "arm,cortex-a9";
  17. reg = <0x0>;
  18. };
  19. };
  20. memory {
  21. device_type = "memory";
  22. reg = <0x0 0x0>;
  23. };
  24. aliases {
  25. serial0 = &uart0;
  26. serial1 = &uart1;
  27. serial2 = &uart2;
  28. serial3 = &uart3;
  29. };
  30. soc {
  31. #address-cells = <1>;
  32. #size-cells = <1>;
  33. compatible = "simple-bus";
  34. ranges;
  35. interrupt-parent = <&intc0>;
  36. intc0: interrupt-controller@d8140000 {
  37. compatible = "via,vt8500-intc";
  38. interrupt-controller;
  39. reg = <0xd8140000 0x10000>;
  40. #interrupt-cells = <1>;
  41. };
  42. /* Secondary IC cascaded to intc0 */
  43. intc1: interrupt-controller@d8150000 {
  44. compatible = "via,vt8500-intc";
  45. interrupt-controller;
  46. #interrupt-cells = <1>;
  47. reg = <0xD8150000 0x10000>;
  48. interrupts = <56 57 58 59 60 61 62 63>;
  49. };
  50. pinctrl: pinctrl@d8110000 {
  51. compatible = "wm,wm8850-pinctrl";
  52. reg = <0xd8110000 0x10000>;
  53. interrupt-controller;
  54. #interrupt-cells = <2>;
  55. gpio-controller;
  56. #gpio-cells = <2>;
  57. };
  58. pmc@d8130000 {
  59. compatible = "via,vt8500-pmc";
  60. reg = <0xd8130000 0x1000>;
  61. clocks {
  62. #address-cells = <1>;
  63. #size-cells = <0>;
  64. ref25: ref25M {
  65. #clock-cells = <0>;
  66. compatible = "fixed-clock";
  67. clock-frequency = <25000000>;
  68. };
  69. ref24: ref24M {
  70. #clock-cells = <0>;
  71. compatible = "fixed-clock";
  72. clock-frequency = <24000000>;
  73. };
  74. plla: plla {
  75. #clock-cells = <0>;
  76. compatible = "wm,wm8850-pll-clock";
  77. clocks = <&ref24>;
  78. reg = <0x200>;
  79. };
  80. pllb: pllb {
  81. #clock-cells = <0>;
  82. compatible = "wm,wm8850-pll-clock";
  83. clocks = <&ref24>;
  84. reg = <0x204>;
  85. };
  86. pllc: pllc {
  87. #clock-cells = <0>;
  88. compatible = "wm,wm8850-pll-clock";
  89. clocks = <&ref24>;
  90. reg = <0x208>;
  91. };
  92. plld: plld {
  93. #clock-cells = <0>;
  94. compatible = "wm,wm8850-pll-clock";
  95. clocks = <&ref24>;
  96. reg = <0x20c>;
  97. };
  98. plle: plle {
  99. #clock-cells = <0>;
  100. compatible = "wm,wm8850-pll-clock";
  101. clocks = <&ref24>;
  102. reg = <0x210>;
  103. };
  104. pllf: pllf {
  105. #clock-cells = <0>;
  106. compatible = "wm,wm8850-pll-clock";
  107. clocks = <&ref24>;
  108. reg = <0x214>;
  109. };
  110. pllg: pllg {
  111. #clock-cells = <0>;
  112. compatible = "wm,wm8850-pll-clock";
  113. clocks = <&ref24>;
  114. reg = <0x218>;
  115. };
  116. clkarm: arm {
  117. #clock-cells = <0>;
  118. compatible = "via,vt8500-device-clock";
  119. clocks = <&plla>;
  120. divisor-reg = <0x300>;
  121. };
  122. clkahb: ahb {
  123. #clock-cells = <0>;
  124. compatible = "via,vt8500-device-clock";
  125. clocks = <&pllb>;
  126. divisor-reg = <0x304>;
  127. };
  128. clkapb: apb {
  129. #clock-cells = <0>;
  130. compatible = "via,vt8500-device-clock";
  131. clocks = <&pllb>;
  132. divisor-reg = <0x320>;
  133. };
  134. clkddr: ddr {
  135. #clock-cells = <0>;
  136. compatible = "via,vt8500-device-clock";
  137. clocks = <&plld>;
  138. divisor-reg = <0x310>;
  139. };
  140. clkuart0: uart0 {
  141. #clock-cells = <0>;
  142. compatible = "via,vt8500-device-clock";
  143. clocks = <&ref24>;
  144. enable-reg = <0x254>;
  145. enable-bit = <24>;
  146. };
  147. clkuart1: uart1 {
  148. #clock-cells = <0>;
  149. compatible = "via,vt8500-device-clock";
  150. clocks = <&ref24>;
  151. enable-reg = <0x254>;
  152. enable-bit = <25>;
  153. };
  154. clkuart2: uart2 {
  155. #clock-cells = <0>;
  156. compatible = "via,vt8500-device-clock";
  157. clocks = <&ref24>;
  158. enable-reg = <0x254>;
  159. enable-bit = <26>;
  160. };
  161. clkuart3: uart3 {
  162. #clock-cells = <0>;
  163. compatible = "via,vt8500-device-clock";
  164. clocks = <&ref24>;
  165. enable-reg = <0x254>;
  166. enable-bit = <27>;
  167. };
  168. clkpwm: pwm {
  169. #clock-cells = <0>;
  170. compatible = "via,vt8500-device-clock";
  171. clocks = <&pllb>;
  172. divisor-reg = <0x350>;
  173. enable-reg = <0x250>;
  174. enable-bit = <17>;
  175. };
  176. clksdhc: sdhc {
  177. #clock-cells = <0>;
  178. compatible = "via,vt8500-device-clock";
  179. clocks = <&pllb>;
  180. divisor-reg = <0x330>;
  181. divisor-mask = <0x3f>;
  182. enable-reg = <0x250>;
  183. enable-bit = <0>;
  184. };
  185. };
  186. };
  187. fb: fb@d8051700 {
  188. compatible = "wm,wm8505-fb";
  189. reg = <0xd8051700 0x200>;
  190. };
  191. ge_rops@d8050400 {
  192. compatible = "wm,prizm-ge-rops";
  193. reg = <0xd8050400 0x100>;
  194. };
  195. pwm: pwm@d8220000 {
  196. #pwm-cells = <3>;
  197. compatible = "via,vt8500-pwm";
  198. reg = <0xd8220000 0x100>;
  199. clocks = <&clkpwm>;
  200. };
  201. timer@d8130100 {
  202. compatible = "via,vt8500-timer";
  203. reg = <0xd8130100 0x28>;
  204. interrupts = <36>;
  205. };
  206. ehci@d8007900 {
  207. compatible = "via,vt8500-ehci";
  208. reg = <0xd8007900 0x200>;
  209. interrupts = <26>;
  210. };
  211. uhci@d8007b00 {
  212. compatible = "platform-uhci";
  213. reg = <0xd8007b00 0x200>;
  214. interrupts = <26>;
  215. };
  216. uhci@d8008d00 {
  217. compatible = "platform-uhci";
  218. reg = <0xd8008d00 0x200>;
  219. interrupts = <26>;
  220. };
  221. uart0: serial@d8200000 {
  222. compatible = "via,vt8500-uart";
  223. reg = <0xd8200000 0x1040>;
  224. interrupts = <32>;
  225. clocks = <&clkuart0>;
  226. status = "disabled";
  227. };
  228. uart1: serial@d82b0000 {
  229. compatible = "via,vt8500-uart";
  230. reg = <0xd82b0000 0x1040>;
  231. interrupts = <33>;
  232. clocks = <&clkuart1>;
  233. status = "disabled";
  234. };
  235. uart2: serial@d8210000 {
  236. compatible = "via,vt8500-uart";
  237. reg = <0xd8210000 0x1040>;
  238. interrupts = <47>;
  239. clocks = <&clkuart2>;
  240. status = "disabled";
  241. };
  242. uart3: serial@d82c0000 {
  243. compatible = "via,vt8500-uart";
  244. reg = <0xd82c0000 0x1040>;
  245. interrupts = <50>;
  246. clocks = <&clkuart3>;
  247. status = "disabled";
  248. };
  249. rtc@d8100000 {
  250. compatible = "via,vt8500-rtc";
  251. reg = <0xd8100000 0x10000>;
  252. interrupts = <48>;
  253. };
  254. sdhc@d800a000 {
  255. compatible = "wm,wm8505-sdhc";
  256. reg = <0xd800a000 0x1000>;
  257. interrupts = <20 21>;
  258. clocks = <&clksdhc>;
  259. bus-width = <4>;
  260. sdon-inverted;
  261. };
  262. ethernet@d8004000 {
  263. compatible = "via,vt8500-rhine";
  264. reg = <0xd8004000 0x100>;
  265. interrupts = <10>;
  266. };
  267. };
  268. };