imx23.dtsi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526
  1. /*
  2. * Copyright 2012 Freescale Semiconductor, Inc.
  3. *
  4. * The code contained herein is licensed under the GNU General Public
  5. * License. You may obtain a copy of the GNU General Public License
  6. * Version 2 or later at the following locations:
  7. *
  8. * http://www.opensource.org/licenses/gpl-license.html
  9. * http://www.gnu.org/copyleft/gpl.html
  10. */
  11. /include/ "skeleton.dtsi"
  12. / {
  13. interrupt-parent = <&icoll>;
  14. aliases {
  15. gpio0 = &gpio0;
  16. gpio1 = &gpio1;
  17. gpio2 = &gpio2;
  18. serial0 = &auart0;
  19. serial1 = &auart1;
  20. };
  21. cpus {
  22. #address-cells = <0>;
  23. #size-cells = <0>;
  24. cpu {
  25. compatible = "arm,arm926ej-s";
  26. device_type = "cpu";
  27. };
  28. };
  29. apb@80000000 {
  30. compatible = "simple-bus";
  31. #address-cells = <1>;
  32. #size-cells = <1>;
  33. reg = <0x80000000 0x80000>;
  34. ranges;
  35. apbh@80000000 {
  36. compatible = "simple-bus";
  37. #address-cells = <1>;
  38. #size-cells = <1>;
  39. reg = <0x80000000 0x40000>;
  40. ranges;
  41. icoll: interrupt-controller@80000000 {
  42. compatible = "fsl,imx23-icoll", "fsl,icoll";
  43. interrupt-controller;
  44. #interrupt-cells = <1>;
  45. reg = <0x80000000 0x2000>;
  46. };
  47. dma_apbh: dma-apbh@80004000 {
  48. compatible = "fsl,imx23-dma-apbh";
  49. reg = <0x80004000 0x2000>;
  50. interrupts = <0 14 20 0
  51. 13 13 13 13>;
  52. interrupt-names = "empty", "ssp0", "ssp1", "empty",
  53. "gpmi0", "gpmi1", "gpmi2", "gpmi3";
  54. #dma-cells = <1>;
  55. dma-channels = <8>;
  56. clocks = <&clks 15>;
  57. };
  58. ecc@80008000 {
  59. reg = <0x80008000 0x2000>;
  60. status = "disabled";
  61. };
  62. gpmi-nand@8000c000 {
  63. compatible = "fsl,imx23-gpmi-nand";
  64. #address-cells = <1>;
  65. #size-cells = <1>;
  66. reg = <0x8000c000 0x2000>, <0x8000a000 0x2000>;
  67. reg-names = "gpmi-nand", "bch";
  68. interrupts = <13>, <56>;
  69. interrupt-names = "gpmi-dma", "bch";
  70. clocks = <&clks 34>;
  71. clock-names = "gpmi_io";
  72. dmas = <&dma_apbh 4>;
  73. dma-names = "rx-tx";
  74. fsl,gpmi-dma-channel = <4>;
  75. status = "disabled";
  76. };
  77. ssp0: ssp@80010000 {
  78. reg = <0x80010000 0x2000>;
  79. interrupts = <15 14>;
  80. clocks = <&clks 33>;
  81. dmas = <&dma_apbh 1>;
  82. dma-names = "rx-tx";
  83. fsl,ssp-dma-channel = <1>;
  84. status = "disabled";
  85. };
  86. etm@80014000 {
  87. reg = <0x80014000 0x2000>;
  88. status = "disabled";
  89. };
  90. pinctrl@80018000 {
  91. #address-cells = <1>;
  92. #size-cells = <0>;
  93. compatible = "fsl,imx23-pinctrl", "simple-bus";
  94. reg = <0x80018000 0x2000>;
  95. gpio0: gpio@0 {
  96. compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
  97. interrupts = <16>;
  98. gpio-controller;
  99. #gpio-cells = <2>;
  100. interrupt-controller;
  101. #interrupt-cells = <2>;
  102. };
  103. gpio1: gpio@1 {
  104. compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
  105. interrupts = <17>;
  106. gpio-controller;
  107. #gpio-cells = <2>;
  108. interrupt-controller;
  109. #interrupt-cells = <2>;
  110. };
  111. gpio2: gpio@2 {
  112. compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
  113. interrupts = <18>;
  114. gpio-controller;
  115. #gpio-cells = <2>;
  116. interrupt-controller;
  117. #interrupt-cells = <2>;
  118. };
  119. duart_pins_a: duart@0 {
  120. reg = <0>;
  121. fsl,pinmux-ids = <
  122. 0x11a2 /* MX23_PAD_PWM0__DUART_RX */
  123. 0x11b2 /* MX23_PAD_PWM1__DUART_TX */
  124. >;
  125. fsl,drive-strength = <0>;
  126. fsl,voltage = <1>;
  127. fsl,pull-up = <0>;
  128. };
  129. auart0_pins_a: auart0@0 {
  130. reg = <0>;
  131. fsl,pinmux-ids = <
  132. 0x01c0 /* MX23_PAD_AUART1_RX__AUART1_RX */
  133. 0x01d0 /* MX23_PAD_AUART1_TX__AUART1_TX */
  134. 0x01a0 /* MX23_PAD_AUART1_CTS__AUART1_CTS */
  135. 0x01b0 /* MX23_PAD_AUART1_RTS__AUART1_RTS */
  136. >;
  137. fsl,drive-strength = <0>;
  138. fsl,voltage = <1>;
  139. fsl,pull-up = <0>;
  140. };
  141. auart0_2pins_a: auart0-2pins@0 {
  142. reg = <0>;
  143. fsl,pinmux-ids = <
  144. 0x01e2 /* MX23_PAD_I2C_SCL__AUART1_TX */
  145. 0x01f2 /* MX23_PAD_I2C_SDA__AUART1_RX */
  146. >;
  147. fsl,drive-strength = <0>;
  148. fsl,voltage = <1>;
  149. fsl,pull-up = <0>;
  150. };
  151. gpmi_pins_a: gpmi-nand@0 {
  152. reg = <0>;
  153. fsl,pinmux-ids = <
  154. 0x0000 /* MX23_PAD_GPMI_D00__GPMI_D00 */
  155. 0x0010 /* MX23_PAD_GPMI_D01__GPMI_D01 */
  156. 0x0020 /* MX23_PAD_GPMI_D02__GPMI_D02 */
  157. 0x0030 /* MX23_PAD_GPMI_D03__GPMI_D03 */
  158. 0x0040 /* MX23_PAD_GPMI_D04__GPMI_D04 */
  159. 0x0050 /* MX23_PAD_GPMI_D05__GPMI_D05 */
  160. 0x0060 /* MX23_PAD_GPMI_D06__GPMI_D06 */
  161. 0x0070 /* MX23_PAD_GPMI_D07__GPMI_D07 */
  162. 0x0100 /* MX23_PAD_GPMI_CLE__GPMI_CLE */
  163. 0x0110 /* MX23_PAD_GPMI_ALE__GPMI_ALE */
  164. 0x0130 /* MX23_PAD_GPMI_RDY0__GPMI_RDY0 */
  165. 0x0140 /* MX23_PAD_GPMI_RDY1__GPMI_RDY1 */
  166. 0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */
  167. 0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */
  168. 0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */
  169. 0x21b0 /* MX23_PAD_GPMI_CE1N__GPMI_CE1N */
  170. 0x21c0 /* MX23_PAD_GPMI_CE0N__GPMI_CE0N */
  171. >;
  172. fsl,drive-strength = <0>;
  173. fsl,voltage = <1>;
  174. fsl,pull-up = <0>;
  175. };
  176. gpmi_pins_fixup: gpmi-pins-fixup {
  177. fsl,pinmux-ids = <
  178. 0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */
  179. 0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */
  180. 0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */
  181. >;
  182. fsl,drive-strength = <2>;
  183. };
  184. mmc0_4bit_pins_a: mmc0-4bit@0 {
  185. reg = <0>;
  186. fsl,pinmux-ids = <
  187. 0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */
  188. 0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */
  189. 0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */
  190. 0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */
  191. 0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */
  192. 0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
  193. >;
  194. fsl,drive-strength = <1>;
  195. fsl,voltage = <1>;
  196. fsl,pull-up = <1>;
  197. };
  198. mmc0_8bit_pins_a: mmc0-8bit@0 {
  199. reg = <0>;
  200. fsl,pinmux-ids = <
  201. 0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */
  202. 0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */
  203. 0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */
  204. 0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */
  205. 0x0082 /* MX23_PAD_GPMI_D08__SSP1_DATA4 */
  206. 0x0092 /* MX23_PAD_GPMI_D09__SSP1_DATA5 */
  207. 0x00a2 /* MX23_PAD_GPMI_D10__SSP1_DATA6 */
  208. 0x00b2 /* MX23_PAD_GPMI_D11__SSP1_DATA7 */
  209. 0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */
  210. 0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */
  211. 0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
  212. >;
  213. fsl,drive-strength = <1>;
  214. fsl,voltage = <1>;
  215. fsl,pull-up = <1>;
  216. };
  217. mmc0_pins_fixup: mmc0-pins-fixup {
  218. fsl,pinmux-ids = <
  219. 0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */
  220. 0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */
  221. >;
  222. fsl,pull-up = <0>;
  223. };
  224. pwm2_pins_a: pwm2@0 {
  225. reg = <0>;
  226. fsl,pinmux-ids = <
  227. 0x11c0 /* MX23_PAD_PWM2__PWM2 */
  228. >;
  229. fsl,drive-strength = <0>;
  230. fsl,voltage = <1>;
  231. fsl,pull-up = <0>;
  232. };
  233. lcdif_24bit_pins_a: lcdif-24bit@0 {
  234. reg = <0>;
  235. fsl,pinmux-ids = <
  236. 0x1000 /* MX23_PAD_LCD_D00__LCD_D0 */
  237. 0x1010 /* MX23_PAD_LCD_D01__LCD_D1 */
  238. 0x1020 /* MX23_PAD_LCD_D02__LCD_D2 */
  239. 0x1030 /* MX23_PAD_LCD_D03__LCD_D3 */
  240. 0x1040 /* MX23_PAD_LCD_D04__LCD_D4 */
  241. 0x1050 /* MX23_PAD_LCD_D05__LCD_D5 */
  242. 0x1060 /* MX23_PAD_LCD_D06__LCD_D6 */
  243. 0x1070 /* MX23_PAD_LCD_D07__LCD_D7 */
  244. 0x1080 /* MX23_PAD_LCD_D08__LCD_D8 */
  245. 0x1090 /* MX23_PAD_LCD_D09__LCD_D9 */
  246. 0x10a0 /* MX23_PAD_LCD_D10__LCD_D10 */
  247. 0x10b0 /* MX23_PAD_LCD_D11__LCD_D11 */
  248. 0x10c0 /* MX23_PAD_LCD_D12__LCD_D12 */
  249. 0x10d0 /* MX23_PAD_LCD_D13__LCD_D13 */
  250. 0x10e0 /* MX23_PAD_LCD_D14__LCD_D14 */
  251. 0x10f0 /* MX23_PAD_LCD_D15__LCD_D15 */
  252. 0x1100 /* MX23_PAD_LCD_D16__LCD_D16 */
  253. 0x1110 /* MX23_PAD_LCD_D17__LCD_D17 */
  254. 0x0081 /* MX23_PAD_GPMI_D08__LCD_D18 */
  255. 0x0091 /* MX23_PAD_GPMI_D09__LCD_D19 */
  256. 0x00a1 /* MX23_PAD_GPMI_D10__LCD_D20 */
  257. 0x00b1 /* MX23_PAD_GPMI_D11__LCD_D21 */
  258. 0x00c1 /* MX23_PAD_GPMI_D12__LCD_D22 */
  259. 0x00d1 /* MX23_PAD_GPMI_D13__LCD_D23 */
  260. 0x1160 /* MX23_PAD_LCD_DOTCK__LCD_DOTCK */
  261. 0x1170 /* MX23_PAD_LCD_ENABLE__LCD_ENABLE */
  262. 0x1180 /* MX23_PAD_LCD_HSYNC__LCD_HSYNC */
  263. 0x1190 /* MX23_PAD_LCD_VSYNC__LCD_VSYNC */
  264. >;
  265. fsl,drive-strength = <0>;
  266. fsl,voltage = <1>;
  267. fsl,pull-up = <0>;
  268. };
  269. spi2_pins_a: spi2@0 {
  270. reg = <0>;
  271. fsl,pinmux-ids = <
  272. 0x0182 /* MX23_PAD_GPMI_WRN__SSP2_SCK */
  273. 0x0142 /* MX23_PAD_GPMI_RDY1__SSP2_CMD */
  274. 0x0002 /* MX23_PAD_GPMI_D00__SSP2_DATA0 */
  275. 0x0032 /* MX23_PAD_GPMI_D03__SSP2_DATA3 */
  276. >;
  277. fsl,drive-strength = <1>;
  278. fsl,voltage = <1>;
  279. fsl,pull-up = <1>;
  280. };
  281. };
  282. digctl@8001c000 {
  283. compatible = "fsl,imx23-digctl";
  284. reg = <0x8001c000 2000>;
  285. status = "disabled";
  286. };
  287. emi@80020000 {
  288. reg = <0x80020000 0x2000>;
  289. status = "disabled";
  290. };
  291. dma_apbx: dma-apbx@80024000 {
  292. compatible = "fsl,imx23-dma-apbx";
  293. reg = <0x80024000 0x2000>;
  294. interrupts = <7 5 9 26
  295. 19 0 25 23
  296. 60 58 9 0
  297. 0 0 0 0>;
  298. interrupt-names = "audio-adc", "audio-dac", "spdif-tx", "i2c",
  299. "saif0", "empty", "auart0-rx", "auart0-tx",
  300. "auart1-rx", "auart1-tx", "saif1", "empty",
  301. "empty", "empty", "empty", "empty";
  302. #dma-cells = <1>;
  303. dma-channels = <16>;
  304. clocks = <&clks 16>;
  305. };
  306. dcp@80028000 {
  307. reg = <0x80028000 0x2000>;
  308. status = "disabled";
  309. };
  310. pxp@8002a000 {
  311. reg = <0x8002a000 0x2000>;
  312. status = "disabled";
  313. };
  314. ocotp@8002c000 {
  315. compatible = "fsl,ocotp";
  316. reg = <0x8002c000 0x2000>;
  317. status = "disabled";
  318. };
  319. axi-ahb@8002e000 {
  320. reg = <0x8002e000 0x2000>;
  321. status = "disabled";
  322. };
  323. lcdif@80030000 {
  324. compatible = "fsl,imx23-lcdif";
  325. reg = <0x80030000 2000>;
  326. interrupts = <46 45>;
  327. clocks = <&clks 38>;
  328. status = "disabled";
  329. };
  330. ssp1: ssp@80034000 {
  331. reg = <0x80034000 0x2000>;
  332. interrupts = <2 20>;
  333. clocks = <&clks 33>;
  334. dmas = <&dma_apbh 2>;
  335. dma-names = "rx-tx";
  336. fsl,ssp-dma-channel = <2>;
  337. status = "disabled";
  338. };
  339. tvenc@80038000 {
  340. reg = <0x80038000 0x2000>;
  341. status = "disabled";
  342. };
  343. };
  344. apbx@80040000 {
  345. compatible = "simple-bus";
  346. #address-cells = <1>;
  347. #size-cells = <1>;
  348. reg = <0x80040000 0x40000>;
  349. ranges;
  350. clks: clkctrl@80040000 {
  351. compatible = "fsl,imx23-clkctrl", "fsl,clkctrl";
  352. reg = <0x80040000 0x2000>;
  353. #clock-cells = <1>;
  354. };
  355. saif0: saif@80042000 {
  356. reg = <0x80042000 0x2000>;
  357. dmas = <&dma_apbx 4>;
  358. dma-names = "rx-tx";
  359. status = "disabled";
  360. };
  361. power@80044000 {
  362. reg = <0x80044000 0x2000>;
  363. status = "disabled";
  364. };
  365. saif1: saif@80046000 {
  366. reg = <0x80046000 0x2000>;
  367. dmas = <&dma_apbx 10>;
  368. dma-names = "rx-tx";
  369. status = "disabled";
  370. };
  371. audio-out@80048000 {
  372. reg = <0x80048000 0x2000>;
  373. dmas = <&dma_apbx 1>;
  374. dma-names = "tx";
  375. status = "disabled";
  376. };
  377. audio-in@8004c000 {
  378. reg = <0x8004c000 0x2000>;
  379. dmas = <&dma_apbx 0>;
  380. dma-names = "rx";
  381. status = "disabled";
  382. };
  383. lradc@80050000 {
  384. compatible = "fsl,imx23-lradc";
  385. reg = <0x80050000 0x2000>;
  386. interrupts = <36 37 38 39 40 41 42 43 44>;
  387. status = "disabled";
  388. };
  389. spdif@80054000 {
  390. reg = <0x80054000 2000>;
  391. dmas = <&dma_apbx 2>;
  392. dma-names = "tx";
  393. status = "disabled";
  394. };
  395. i2c@80058000 {
  396. reg = <0x80058000 0x2000>;
  397. dmas = <&dma_apbx 3>;
  398. dma-names = "rx-tx";
  399. status = "disabled";
  400. };
  401. rtc@8005c000 {
  402. compatible = "fsl,imx23-rtc", "fsl,stmp3xxx-rtc";
  403. reg = <0x8005c000 0x2000>;
  404. interrupts = <22>;
  405. };
  406. pwm: pwm@80064000 {
  407. compatible = "fsl,imx23-pwm";
  408. reg = <0x80064000 0x2000>;
  409. clocks = <&clks 30>;
  410. #pwm-cells = <2>;
  411. fsl,pwm-number = <5>;
  412. status = "disabled";
  413. };
  414. timrot@80068000 {
  415. compatible = "fsl,imx23-timrot", "fsl,timrot";
  416. reg = <0x80068000 0x2000>;
  417. interrupts = <28 29 30 31>;
  418. clocks = <&clks 28>;
  419. };
  420. auart0: serial@8006c000 {
  421. compatible = "fsl,imx23-auart";
  422. reg = <0x8006c000 0x2000>;
  423. interrupts = <24 25 23>;
  424. clocks = <&clks 32>;
  425. dmas = <&dma_apbx 6>, <&dma_apbx 7>;
  426. dma-names = "rx", "tx";
  427. status = "disabled";
  428. };
  429. auart1: serial@8006e000 {
  430. compatible = "fsl,imx23-auart";
  431. reg = <0x8006e000 0x2000>;
  432. interrupts = <59 60 58>;
  433. clocks = <&clks 32>;
  434. dmas = <&dma_apbx 8>, <&dma_apbx 9>;
  435. dma-names = "rx", "tx";
  436. status = "disabled";
  437. };
  438. duart: serial@80070000 {
  439. compatible = "arm,pl011", "arm,primecell";
  440. reg = <0x80070000 0x2000>;
  441. interrupts = <0>;
  442. clocks = <&clks 32>, <&clks 16>;
  443. clock-names = "uart", "apb_pclk";
  444. status = "disabled";
  445. };
  446. usbphy0: usbphy@8007c000 {
  447. compatible = "fsl,imx23-usbphy";
  448. reg = <0x8007c000 0x2000>;
  449. clocks = <&clks 41>;
  450. status = "disabled";
  451. };
  452. };
  453. };
  454. ahb@80080000 {
  455. compatible = "simple-bus";
  456. #address-cells = <1>;
  457. #size-cells = <1>;
  458. reg = <0x80080000 0x80000>;
  459. ranges;
  460. usb0: usb@80080000 {
  461. compatible = "fsl,imx23-usb", "fsl,imx27-usb";
  462. reg = <0x80080000 0x40000>;
  463. interrupts = <11>;
  464. fsl,usbphy = <&usbphy0>;
  465. clocks = <&clks 40>;
  466. status = "disabled";
  467. };
  468. };
  469. };