wm8850.dtsi 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  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. aliases {
  12. serial0 = &uart0;
  13. serial1 = &uart1;
  14. serial2 = &uart2;
  15. serial3 = &uart3;
  16. };
  17. soc {
  18. #address-cells = <1>;
  19. #size-cells = <1>;
  20. compatible = "simple-bus";
  21. ranges;
  22. interrupt-parent = <&intc0>;
  23. intc0: interrupt-controller@d8140000 {
  24. compatible = "via,vt8500-intc";
  25. interrupt-controller;
  26. reg = <0xd8140000 0x10000>;
  27. #interrupt-cells = <1>;
  28. };
  29. /* Secondary IC cascaded to intc0 */
  30. intc1: interrupt-controller@d8150000 {
  31. compatible = "via,vt8500-intc";
  32. interrupt-controller;
  33. #interrupt-cells = <1>;
  34. reg = <0xD8150000 0x10000>;
  35. interrupts = <56 57 58 59 60 61 62 63>;
  36. };
  37. gpio: gpio-controller@d8110000 {
  38. compatible = "wm,wm8650-gpio";
  39. gpio-controller;
  40. reg = <0xd8110000 0x10000>;
  41. #gpio-cells = <3>;
  42. };
  43. pinctrl: pinctrl@d8110000 {
  44. compatible = "wm,wm8850-pinctrl";
  45. reg = <0xd8110000 0x10000>;
  46. interrupt-controller;
  47. #interrupt-cells = <2>;
  48. gpio-controller;
  49. #gpio-cells = <2>;
  50. };
  51. pmc@d8130000 {
  52. compatible = "via,vt8500-pmc";
  53. reg = <0xd8130000 0x1000>;
  54. clocks {
  55. #address-cells = <1>;
  56. #size-cells = <0>;
  57. ref25: ref25M {
  58. #clock-cells = <0>;
  59. compatible = "fixed-clock";
  60. clock-frequency = <25000000>;
  61. };
  62. ref24: ref24M {
  63. #clock-cells = <0>;
  64. compatible = "fixed-clock";
  65. clock-frequency = <24000000>;
  66. };
  67. plla: plla {
  68. #clock-cells = <0>;
  69. compatible = "wm,wm8750-pll-clock";
  70. clocks = <&ref25>;
  71. reg = <0x200>;
  72. };
  73. pllb: pllb {
  74. #clock-cells = <0>;
  75. compatible = "wm,wm8750-pll-clock";
  76. clocks = <&ref25>;
  77. reg = <0x204>;
  78. };
  79. clkuart0: uart0 {
  80. #clock-cells = <0>;
  81. compatible = "via,vt8500-device-clock";
  82. clocks = <&ref24>;
  83. enable-reg = <0x254>;
  84. enable-bit = <24>;
  85. };
  86. clkuart1: uart1 {
  87. #clock-cells = <0>;
  88. compatible = "via,vt8500-device-clock";
  89. clocks = <&ref24>;
  90. enable-reg = <0x254>;
  91. enable-bit = <25>;
  92. };
  93. clkuart2: uart2 {
  94. #clock-cells = <0>;
  95. compatible = "via,vt8500-device-clock";
  96. clocks = <&ref24>;
  97. enable-reg = <0x254>;
  98. enable-bit = <26>;
  99. };
  100. clkuart3: uart3 {
  101. #clock-cells = <0>;
  102. compatible = "via,vt8500-device-clock";
  103. clocks = <&ref24>;
  104. enable-reg = <0x254>;
  105. enable-bit = <27>;
  106. };
  107. clkpwm: pwm {
  108. #clock-cells = <0>;
  109. compatible = "via,vt8500-device-clock";
  110. clocks = <&pllb>;
  111. divisor-reg = <0x350>;
  112. enable-reg = <0x250>;
  113. enable-bit = <17>;
  114. };
  115. clksdhc: sdhc {
  116. #clock-cells = <0>;
  117. compatible = "via,vt8500-device-clock";
  118. clocks = <&pllb>;
  119. divisor-reg = <0x330>;
  120. divisor-mask = <0x3f>;
  121. enable-reg = <0x250>;
  122. enable-bit = <0>;
  123. };
  124. };
  125. };
  126. fb@d8051700 {
  127. compatible = "wm,wm8505-fb";
  128. reg = <0xd8051700 0x200>;
  129. display = <&display>;
  130. default-mode = <&mode0>;
  131. };
  132. ge_rops@d8050400 {
  133. compatible = "wm,prizm-ge-rops";
  134. reg = <0xd8050400 0x100>;
  135. };
  136. pwm: pwm@d8220000 {
  137. #pwm-cells = <3>;
  138. compatible = "via,vt8500-pwm";
  139. reg = <0xd8220000 0x100>;
  140. clocks = <&clkpwm>;
  141. };
  142. timer@d8130100 {
  143. compatible = "via,vt8500-timer";
  144. reg = <0xd8130100 0x28>;
  145. interrupts = <36>;
  146. };
  147. ehci@d8007900 {
  148. compatible = "via,vt8500-ehci";
  149. reg = <0xd8007900 0x200>;
  150. interrupts = <26>;
  151. };
  152. uhci@d8007b00 {
  153. compatible = "platform-uhci";
  154. reg = <0xd8007b00 0x200>;
  155. interrupts = <26>;
  156. };
  157. uhci@d8008d00 {
  158. compatible = "platform-uhci";
  159. reg = <0xd8008d00 0x200>;
  160. interrupts = <26>;
  161. };
  162. uart0: uart@d8200000 {
  163. compatible = "via,vt8500-uart";
  164. reg = <0xd8200000 0x1040>;
  165. interrupts = <32>;
  166. clocks = <&clkuart0>;
  167. };
  168. uart1: uart@d82b0000 {
  169. compatible = "via,vt8500-uart";
  170. reg = <0xd82b0000 0x1040>;
  171. interrupts = <33>;
  172. clocks = <&clkuart1>;
  173. };
  174. uart2: uart@d8210000 {
  175. compatible = "via,vt8500-uart";
  176. reg = <0xd8210000 0x1040>;
  177. interrupts = <47>;
  178. clocks = <&clkuart2>;
  179. };
  180. uart3: uart@d82c0000 {
  181. compatible = "via,vt8500-uart";
  182. reg = <0xd82c0000 0x1040>;
  183. interrupts = <50>;
  184. clocks = <&clkuart3>;
  185. };
  186. rtc@d8100000 {
  187. compatible = "via,vt8500-rtc";
  188. reg = <0xd8100000 0x10000>;
  189. interrupts = <48>;
  190. };
  191. sdhc@d800a000 {
  192. compatible = "wm,wm8505-sdhc";
  193. reg = <0xd800a000 0x1000>;
  194. interrupts = <20 21>;
  195. clocks = <&clksdhc>;
  196. bus-width = <4>;
  197. sdon-inverted;
  198. };
  199. };
  200. };