imx50.dtsi 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489
  1. /*
  2. * Copyright 2013 Greg Ungerer <gerg@uclinux.org>
  3. * Copyright 2011 Freescale Semiconductor, Inc.
  4. * Copyright 2011 Linaro Ltd.
  5. *
  6. * The code contained herein is licensed under the GNU General Public
  7. * License. You may obtain a copy of the GNU General Public License
  8. * Version 2 or later at the following locations:
  9. *
  10. * http://www.opensource.org/licenses/gpl-license.html
  11. * http://www.gnu.org/copyleft/gpl.html
  12. */
  13. #include "skeleton.dtsi"
  14. #include "imx50-pinfunc.h"
  15. #include <dt-bindings/clock/imx5-clock.h>
  16. / {
  17. aliases {
  18. ethernet0 = &fec;
  19. gpio0 = &gpio1;
  20. gpio1 = &gpio2;
  21. gpio2 = &gpio3;
  22. gpio3 = &gpio4;
  23. gpio4 = &gpio5;
  24. gpio5 = &gpio6;
  25. serial0 = &uart1;
  26. serial1 = &uart2;
  27. serial2 = &uart3;
  28. serial3 = &uart4;
  29. serial4 = &uart5;
  30. };
  31. cpus {
  32. #address-cells = <1>;
  33. #size-cells = <0>;
  34. cpu@0 {
  35. device_type = "cpu";
  36. compatible = "arm,cortex-a8";
  37. reg = <0x0>;
  38. };
  39. };
  40. tzic: tz-interrupt-controller@0fffc000 {
  41. compatible = "fsl,imx50-tzic", "fsl,imx53-tzic", "fsl,tzic";
  42. interrupt-controller;
  43. #interrupt-cells = <1>;
  44. reg = <0x0fffc000 0x4000>;
  45. };
  46. clocks {
  47. #address-cells = <1>;
  48. #size-cells = <0>;
  49. ckil {
  50. compatible = "fsl,imx-ckil", "fixed-clock";
  51. #clock-cells = <0>;
  52. clock-frequency = <32768>;
  53. };
  54. ckih1 {
  55. compatible = "fsl,imx-ckih1", "fixed-clock";
  56. #clock-cells = <0>;
  57. clock-frequency = <22579200>;
  58. };
  59. ckih2 {
  60. compatible = "fsl,imx-ckih2", "fixed-clock";
  61. #clock-cells = <0>;
  62. clock-frequency = <0>;
  63. };
  64. osc {
  65. compatible = "fsl,imx-osc", "fixed-clock";
  66. #clock-cells = <0>;
  67. clock-frequency = <24000000>;
  68. };
  69. };
  70. soc {
  71. #address-cells = <1>;
  72. #size-cells = <1>;
  73. compatible = "simple-bus";
  74. interrupt-parent = <&tzic>;
  75. ranges;
  76. aips@50000000 { /* AIPS1 */
  77. compatible = "fsl,aips-bus", "simple-bus";
  78. #address-cells = <1>;
  79. #size-cells = <1>;
  80. reg = <0x50000000 0x10000000>;
  81. ranges;
  82. spba@50000000 {
  83. compatible = "fsl,spba-bus", "simple-bus";
  84. #address-cells = <1>;
  85. #size-cells = <1>;
  86. reg = <0x50000000 0x40000>;
  87. ranges;
  88. esdhc1: esdhc@50004000 {
  89. compatible = "fsl,imx50-esdhc";
  90. reg = <0x50004000 0x4000>;
  91. interrupts = <1>;
  92. clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>,
  93. <&clks IMX5_CLK_DUMMY>,
  94. <&clks IMX5_CLK_ESDHC1_PER_GATE>;
  95. clock-names = "ipg", "ahb", "per";
  96. bus-width = <4>;
  97. status = "disabled";
  98. };
  99. esdhc2: esdhc@50008000 {
  100. compatible = "fsl,imx50-esdhc";
  101. reg = <0x50008000 0x4000>;
  102. interrupts = <2>;
  103. clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>,
  104. <&clks IMX5_CLK_DUMMY>,
  105. <&clks IMX5_CLK_ESDHC2_PER_GATE>;
  106. clock-names = "ipg", "ahb", "per";
  107. bus-width = <4>;
  108. status = "disabled";
  109. };
  110. uart3: serial@5000c000 {
  111. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  112. reg = <0x5000c000 0x4000>;
  113. interrupts = <33>;
  114. clocks = <&clks IMX5_CLK_UART3_IPG_GATE>,
  115. <&clks IMX5_CLK_UART3_PER_GATE>;
  116. clock-names = "ipg", "per";
  117. status = "disabled";
  118. };
  119. ecspi1: ecspi@50010000 {
  120. #address-cells = <1>;
  121. #size-cells = <0>;
  122. compatible = "fsl,imx50-ecspi", "fsl,imx51-ecspi";
  123. reg = <0x50010000 0x4000>;
  124. interrupts = <36>;
  125. clocks = <&clks IMX5_CLK_ECSPI1_IPG_GATE>,
  126. <&clks IMX5_CLK_ECSPI1_PER_GATE>;
  127. clock-names = "ipg", "per";
  128. status = "disabled";
  129. };
  130. ssi2: ssi@50014000 {
  131. #sound-dai-cells = <0>;
  132. compatible = "fsl,imx50-ssi",
  133. "fsl,imx51-ssi",
  134. "fsl,imx21-ssi";
  135. reg = <0x50014000 0x4000>;
  136. interrupts = <30>;
  137. clocks = <&clks IMX5_CLK_SSI2_IPG_GATE>;
  138. dmas = <&sdma 24 1 0>,
  139. <&sdma 25 1 0>;
  140. dma-names = "rx", "tx";
  141. fsl,fifo-depth = <15>;
  142. status = "disabled";
  143. };
  144. esdhc3: esdhc@50020000 {
  145. compatible = "fsl,imx50-esdhc";
  146. reg = <0x50020000 0x4000>;
  147. interrupts = <3>;
  148. clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>,
  149. <&clks IMX5_CLK_DUMMY>,
  150. <&clks IMX5_CLK_ESDHC3_PER_GATE>;
  151. clock-names = "ipg", "ahb", "per";
  152. bus-width = <4>;
  153. status = "disabled";
  154. };
  155. esdhc4: esdhc@50024000 {
  156. compatible = "fsl,imx50-esdhc";
  157. reg = <0x50024000 0x4000>;
  158. interrupts = <4>;
  159. clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>,
  160. <&clks IMX5_CLK_DUMMY>,
  161. <&clks IMX5_CLK_ESDHC4_PER_GATE>;
  162. clock-names = "ipg", "ahb", "per";
  163. bus-width = <4>;
  164. status = "disabled";
  165. };
  166. };
  167. usbotg: usb@53f80000 {
  168. compatible = "fsl,imx50-usb", "fsl,imx27-usb";
  169. reg = <0x53f80000 0x0200>;
  170. interrupts = <18>;
  171. clocks = <&clks IMX5_CLK_USB_PHY1_GATE>;
  172. status = "disabled";
  173. };
  174. usbh1: usb@53f80200 {
  175. compatible = "fsl,imx50-usb", "fsl,imx27-usb";
  176. reg = <0x53f80200 0x0200>;
  177. interrupts = <14>;
  178. clocks = <&clks IMX5_CLK_USB_PHY2_GATE>;
  179. status = "disabled";
  180. };
  181. usbh2: usb@53f80400 {
  182. compatible = "fsl,imx50-usb", "fsl,imx27-usb";
  183. reg = <0x53f80400 0x0200>;
  184. interrupts = <16>;
  185. clocks = <&clks IMX5_CLK_USBOH3_GATE>;
  186. status = "disabled";
  187. };
  188. usbh3: usb@53f80600 {
  189. compatible = "fsl,imx50-usb", "fsl,imx27-usb";
  190. reg = <0x53f80600 0x0200>;
  191. interrupts = <17>;
  192. clocks = <&clks IMX5_CLK_USBOH3_GATE>;
  193. status = "disabled";
  194. };
  195. gpio1: gpio@53f84000 {
  196. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  197. reg = <0x53f84000 0x4000>;
  198. interrupts = <50 51>;
  199. gpio-controller;
  200. #gpio-cells = <2>;
  201. interrupt-controller;
  202. #interrupt-cells = <2>;
  203. };
  204. gpio2: gpio@53f88000 {
  205. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  206. reg = <0x53f88000 0x4000>;
  207. interrupts = <52 53>;
  208. gpio-controller;
  209. #gpio-cells = <2>;
  210. interrupt-controller;
  211. #interrupt-cells = <2>;
  212. };
  213. gpio3: gpio@53f8c000 {
  214. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  215. reg = <0x53f8c000 0x4000>;
  216. interrupts = <54 55>;
  217. gpio-controller;
  218. #gpio-cells = <2>;
  219. interrupt-controller;
  220. #interrupt-cells = <2>;
  221. };
  222. gpio4: gpio@53f90000 {
  223. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  224. reg = <0x53f90000 0x4000>;
  225. interrupts = <56 57>;
  226. gpio-controller;
  227. #gpio-cells = <2>;
  228. interrupt-controller;
  229. #interrupt-cells = <2>;
  230. };
  231. wdog1: wdog@53f98000 {
  232. compatible = "fsl,imx50-wdt", "fsl,imx21-wdt";
  233. reg = <0x53f98000 0x4000>;
  234. interrupts = <58>;
  235. clocks = <&clks IMX5_CLK_DUMMY>;
  236. };
  237. gpt: timer@53fa0000 {
  238. compatible = "fsl,imx50-gpt", "fsl,imx31-gpt";
  239. reg = <0x53fa0000 0x4000>;
  240. interrupts = <39>;
  241. clocks = <&clks IMX5_CLK_GPT_IPG_GATE>,
  242. <&clks IMX5_CLK_GPT_HF_GATE>;
  243. clock-names = "ipg", "per";
  244. };
  245. iomuxc: iomuxc@53fa8000 {
  246. compatible = "fsl,imx50-iomuxc", "fsl,imx53-iomuxc";
  247. reg = <0x53fa8000 0x4000>;
  248. };
  249. gpr: iomuxc-gpr@53fa8000 {
  250. compatible = "fsl,imx50-iomuxc-gpr", "syscon";
  251. reg = <0x53fa8000 0xc>;
  252. };
  253. pwm1: pwm@53fb4000 {
  254. #pwm-cells = <2>;
  255. compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
  256. reg = <0x53fb4000 0x4000>;
  257. clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
  258. <&clks IMX5_CLK_PWM1_HF_GATE>;
  259. clock-names = "ipg", "per";
  260. interrupts = <61>;
  261. };
  262. pwm2: pwm@53fb8000 {
  263. #pwm-cells = <2>;
  264. compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
  265. reg = <0x53fb8000 0x4000>;
  266. clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
  267. <&clks IMX5_CLK_PWM2_HF_GATE>;
  268. clock-names = "ipg", "per";
  269. interrupts = <94>;
  270. };
  271. uart1: serial@53fbc000 {
  272. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  273. reg = <0x53fbc000 0x4000>;
  274. interrupts = <31>;
  275. clocks = <&clks IMX5_CLK_UART1_IPG_GATE>,
  276. <&clks IMX5_CLK_UART1_PER_GATE>;
  277. clock-names = "ipg", "per";
  278. status = "disabled";
  279. };
  280. uart2: serial@53fc0000 {
  281. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  282. reg = <0x53fc0000 0x4000>;
  283. interrupts = <32>;
  284. clocks = <&clks IMX5_CLK_UART2_IPG_GATE>,
  285. <&clks IMX5_CLK_UART2_PER_GATE>;
  286. clock-names = "ipg", "per";
  287. status = "disabled";
  288. };
  289. src: src@53fd0000 {
  290. compatible = "fsl,imx50-src", "fsl,imx51-src";
  291. reg = <0x53fd0000 0x4000>;
  292. #reset-cells = <1>;
  293. };
  294. clks: ccm@53fd4000{
  295. compatible = "fsl,imx50-ccm";
  296. reg = <0x53fd4000 0x4000>;
  297. interrupts = <0 71 0x04 0 72 0x04>;
  298. #clock-cells = <1>;
  299. };
  300. gpio5: gpio@53fdc000 {
  301. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  302. reg = <0x53fdc000 0x4000>;
  303. interrupts = <103 104>;
  304. gpio-controller;
  305. #gpio-cells = <2>;
  306. interrupt-controller;
  307. #interrupt-cells = <2>;
  308. };
  309. gpio6: gpio@53fe0000 {
  310. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  311. reg = <0x53fe0000 0x4000>;
  312. interrupts = <105 106>;
  313. gpio-controller;
  314. #gpio-cells = <2>;
  315. interrupt-controller;
  316. #interrupt-cells = <2>;
  317. };
  318. i2c3: i2c@53fec000 {
  319. #address-cells = <1>;
  320. #size-cells = <0>;
  321. compatible = "fsl,imx50-i2c", "fsl,imx21-i2c";
  322. reg = <0x53fec000 0x4000>;
  323. interrupts = <64>;
  324. clocks = <&clks IMX5_CLK_I2C3_GATE>;
  325. status = "disabled";
  326. };
  327. uart4: serial@53ff0000 {
  328. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  329. reg = <0x53ff0000 0x4000>;
  330. interrupts = <13>;
  331. clocks = <&clks IMX5_CLK_UART4_IPG_GATE>,
  332. <&clks IMX5_CLK_UART4_PER_GATE>;
  333. clock-names = "ipg", "per";
  334. status = "disabled";
  335. };
  336. };
  337. aips@60000000 { /* AIPS2 */
  338. compatible = "fsl,aips-bus", "simple-bus";
  339. #address-cells = <1>;
  340. #size-cells = <1>;
  341. reg = <0x60000000 0x10000000>;
  342. ranges;
  343. uart5: serial@63f90000 {
  344. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  345. reg = <0x63f90000 0x4000>;
  346. interrupts = <86>;
  347. clocks = <&clks IMX5_CLK_UART5_IPG_GATE>,
  348. <&clks IMX5_CLK_UART5_PER_GATE>;
  349. clock-names = "ipg", "per";
  350. status = "disabled";
  351. };
  352. owire: owire@63fa4000 {
  353. compatible = "fsl,imx50-owire", "fsl,imx21-owire";
  354. reg = <0x63fa4000 0x4000>;
  355. clocks = <&clks IMX5_CLK_OWIRE_GATE>;
  356. status = "disabled";
  357. };
  358. ecspi2: ecspi@63fac000 {
  359. #address-cells = <1>;
  360. #size-cells = <0>;
  361. compatible = "fsl,imx50-ecspi", "fsl,imx51-ecspi";
  362. reg = <0x63fac000 0x4000>;
  363. interrupts = <37>;
  364. clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>,
  365. <&clks IMX5_CLK_ECSPI2_PER_GATE>;
  366. clock-names = "ipg", "per";
  367. status = "disabled";
  368. };
  369. sdma: sdma@63fb0000 {
  370. compatible = "fsl,imx50-sdma", "fsl,imx35-sdma";
  371. reg = <0x63fb0000 0x4000>;
  372. interrupts = <6>;
  373. clocks = <&clks IMX5_CLK_SDMA_GATE>,
  374. <&clks IMX5_CLK_SDMA_GATE>;
  375. clock-names = "ipg", "ahb";
  376. fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin";
  377. };
  378. cspi: cspi@63fc0000 {
  379. #address-cells = <1>;
  380. #size-cells = <0>;
  381. compatible = "fsl,imx50-cspi", "fsl,imx35-cspi";
  382. reg = <0x63fc0000 0x4000>;
  383. interrupts = <38>;
  384. clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>,
  385. <&clks IMX5_CLK_CSPI_IPG_GATE>;
  386. clock-names = "ipg", "per";
  387. status = "disabled";
  388. };
  389. i2c2: i2c@63fc4000 {
  390. #address-cells = <1>;
  391. #size-cells = <0>;
  392. compatible = "fsl,imx50-i2c", "fsl,imx21-i2c";
  393. reg = <0x63fc4000 0x4000>;
  394. interrupts = <63>;
  395. clocks = <&clks IMX5_CLK_I2C2_GATE>;
  396. status = "disabled";
  397. };
  398. i2c1: i2c@63fc8000 {
  399. #address-cells = <1>;
  400. #size-cells = <0>;
  401. compatible = "fsl,imx50-i2c", "fsl,imx21-i2c";
  402. reg = <0x63fc8000 0x4000>;
  403. interrupts = <62>;
  404. clocks = <&clks IMX5_CLK_I2C1_GATE>;
  405. status = "disabled";
  406. };
  407. ssi1: ssi@63fcc000 {
  408. #sound-dai-cells = <0>;
  409. compatible = "fsl,imx50-ssi", "fsl,imx51-ssi",
  410. "fsl,imx21-ssi";
  411. reg = <0x63fcc000 0x4000>;
  412. interrupts = <29>;
  413. clocks = <&clks IMX5_CLK_SSI1_IPG_GATE>;
  414. dmas = <&sdma 28 0 0>,
  415. <&sdma 29 0 0>;
  416. dma-names = "rx", "tx";
  417. fsl,fifo-depth = <15>;
  418. status = "disabled";
  419. };
  420. audmux: audmux@63fd0000 {
  421. compatible = "fsl,imx50-audmux", "fsl,imx31-audmux";
  422. reg = <0x63fd0000 0x4000>;
  423. status = "disabled";
  424. };
  425. fec: ethernet@63fec000 {
  426. compatible = "fsl,imx53-fec", "fsl,imx25-fec";
  427. reg = <0x63fec000 0x4000>;
  428. interrupts = <87>;
  429. clocks = <&clks IMX5_CLK_FEC_GATE>,
  430. <&clks IMX5_CLK_FEC_GATE>,
  431. <&clks IMX5_CLK_FEC_GATE>;
  432. clock-names = "ipg", "ahb", "ptp";
  433. status = "disabled";
  434. };
  435. };
  436. };
  437. };