wm8850.dtsi 6.5 KB

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