imx50.dtsi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503
  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. dr_mode = "host";
  180. status = "disabled";
  181. };
  182. usbh2: usb@53f80400 {
  183. compatible = "fsl,imx50-usb", "fsl,imx27-usb";
  184. reg = <0x53f80400 0x0200>;
  185. interrupts = <16>;
  186. clocks = <&clks IMX5_CLK_USBOH3_GATE>;
  187. dr_mode = "host";
  188. status = "disabled";
  189. };
  190. usbh3: usb@53f80600 {
  191. compatible = "fsl,imx50-usb", "fsl,imx27-usb";
  192. reg = <0x53f80600 0x0200>;
  193. interrupts = <17>;
  194. clocks = <&clks IMX5_CLK_USBOH3_GATE>;
  195. dr_mode = "host";
  196. status = "disabled";
  197. };
  198. gpio1: gpio@53f84000 {
  199. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  200. reg = <0x53f84000 0x4000>;
  201. interrupts = <50 51>;
  202. gpio-controller;
  203. #gpio-cells = <2>;
  204. interrupt-controller;
  205. #interrupt-cells = <2>;
  206. gpio-ranges = <&iomuxc 0 151 28>;
  207. };
  208. gpio2: gpio@53f88000 {
  209. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  210. reg = <0x53f88000 0x4000>;
  211. interrupts = <52 53>;
  212. gpio-controller;
  213. #gpio-cells = <2>;
  214. interrupt-controller;
  215. #interrupt-cells = <2>;
  216. gpio-ranges = <&iomuxc 0 75 8>, <&iomuxc 8 100 8>,
  217. <&iomuxc 16 83 1>, <&iomuxc 17 85 1>,
  218. <&iomuxc 18 87 1>, <&iomuxc 19 84 1>,
  219. <&iomuxc 20 88 1>, <&iomuxc 21 86 1>;
  220. };
  221. gpio3: gpio@53f8c000 {
  222. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  223. reg = <0x53f8c000 0x4000>;
  224. interrupts = <54 55>;
  225. gpio-controller;
  226. #gpio-cells = <2>;
  227. interrupt-controller;
  228. #interrupt-cells = <2>;
  229. gpio-ranges = <&iomuxc 0 108 32>;
  230. };
  231. gpio4: gpio@53f90000 {
  232. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  233. reg = <0x53f90000 0x4000>;
  234. interrupts = <56 57>;
  235. gpio-controller;
  236. #gpio-cells = <2>;
  237. interrupt-controller;
  238. #interrupt-cells = <2>;
  239. gpio-ranges = <&iomuxc 0 8 8>, <&iomuxc 8 45 12>,
  240. <&iomuxc 20 140 11>;
  241. };
  242. wdog1: wdog@53f98000 {
  243. compatible = "fsl,imx50-wdt", "fsl,imx21-wdt";
  244. reg = <0x53f98000 0x4000>;
  245. interrupts = <58>;
  246. clocks = <&clks IMX5_CLK_DUMMY>;
  247. };
  248. gpt: timer@53fa0000 {
  249. compatible = "fsl,imx50-gpt", "fsl,imx31-gpt";
  250. reg = <0x53fa0000 0x4000>;
  251. interrupts = <39>;
  252. clocks = <&clks IMX5_CLK_GPT_IPG_GATE>,
  253. <&clks IMX5_CLK_GPT_HF_GATE>;
  254. clock-names = "ipg", "per";
  255. };
  256. iomuxc: iomuxc@53fa8000 {
  257. compatible = "fsl,imx50-iomuxc", "fsl,imx53-iomuxc";
  258. reg = <0x53fa8000 0x4000>;
  259. };
  260. gpr: iomuxc-gpr@53fa8000 {
  261. compatible = "fsl,imx50-iomuxc-gpr", "syscon";
  262. reg = <0x53fa8000 0xc>;
  263. };
  264. pwm1: pwm@53fb4000 {
  265. #pwm-cells = <2>;
  266. compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
  267. reg = <0x53fb4000 0x4000>;
  268. clocks = <&clks IMX5_CLK_PWM1_IPG_GATE>,
  269. <&clks IMX5_CLK_PWM1_HF_GATE>;
  270. clock-names = "ipg", "per";
  271. interrupts = <61>;
  272. };
  273. pwm2: pwm@53fb8000 {
  274. #pwm-cells = <2>;
  275. compatible = "fsl,imx50-pwm", "fsl,imx27-pwm";
  276. reg = <0x53fb8000 0x4000>;
  277. clocks = <&clks IMX5_CLK_PWM2_IPG_GATE>,
  278. <&clks IMX5_CLK_PWM2_HF_GATE>;
  279. clock-names = "ipg", "per";
  280. interrupts = <94>;
  281. };
  282. uart1: serial@53fbc000 {
  283. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  284. reg = <0x53fbc000 0x4000>;
  285. interrupts = <31>;
  286. clocks = <&clks IMX5_CLK_UART1_IPG_GATE>,
  287. <&clks IMX5_CLK_UART1_PER_GATE>;
  288. clock-names = "ipg", "per";
  289. status = "disabled";
  290. };
  291. uart2: serial@53fc0000 {
  292. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  293. reg = <0x53fc0000 0x4000>;
  294. interrupts = <32>;
  295. clocks = <&clks IMX5_CLK_UART2_IPG_GATE>,
  296. <&clks IMX5_CLK_UART2_PER_GATE>;
  297. clock-names = "ipg", "per";
  298. status = "disabled";
  299. };
  300. src: src@53fd0000 {
  301. compatible = "fsl,imx50-src", "fsl,imx51-src";
  302. reg = <0x53fd0000 0x4000>;
  303. #reset-cells = <1>;
  304. };
  305. clks: ccm@53fd4000{
  306. compatible = "fsl,imx50-ccm";
  307. reg = <0x53fd4000 0x4000>;
  308. interrupts = <0 71 0x04 0 72 0x04>;
  309. #clock-cells = <1>;
  310. };
  311. gpio5: gpio@53fdc000 {
  312. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  313. reg = <0x53fdc000 0x4000>;
  314. interrupts = <103 104>;
  315. gpio-controller;
  316. #gpio-cells = <2>;
  317. interrupt-controller;
  318. #interrupt-cells = <2>;
  319. gpio-ranges = <&iomuxc 0 57 18>, <&iomuxc 18 89 11>;
  320. };
  321. gpio6: gpio@53fe0000 {
  322. compatible = "fsl,imx50-gpio", "fsl,imx35-gpio";
  323. reg = <0x53fe0000 0x4000>;
  324. interrupts = <105 106>;
  325. gpio-controller;
  326. #gpio-cells = <2>;
  327. interrupt-controller;
  328. #interrupt-cells = <2>;
  329. gpio-ranges = <&iomuxc 0 27 18>, <&iomuxc 18 16 11>;
  330. };
  331. i2c3: i2c@53fec000 {
  332. #address-cells = <1>;
  333. #size-cells = <0>;
  334. compatible = "fsl,imx50-i2c", "fsl,imx21-i2c";
  335. reg = <0x53fec000 0x4000>;
  336. interrupts = <64>;
  337. clocks = <&clks IMX5_CLK_I2C3_GATE>;
  338. status = "disabled";
  339. };
  340. uart4: serial@53ff0000 {
  341. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  342. reg = <0x53ff0000 0x4000>;
  343. interrupts = <13>;
  344. clocks = <&clks IMX5_CLK_UART4_IPG_GATE>,
  345. <&clks IMX5_CLK_UART4_PER_GATE>;
  346. clock-names = "ipg", "per";
  347. status = "disabled";
  348. };
  349. };
  350. aips@60000000 { /* AIPS2 */
  351. compatible = "fsl,aips-bus", "simple-bus";
  352. #address-cells = <1>;
  353. #size-cells = <1>;
  354. reg = <0x60000000 0x10000000>;
  355. ranges;
  356. uart5: serial@63f90000 {
  357. compatible = "fsl,imx50-uart", "fsl,imx21-uart";
  358. reg = <0x63f90000 0x4000>;
  359. interrupts = <86>;
  360. clocks = <&clks IMX5_CLK_UART5_IPG_GATE>,
  361. <&clks IMX5_CLK_UART5_PER_GATE>;
  362. clock-names = "ipg", "per";
  363. status = "disabled";
  364. };
  365. owire: owire@63fa4000 {
  366. compatible = "fsl,imx50-owire", "fsl,imx21-owire";
  367. reg = <0x63fa4000 0x4000>;
  368. clocks = <&clks IMX5_CLK_OWIRE_GATE>;
  369. status = "disabled";
  370. };
  371. ecspi2: ecspi@63fac000 {
  372. #address-cells = <1>;
  373. #size-cells = <0>;
  374. compatible = "fsl,imx50-ecspi", "fsl,imx51-ecspi";
  375. reg = <0x63fac000 0x4000>;
  376. interrupts = <37>;
  377. clocks = <&clks IMX5_CLK_ECSPI2_IPG_GATE>,
  378. <&clks IMX5_CLK_ECSPI2_PER_GATE>;
  379. clock-names = "ipg", "per";
  380. status = "disabled";
  381. };
  382. sdma: sdma@63fb0000 {
  383. compatible = "fsl,imx50-sdma", "fsl,imx35-sdma";
  384. reg = <0x63fb0000 0x4000>;
  385. interrupts = <6>;
  386. clocks = <&clks IMX5_CLK_SDMA_GATE>,
  387. <&clks IMX5_CLK_SDMA_GATE>;
  388. clock-names = "ipg", "ahb";
  389. fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
  390. };
  391. cspi: cspi@63fc0000 {
  392. #address-cells = <1>;
  393. #size-cells = <0>;
  394. compatible = "fsl,imx50-cspi", "fsl,imx35-cspi";
  395. reg = <0x63fc0000 0x4000>;
  396. interrupts = <38>;
  397. clocks = <&clks IMX5_CLK_CSPI_IPG_GATE>,
  398. <&clks IMX5_CLK_CSPI_IPG_GATE>;
  399. clock-names = "ipg", "per";
  400. status = "disabled";
  401. };
  402. i2c2: i2c@63fc4000 {
  403. #address-cells = <1>;
  404. #size-cells = <0>;
  405. compatible = "fsl,imx50-i2c", "fsl,imx21-i2c";
  406. reg = <0x63fc4000 0x4000>;
  407. interrupts = <63>;
  408. clocks = <&clks IMX5_CLK_I2C2_GATE>;
  409. status = "disabled";
  410. };
  411. i2c1: i2c@63fc8000 {
  412. #address-cells = <1>;
  413. #size-cells = <0>;
  414. compatible = "fsl,imx50-i2c", "fsl,imx21-i2c";
  415. reg = <0x63fc8000 0x4000>;
  416. interrupts = <62>;
  417. clocks = <&clks IMX5_CLK_I2C1_GATE>;
  418. status = "disabled";
  419. };
  420. ssi1: ssi@63fcc000 {
  421. #sound-dai-cells = <0>;
  422. compatible = "fsl,imx50-ssi", "fsl,imx51-ssi",
  423. "fsl,imx21-ssi";
  424. reg = <0x63fcc000 0x4000>;
  425. interrupts = <29>;
  426. clocks = <&clks IMX5_CLK_SSI1_IPG_GATE>;
  427. dmas = <&sdma 28 0 0>,
  428. <&sdma 29 0 0>;
  429. dma-names = "rx", "tx";
  430. fsl,fifo-depth = <15>;
  431. status = "disabled";
  432. };
  433. audmux: audmux@63fd0000 {
  434. compatible = "fsl,imx50-audmux", "fsl,imx31-audmux";
  435. reg = <0x63fd0000 0x4000>;
  436. status = "disabled";
  437. };
  438. fec: ethernet@63fec000 {
  439. compatible = "fsl,imx53-fec", "fsl,imx25-fec";
  440. reg = <0x63fec000 0x4000>;
  441. interrupts = <87>;
  442. clocks = <&clks IMX5_CLK_FEC_GATE>,
  443. <&clks IMX5_CLK_FEC_GATE>,
  444. <&clks IMX5_CLK_FEC_GATE>;
  445. clock-names = "ipg", "ahb", "ptp";
  446. status = "disabled";
  447. };
  448. };
  449. };
  450. };