wm8750.dtsi 8.3 KB

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