wm8750.dtsi 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. /*
  2. * wm8750.dtsi - Device tree file for Wondermedia WM8750 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,wm8750";
  11. cpus {
  12. #address-cells = <0>;
  13. #size-cells = <0>;
  14. cpu {
  15. device_type = "cpu";
  16. compatible = "arm,arm1176ej-s";
  17. };
  18. };
  19. aliases {
  20. serial0 = &uart0;
  21. serial1 = &uart1;
  22. serial2 = &uart2;
  23. serial3 = &uart3;
  24. serial4 = &uart4;
  25. serial5 = &uart5;
  26. i2c0 = &i2c_0;
  27. i2c1 = &i2c_1;
  28. };
  29. soc {
  30. #address-cells = <1>;
  31. #size-cells = <1>;
  32. compatible = "simple-bus";
  33. ranges;
  34. interrupt-parent = <&intc0>;
  35. intc0: interrupt-controller@d8140000 {
  36. compatible = "via,vt8500-intc";
  37. interrupt-controller;
  38. reg = <0xd8140000 0x10000>;
  39. #interrupt-cells = <1>;
  40. };
  41. /* Secondary IC cascaded to intc0 */
  42. intc1: interrupt-controller@d8150000 {
  43. compatible = "via,vt8500-intc";
  44. interrupt-controller;
  45. #interrupt-cells = <1>;
  46. reg = <0xD8150000 0x10000>;
  47. interrupts = <56 57 58 59 60 61 62 63>;
  48. };
  49. pinctrl: pinctrl@d8110000 {
  50. compatible = "wm,wm8750-pinctrl";
  51. reg = <0xd8110000 0x10000>;
  52. interrupt-controller;
  53. #interrupt-cells = <2>;
  54. gpio-controller;
  55. #gpio-cells = <2>;
  56. };
  57. pmc@d8130000 {
  58. compatible = "via,vt8500-pmc";
  59. reg = <0xd8130000 0x1000>;
  60. clocks {
  61. #address-cells = <1>;
  62. #size-cells = <0>;
  63. ref24: ref24M {
  64. #clock-cells = <0>;
  65. compatible = "fixed-clock";
  66. clock-frequency = <24000000>;
  67. };
  68. ref25: ref25M {
  69. #clock-cells = <0>;
  70. compatible = "fixed-clock";
  71. clock-frequency = <25000000>;
  72. };
  73. plla: plla {
  74. #clock-cells = <0>;
  75. compatible = "wm,wm8750-pll-clock";
  76. clocks = <&ref25>;
  77. reg = <0x200>;
  78. };
  79. pllb: pllb {
  80. #clock-cells = <0>;
  81. compatible = "wm,wm8750-pll-clock";
  82. clocks = <&ref25>;
  83. reg = <0x204>;
  84. };
  85. pllc: pllc {
  86. #clock-cells = <0>;
  87. compatible = "wm,wm8750-pll-clock";
  88. clocks = <&ref25>;
  89. reg = <0x208>;
  90. };
  91. plld: plld {
  92. #clock-cells = <0>;
  93. compatible = "wm,wm8750-pll-clock";
  94. clocks = <&ref25>;
  95. reg = <0x20C>;
  96. };
  97. plle: plle {
  98. #clock-cells = <0>;
  99. compatible = "wm,wm8750-pll-clock";
  100. clocks = <&ref25>;
  101. reg = <0x210>;
  102. };
  103. clkarm: arm {
  104. #clock-cells = <0>;
  105. compatible = "via,vt8500-device-clock";
  106. clocks = <&plla>;
  107. divisor-reg = <0x300>;
  108. };
  109. clkahb: ahb {
  110. #clock-cells = <0>;
  111. compatible = "via,vt8500-device-clock";
  112. clocks = <&pllb>;
  113. divisor-reg = <0x304>;
  114. };
  115. clkapb: apb {
  116. #clock-cells = <0>;
  117. compatible = "via,vt8500-device-clock";
  118. clocks = <&pllb>;
  119. divisor-reg = <0x320>;
  120. };
  121. clkddr: ddr {
  122. #clock-cells = <0>;
  123. compatible = "via,vt8500-device-clock";
  124. clocks = <&plld>;
  125. divisor-reg = <0x310>;
  126. };
  127. clkuart0: uart0 {
  128. #clock-cells = <0>;
  129. compatible = "via,vt8500-device-clock";
  130. clocks = <&ref24>;
  131. enable-reg = <0x254>;
  132. enable-bit = <24>;
  133. };
  134. clkuart1: uart1 {
  135. #clock-cells = <0>;
  136. compatible = "via,vt8500-device-clock";
  137. clocks = <&ref24>;
  138. enable-reg = <0x254>;
  139. enable-bit = <25>;
  140. };
  141. clkuart2: uart2 {
  142. #clock-cells = <0>;
  143. compatible = "via,vt8500-device-clock";
  144. clocks = <&ref24>;
  145. enable-reg = <0x254>;
  146. enable-bit = <26>;
  147. };
  148. clkuart3: uart3 {
  149. #clock-cells = <0>;
  150. compatible = "via,vt8500-device-clock";
  151. clocks = <&ref24>;
  152. enable-reg = <0x254>;
  153. enable-bit = <27>;
  154. };
  155. clkuart4: uart4 {
  156. #clock-cells = <0>;
  157. compatible = "via,vt8500-device-clock";
  158. clocks = <&ref24>;
  159. enable-reg = <0x254>;
  160. enable-bit = <28>;
  161. };
  162. clkuart5: uart5 {
  163. #clock-cells = <0>;
  164. compatible = "via,vt8500-device-clock";
  165. clocks = <&ref24>;
  166. enable-reg = <0x254>;
  167. enable-bit = <29>;
  168. };
  169. clkpwm: pwm {
  170. #clock-cells = <0>;
  171. compatible = "via,vt8500-device-clock";
  172. clocks = <&pllb>;
  173. divisor-reg = <0x350>;
  174. enable-reg = <0x250>;
  175. enable-bit = <17>;
  176. };
  177. clksdhc: sdhc {
  178. #clock-cells = <0>;
  179. compatible = "via,vt8500-device-clock";
  180. clocks = <&pllb>;
  181. divisor-reg = <0x330>;
  182. divisor-mask = <0x3f>;
  183. enable-reg = <0x250>;
  184. enable-bit = <0>;
  185. };
  186. clki2c0: i2c0clk {
  187. #clock-cells = <0>;
  188. compatible = "via,vt8500-device-clock";
  189. clocks = <&pllb>;
  190. divisor-reg = <0x3A0>;
  191. enable-reg = <0x250>;
  192. enable-bit = <8>;
  193. };
  194. clki2c1: i2c1clk {
  195. #clock-cells = <0>;
  196. compatible = "via,vt8500-device-clock";
  197. clocks = <&pllb>;
  198. divisor-reg = <0x3A4>;
  199. enable-reg = <0x250>;
  200. enable-bit = <9>;
  201. };
  202. };
  203. };
  204. pwm: pwm@d8220000 {
  205. #pwm-cells = <3>;
  206. compatible = "via,vt8500-pwm";
  207. reg = <0xd8220000 0x100>;
  208. clocks = <&clkpwm>;
  209. };
  210. timer@d8130100 {
  211. compatible = "via,vt8500-timer";
  212. reg = <0xd8130100 0x28>;
  213. interrupts = <36>;
  214. };
  215. ehci@d8007900 {
  216. compatible = "via,vt8500-ehci";
  217. reg = <0xd8007900 0x200>;
  218. interrupts = <26>;
  219. };
  220. uhci@d8007b00 {
  221. compatible = "platform-uhci";
  222. reg = <0xd8007b00 0x200>;
  223. interrupts = <26>;
  224. };
  225. uhci@d8008d00 {
  226. compatible = "platform-uhci";
  227. reg = <0xd8008d00 0x200>;
  228. interrupts = <26>;
  229. };
  230. uart0: serial@d8200000 {
  231. compatible = "via,vt8500-uart";
  232. reg = <0xd8200000 0x1040>;
  233. interrupts = <32>;
  234. clocks = <&clkuart0>;
  235. status = "disabled";
  236. };
  237. uart1: serial@d82b0000 {
  238. compatible = "via,vt8500-uart";
  239. reg = <0xd82b0000 0x1040>;
  240. interrupts = <33>;
  241. clocks = <&clkuart1>;
  242. status = "disabled";
  243. };
  244. uart2: serial@d8210000 {
  245. compatible = "via,vt8500-uart";
  246. reg = <0xd8210000 0x1040>;
  247. interrupts = <47>;
  248. clocks = <&clkuart2>;
  249. status = "disabled";
  250. };
  251. uart3: serial@d82c0000 {
  252. compatible = "via,vt8500-uart";
  253. reg = <0xd82c0000 0x1040>;
  254. interrupts = <50>;
  255. clocks = <&clkuart3>;
  256. status = "disabled";
  257. };
  258. uart4: serial@d8370000 {
  259. compatible = "via,vt8500-uart";
  260. reg = <0xd8370000 0x1040>;
  261. interrupts = <30>;
  262. clocks = <&clkuart4>;
  263. status = "disabled";
  264. };
  265. uart5: serial@d8380000 {
  266. compatible = "via,vt8500-uart";
  267. reg = <0xd8380000 0x1040>;
  268. interrupts = <43>;
  269. clocks = <&clkuart5>;
  270. status = "disabled";
  271. };
  272. rtc@d8100000 {
  273. compatible = "via,vt8500-rtc";
  274. reg = <0xd8100000 0x10000>;
  275. interrupts = <48>;
  276. };
  277. sdhc@d800a000 {
  278. compatible = "wm,wm8505-sdhc";
  279. reg = <0xd800a000 0x1000>;
  280. interrupts = <20 21>;
  281. clocks = <&clksdhc>;
  282. bus-width = <4>;
  283. sdon-inverted;
  284. };
  285. i2c_0: i2c@d8280000 {
  286. compatible = "wm,wm8505-i2c";
  287. reg = <0xd8280000 0x1000>;
  288. interrupts = <19>;
  289. clocks = <&clki2c0>;
  290. clock-frequency = <400000>;
  291. };
  292. i2c_1: i2c@d8320000 {
  293. compatible = "wm,wm8505-i2c";
  294. reg = <0xd8320000 0x1000>;
  295. interrupts = <18>;
  296. clocks = <&clki2c1>;
  297. clock-frequency = <400000>;
  298. };
  299. };
  300. };