imx6sl.dtsi 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927
  1. /*
  2. * Copyright 2013 Freescale Semiconductor, Inc.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. *
  8. */
  9. #include <dt-bindings/interrupt-controller/irq.h>
  10. #include "imx6sl-pinfunc.h"
  11. #include <dt-bindings/clock/imx6sl-clock.h>
  12. / {
  13. #address-cells = <1>;
  14. #size-cells = <1>;
  15. /*
  16. * The decompressor and also some bootloaders rely on a
  17. * pre-existing /chosen node to be available to insert the
  18. * command line and merge other ATAGS info.
  19. * Also for U-Boot there must be a pre-existing /memory node.
  20. */
  21. chosen {};
  22. memory { device_type = "memory"; reg = <0 0>; };
  23. aliases {
  24. ethernet0 = &fec;
  25. gpio0 = &gpio1;
  26. gpio1 = &gpio2;
  27. gpio2 = &gpio3;
  28. gpio3 = &gpio4;
  29. gpio4 = &gpio5;
  30. serial0 = &uart1;
  31. serial1 = &uart2;
  32. serial2 = &uart3;
  33. serial3 = &uart4;
  34. serial4 = &uart5;
  35. spi0 = &ecspi1;
  36. spi1 = &ecspi2;
  37. spi2 = &ecspi3;
  38. spi3 = &ecspi4;
  39. usbphy0 = &usbphy1;
  40. usbphy1 = &usbphy2;
  41. };
  42. cpus {
  43. #address-cells = <1>;
  44. #size-cells = <0>;
  45. cpu@0 {
  46. compatible = "arm,cortex-a9";
  47. device_type = "cpu";
  48. reg = <0x0>;
  49. next-level-cache = <&L2>;
  50. operating-points = <
  51. /* kHz uV */
  52. 996000 1275000
  53. 792000 1175000
  54. 396000 975000
  55. >;
  56. fsl,soc-operating-points = <
  57. /* ARM kHz SOC-PU uV */
  58. 996000 1225000
  59. 792000 1175000
  60. 396000 1175000
  61. >;
  62. clock-latency = <61036>; /* two CLK32 periods */
  63. clocks = <&clks IMX6SL_CLK_ARM>, <&clks IMX6SL_CLK_PLL2_PFD2>,
  64. <&clks IMX6SL_CLK_STEP>, <&clks IMX6SL_CLK_PLL1_SW>,
  65. <&clks IMX6SL_CLK_PLL1_SYS>;
  66. clock-names = "arm", "pll2_pfd2_396m", "step",
  67. "pll1_sw", "pll1_sys";
  68. arm-supply = <&reg_arm>;
  69. pu-supply = <&reg_pu>;
  70. soc-supply = <&reg_soc>;
  71. };
  72. };
  73. intc: interrupt-controller@00a01000 {
  74. compatible = "arm,cortex-a9-gic";
  75. #interrupt-cells = <3>;
  76. interrupt-controller;
  77. reg = <0x00a01000 0x1000>,
  78. <0x00a00100 0x100>;
  79. interrupt-parent = <&intc>;
  80. };
  81. clocks {
  82. #address-cells = <1>;
  83. #size-cells = <0>;
  84. ckil {
  85. compatible = "fixed-clock";
  86. #clock-cells = <0>;
  87. clock-frequency = <32768>;
  88. };
  89. osc {
  90. compatible = "fixed-clock";
  91. #clock-cells = <0>;
  92. clock-frequency = <24000000>;
  93. };
  94. };
  95. soc {
  96. #address-cells = <1>;
  97. #size-cells = <1>;
  98. compatible = "simple-bus";
  99. interrupt-parent = <&gpc>;
  100. ranges;
  101. ocram: sram@00900000 {
  102. compatible = "mmio-sram";
  103. reg = <0x00900000 0x20000>;
  104. clocks = <&clks IMX6SL_CLK_OCRAM>;
  105. };
  106. L2: l2-cache@00a02000 {
  107. compatible = "arm,pl310-cache";
  108. reg = <0x00a02000 0x1000>;
  109. interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
  110. cache-unified;
  111. cache-level = <2>;
  112. arm,tag-latency = <4 2 3>;
  113. arm,data-latency = <4 2 3>;
  114. };
  115. pmu {
  116. compatible = "arm,cortex-a9-pmu";
  117. interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
  118. };
  119. aips1: aips-bus@02000000 {
  120. compatible = "fsl,aips-bus", "simple-bus";
  121. #address-cells = <1>;
  122. #size-cells = <1>;
  123. reg = <0x02000000 0x100000>;
  124. ranges;
  125. spba: spba-bus@02000000 {
  126. compatible = "fsl,spba-bus", "simple-bus";
  127. #address-cells = <1>;
  128. #size-cells = <1>;
  129. reg = <0x02000000 0x40000>;
  130. ranges;
  131. spdif: spdif@02004000 {
  132. compatible = "fsl,imx6sl-spdif",
  133. "fsl,imx35-spdif";
  134. reg = <0x02004000 0x4000>;
  135. interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
  136. dmas = <&sdma 14 18 0>,
  137. <&sdma 15 18 0>;
  138. dma-names = "rx", "tx";
  139. clocks = <&clks IMX6SL_CLK_SPDIF_GCLK>, <&clks IMX6SL_CLK_OSC>,
  140. <&clks IMX6SL_CLK_SPDIF>, <&clks IMX6SL_CLK_DUMMY>,
  141. <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_DUMMY>,
  142. <&clks IMX6SL_CLK_IPG>, <&clks IMX6SL_CLK_DUMMY>,
  143. <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_SPBA>;
  144. clock-names = "core", "rxtx0",
  145. "rxtx1", "rxtx2",
  146. "rxtx3", "rxtx4",
  147. "rxtx5", "rxtx6",
  148. "rxtx7", "spba";
  149. status = "disabled";
  150. };
  151. ecspi1: ecspi@02008000 {
  152. #address-cells = <1>;
  153. #size-cells = <0>;
  154. compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
  155. reg = <0x02008000 0x4000>;
  156. interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
  157. clocks = <&clks IMX6SL_CLK_ECSPI1>,
  158. <&clks IMX6SL_CLK_ECSPI1>;
  159. clock-names = "ipg", "per";
  160. status = "disabled";
  161. };
  162. ecspi2: ecspi@0200c000 {
  163. #address-cells = <1>;
  164. #size-cells = <0>;
  165. compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
  166. reg = <0x0200c000 0x4000>;
  167. interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
  168. clocks = <&clks IMX6SL_CLK_ECSPI2>,
  169. <&clks IMX6SL_CLK_ECSPI2>;
  170. clock-names = "ipg", "per";
  171. status = "disabled";
  172. };
  173. ecspi3: ecspi@02010000 {
  174. #address-cells = <1>;
  175. #size-cells = <0>;
  176. compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
  177. reg = <0x02010000 0x4000>;
  178. interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
  179. clocks = <&clks IMX6SL_CLK_ECSPI3>,
  180. <&clks IMX6SL_CLK_ECSPI3>;
  181. clock-names = "ipg", "per";
  182. status = "disabled";
  183. };
  184. ecspi4: ecspi@02014000 {
  185. #address-cells = <1>;
  186. #size-cells = <0>;
  187. compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
  188. reg = <0x02014000 0x4000>;
  189. interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
  190. clocks = <&clks IMX6SL_CLK_ECSPI4>,
  191. <&clks IMX6SL_CLK_ECSPI4>;
  192. clock-names = "ipg", "per";
  193. status = "disabled";
  194. };
  195. uart5: serial@02018000 {
  196. compatible = "fsl,imx6sl-uart",
  197. "fsl,imx6q-uart", "fsl,imx21-uart";
  198. reg = <0x02018000 0x4000>;
  199. interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
  200. clocks = <&clks IMX6SL_CLK_UART>,
  201. <&clks IMX6SL_CLK_UART_SERIAL>;
  202. clock-names = "ipg", "per";
  203. dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
  204. dma-names = "rx", "tx";
  205. status = "disabled";
  206. };
  207. uart1: serial@02020000 {
  208. compatible = "fsl,imx6sl-uart",
  209. "fsl,imx6q-uart", "fsl,imx21-uart";
  210. reg = <0x02020000 0x4000>;
  211. interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
  212. clocks = <&clks IMX6SL_CLK_UART>,
  213. <&clks IMX6SL_CLK_UART_SERIAL>;
  214. clock-names = "ipg", "per";
  215. dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
  216. dma-names = "rx", "tx";
  217. status = "disabled";
  218. };
  219. uart2: serial@02024000 {
  220. compatible = "fsl,imx6sl-uart",
  221. "fsl,imx6q-uart", "fsl,imx21-uart";
  222. reg = <0x02024000 0x4000>;
  223. interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
  224. clocks = <&clks IMX6SL_CLK_UART>,
  225. <&clks IMX6SL_CLK_UART_SERIAL>;
  226. clock-names = "ipg", "per";
  227. dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
  228. dma-names = "rx", "tx";
  229. status = "disabled";
  230. };
  231. ssi1: ssi@02028000 {
  232. #sound-dai-cells = <0>;
  233. compatible = "fsl,imx6sl-ssi",
  234. "fsl,imx51-ssi";
  235. reg = <0x02028000 0x4000>;
  236. interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
  237. clocks = <&clks IMX6SL_CLK_SSI1_IPG>,
  238. <&clks IMX6SL_CLK_SSI1>;
  239. clock-names = "ipg", "baud";
  240. dmas = <&sdma 37 1 0>,
  241. <&sdma 38 1 0>;
  242. dma-names = "rx", "tx";
  243. fsl,fifo-depth = <15>;
  244. status = "disabled";
  245. };
  246. ssi2: ssi@0202c000 {
  247. #sound-dai-cells = <0>;
  248. compatible = "fsl,imx6sl-ssi",
  249. "fsl,imx51-ssi";
  250. reg = <0x0202c000 0x4000>;
  251. interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
  252. clocks = <&clks IMX6SL_CLK_SSI2_IPG>,
  253. <&clks IMX6SL_CLK_SSI2>;
  254. clock-names = "ipg", "baud";
  255. dmas = <&sdma 41 1 0>,
  256. <&sdma 42 1 0>;
  257. dma-names = "rx", "tx";
  258. fsl,fifo-depth = <15>;
  259. status = "disabled";
  260. };
  261. ssi3: ssi@02030000 {
  262. #sound-dai-cells = <0>;
  263. compatible = "fsl,imx6sl-ssi",
  264. "fsl,imx51-ssi";
  265. reg = <0x02030000 0x4000>;
  266. interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
  267. clocks = <&clks IMX6SL_CLK_SSI3_IPG>,
  268. <&clks IMX6SL_CLK_SSI3>;
  269. clock-names = "ipg", "baud";
  270. dmas = <&sdma 45 1 0>,
  271. <&sdma 46 1 0>;
  272. dma-names = "rx", "tx";
  273. fsl,fifo-depth = <15>;
  274. status = "disabled";
  275. };
  276. uart3: serial@02034000 {
  277. compatible = "fsl,imx6sl-uart",
  278. "fsl,imx6q-uart", "fsl,imx21-uart";
  279. reg = <0x02034000 0x4000>;
  280. interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
  281. clocks = <&clks IMX6SL_CLK_UART>,
  282. <&clks IMX6SL_CLK_UART_SERIAL>;
  283. clock-names = "ipg", "per";
  284. dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
  285. dma-names = "rx", "tx";
  286. status = "disabled";
  287. };
  288. uart4: serial@02038000 {
  289. compatible = "fsl,imx6sl-uart",
  290. "fsl,imx6q-uart", "fsl,imx21-uart";
  291. reg = <0x02038000 0x4000>;
  292. interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
  293. clocks = <&clks IMX6SL_CLK_UART>,
  294. <&clks IMX6SL_CLK_UART_SERIAL>;
  295. clock-names = "ipg", "per";
  296. dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
  297. dma-names = "rx", "tx";
  298. status = "disabled";
  299. };
  300. };
  301. pwm1: pwm@02080000 {
  302. #pwm-cells = <2>;
  303. compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
  304. reg = <0x02080000 0x4000>;
  305. interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
  306. clocks = <&clks IMX6SL_CLK_PWM1>,
  307. <&clks IMX6SL_CLK_PWM1>;
  308. clock-names = "ipg", "per";
  309. };
  310. pwm2: pwm@02084000 {
  311. #pwm-cells = <2>;
  312. compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
  313. reg = <0x02084000 0x4000>;
  314. interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
  315. clocks = <&clks IMX6SL_CLK_PWM2>,
  316. <&clks IMX6SL_CLK_PWM2>;
  317. clock-names = "ipg", "per";
  318. };
  319. pwm3: pwm@02088000 {
  320. #pwm-cells = <2>;
  321. compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
  322. reg = <0x02088000 0x4000>;
  323. interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
  324. clocks = <&clks IMX6SL_CLK_PWM3>,
  325. <&clks IMX6SL_CLK_PWM3>;
  326. clock-names = "ipg", "per";
  327. };
  328. pwm4: pwm@0208c000 {
  329. #pwm-cells = <2>;
  330. compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
  331. reg = <0x0208c000 0x4000>;
  332. interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
  333. clocks = <&clks IMX6SL_CLK_PWM4>,
  334. <&clks IMX6SL_CLK_PWM4>;
  335. clock-names = "ipg", "per";
  336. };
  337. gpt: gpt@02098000 {
  338. compatible = "fsl,imx6sl-gpt";
  339. reg = <0x02098000 0x4000>;
  340. interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
  341. clocks = <&clks IMX6SL_CLK_GPT>,
  342. <&clks IMX6SL_CLK_GPT_SERIAL>;
  343. clock-names = "ipg", "per";
  344. };
  345. gpio1: gpio@0209c000 {
  346. compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
  347. reg = <0x0209c000 0x4000>;
  348. interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
  349. <0 67 IRQ_TYPE_LEVEL_HIGH>;
  350. gpio-controller;
  351. #gpio-cells = <2>;
  352. interrupt-controller;
  353. #interrupt-cells = <2>;
  354. gpio-ranges = <&iomuxc 0 22 1>, <&iomuxc 1 20 2>,
  355. <&iomuxc 3 23 1>, <&iomuxc 4 25 1>,
  356. <&iomuxc 5 24 1>, <&iomuxc 6 19 1>,
  357. <&iomuxc 7 36 2>, <&iomuxc 9 44 8>,
  358. <&iomuxc 17 38 6>, <&iomuxc 23 68 4>,
  359. <&iomuxc 27 64 4>, <&iomuxc 31 52 1>;
  360. };
  361. gpio2: gpio@020a0000 {
  362. compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
  363. reg = <0x020a0000 0x4000>;
  364. interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
  365. <0 69 IRQ_TYPE_LEVEL_HIGH>;
  366. gpio-controller;
  367. #gpio-cells = <2>;
  368. interrupt-controller;
  369. #interrupt-cells = <2>;
  370. gpio-ranges = <&iomuxc 0 53 3>, <&iomuxc 3 72 2>,
  371. <&iomuxc 5 34 2>, <&iomuxc 7 57 4>,
  372. <&iomuxc 11 56 1>, <&iomuxc 12 61 3>,
  373. <&iomuxc 15 107 1>, <&iomuxc 16 132 2>,
  374. <&iomuxc 18 135 1>, <&iomuxc 19 134 1>,
  375. <&iomuxc 20 108 2>, <&iomuxc 22 120 1>,
  376. <&iomuxc 23 125 7>, <&iomuxc 30 110 2>;
  377. };
  378. gpio3: gpio@020a4000 {
  379. compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
  380. reg = <0x020a4000 0x4000>;
  381. interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
  382. <0 71 IRQ_TYPE_LEVEL_HIGH>;
  383. gpio-controller;
  384. #gpio-cells = <2>;
  385. interrupt-controller;
  386. #interrupt-cells = <2>;
  387. gpio-ranges = <&iomuxc 0 112 8>, <&iomuxc 8 121 4>,
  388. <&iomuxc 12 97 4>, <&iomuxc 16 166 3>,
  389. <&iomuxc 19 85 2>, <&iomuxc 21 137 2>,
  390. <&iomuxc 23 136 1>, <&iomuxc 24 91 1>,
  391. <&iomuxc 25 99 1>, <&iomuxc 26 92 1>,
  392. <&iomuxc 27 100 1>, <&iomuxc 28 93 1>,
  393. <&iomuxc 29 101 1>, <&iomuxc 30 94 1>,
  394. <&iomuxc 31 102 1>;
  395. };
  396. gpio4: gpio@020a8000 {
  397. compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
  398. reg = <0x020a8000 0x4000>;
  399. interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
  400. <0 73 IRQ_TYPE_LEVEL_HIGH>;
  401. gpio-controller;
  402. #gpio-cells = <2>;
  403. interrupt-controller;
  404. #interrupt-cells = <2>;
  405. gpio-ranges = <&iomuxc 0 95 1>, <&iomuxc 1 103 1>,
  406. <&iomuxc 2 96 1>, <&iomuxc 3 104 1>,
  407. <&iomuxc 4 97 1>, <&iomuxc 5 105 1>,
  408. <&iomuxc 6 98 1>, <&iomuxc 7 106 1>,
  409. <&iomuxc 8 28 1>, <&iomuxc 9 27 1>,
  410. <&iomuxc 10 26 1>, <&iomuxc 11 29 1>,
  411. <&iomuxc 12 32 1>, <&iomuxc 13 31 1>,
  412. <&iomuxc 14 30 1>, <&iomuxc 15 33 1>,
  413. <&iomuxc 16 84 1>, <&iomuxc 17 79 2>,
  414. <&iomuxc 19 78 1>, <&iomuxc 20 76 1>,
  415. <&iomuxc 21 81 2>, <&iomuxc 23 75 1>,
  416. <&iomuxc 24 83 1>, <&iomuxc 25 74 1>,
  417. <&iomuxc 26 77 1>, <&iomuxc 27 159 1>,
  418. <&iomuxc 28 154 1>, <&iomuxc 29 157 1>,
  419. <&iomuxc 30 152 1>, <&iomuxc 31 156 1>;
  420. };
  421. gpio5: gpio@020ac000 {
  422. compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
  423. reg = <0x020ac000 0x4000>;
  424. interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
  425. <0 75 IRQ_TYPE_LEVEL_HIGH>;
  426. gpio-controller;
  427. #gpio-cells = <2>;
  428. interrupt-controller;
  429. #interrupt-cells = <2>;
  430. gpio-ranges = <&iomuxc 0 158 1>, <&iomuxc 1 151 1>,
  431. <&iomuxc 2 155 1>, <&iomuxc 3 153 1>,
  432. <&iomuxc 4 150 1>, <&iomuxc 5 149 1>,
  433. <&iomuxc 6 144 1>, <&iomuxc 7 147 1>,
  434. <&iomuxc 8 142 1>, <&iomuxc 9 146 1>,
  435. <&iomuxc 10 148 1>, <&iomuxc 11 141 1>,
  436. <&iomuxc 12 145 1>, <&iomuxc 13 143 1>,
  437. <&iomuxc 14 140 1>, <&iomuxc 15 139 1>,
  438. <&iomuxc 16 164 2>, <&iomuxc 18 160 1>,
  439. <&iomuxc 19 162 1>, <&iomuxc 20 163 1>,
  440. <&iomuxc 21 161 1>;
  441. };
  442. kpp: kpp@020b8000 {
  443. compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
  444. reg = <0x020b8000 0x4000>;
  445. interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
  446. clocks = <&clks IMX6SL_CLK_DUMMY>;
  447. status = "disabled";
  448. };
  449. wdog1: wdog@020bc000 {
  450. compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
  451. reg = <0x020bc000 0x4000>;
  452. interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
  453. clocks = <&clks IMX6SL_CLK_DUMMY>;
  454. };
  455. wdog2: wdog@020c0000 {
  456. compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
  457. reg = <0x020c0000 0x4000>;
  458. interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
  459. clocks = <&clks IMX6SL_CLK_DUMMY>;
  460. status = "disabled";
  461. };
  462. clks: ccm@020c4000 {
  463. compatible = "fsl,imx6sl-ccm";
  464. reg = <0x020c4000 0x4000>;
  465. interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
  466. <0 88 IRQ_TYPE_LEVEL_HIGH>;
  467. #clock-cells = <1>;
  468. };
  469. anatop: anatop@020c8000 {
  470. compatible = "fsl,imx6sl-anatop",
  471. "fsl,imx6q-anatop",
  472. "syscon", "simple-bus";
  473. reg = <0x020c8000 0x1000>;
  474. interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
  475. <0 54 IRQ_TYPE_LEVEL_HIGH>,
  476. <0 127 IRQ_TYPE_LEVEL_HIGH>;
  477. regulator-1p1 {
  478. compatible = "fsl,anatop-regulator";
  479. regulator-name = "vdd1p1";
  480. regulator-min-microvolt = <800000>;
  481. regulator-max-microvolt = <1375000>;
  482. regulator-always-on;
  483. anatop-reg-offset = <0x110>;
  484. anatop-vol-bit-shift = <8>;
  485. anatop-vol-bit-width = <5>;
  486. anatop-min-bit-val = <4>;
  487. anatop-min-voltage = <800000>;
  488. anatop-max-voltage = <1375000>;
  489. };
  490. regulator-3p0 {
  491. compatible = "fsl,anatop-regulator";
  492. regulator-name = "vdd3p0";
  493. regulator-min-microvolt = <2800000>;
  494. regulator-max-microvolt = <3150000>;
  495. regulator-always-on;
  496. anatop-reg-offset = <0x120>;
  497. anatop-vol-bit-shift = <8>;
  498. anatop-vol-bit-width = <5>;
  499. anatop-min-bit-val = <0>;
  500. anatop-min-voltage = <2625000>;
  501. anatop-max-voltage = <3400000>;
  502. };
  503. regulator-2p5 {
  504. compatible = "fsl,anatop-regulator";
  505. regulator-name = "vdd2p5";
  506. regulator-min-microvolt = <2100000>;
  507. regulator-max-microvolt = <2850000>;
  508. regulator-always-on;
  509. anatop-reg-offset = <0x130>;
  510. anatop-vol-bit-shift = <8>;
  511. anatop-vol-bit-width = <5>;
  512. anatop-min-bit-val = <0>;
  513. anatop-min-voltage = <2100000>;
  514. anatop-max-voltage = <2850000>;
  515. };
  516. reg_arm: regulator-vddcore {
  517. compatible = "fsl,anatop-regulator";
  518. regulator-name = "vddarm";
  519. regulator-min-microvolt = <725000>;
  520. regulator-max-microvolt = <1450000>;
  521. regulator-always-on;
  522. anatop-reg-offset = <0x140>;
  523. anatop-vol-bit-shift = <0>;
  524. anatop-vol-bit-width = <5>;
  525. anatop-delay-reg-offset = <0x170>;
  526. anatop-delay-bit-shift = <24>;
  527. anatop-delay-bit-width = <2>;
  528. anatop-min-bit-val = <1>;
  529. anatop-min-voltage = <725000>;
  530. anatop-max-voltage = <1450000>;
  531. };
  532. reg_pu: regulator-vddpu {
  533. compatible = "fsl,anatop-regulator";
  534. regulator-name = "vddpu";
  535. regulator-min-microvolt = <725000>;
  536. regulator-max-microvolt = <1450000>;
  537. regulator-always-on;
  538. anatop-reg-offset = <0x140>;
  539. anatop-vol-bit-shift = <9>;
  540. anatop-vol-bit-width = <5>;
  541. anatop-delay-reg-offset = <0x170>;
  542. anatop-delay-bit-shift = <26>;
  543. anatop-delay-bit-width = <2>;
  544. anatop-min-bit-val = <1>;
  545. anatop-min-voltage = <725000>;
  546. anatop-max-voltage = <1450000>;
  547. };
  548. reg_soc: regulator-vddsoc {
  549. compatible = "fsl,anatop-regulator";
  550. regulator-name = "vddsoc";
  551. regulator-min-microvolt = <725000>;
  552. regulator-max-microvolt = <1450000>;
  553. regulator-always-on;
  554. anatop-reg-offset = <0x140>;
  555. anatop-vol-bit-shift = <18>;
  556. anatop-vol-bit-width = <5>;
  557. anatop-delay-reg-offset = <0x170>;
  558. anatop-delay-bit-shift = <28>;
  559. anatop-delay-bit-width = <2>;
  560. anatop-min-bit-val = <1>;
  561. anatop-min-voltage = <725000>;
  562. anatop-max-voltage = <1450000>;
  563. };
  564. };
  565. tempmon: tempmon {
  566. compatible = "fsl,imx6q-tempmon";
  567. interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
  568. fsl,tempmon = <&anatop>;
  569. fsl,tempmon-data = <&ocotp>;
  570. clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
  571. };
  572. usbphy1: usbphy@020c9000 {
  573. compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
  574. reg = <0x020c9000 0x1000>;
  575. interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
  576. clocks = <&clks IMX6SL_CLK_USBPHY1>;
  577. fsl,anatop = <&anatop>;
  578. };
  579. usbphy2: usbphy@020ca000 {
  580. compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
  581. reg = <0x020ca000 0x1000>;
  582. interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
  583. clocks = <&clks IMX6SL_CLK_USBPHY2>;
  584. fsl,anatop = <&anatop>;
  585. };
  586. snvs: snvs@020cc000 {
  587. compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
  588. reg = <0x020cc000 0x4000>;
  589. snvs_rtc: snvs-rtc-lp {
  590. compatible = "fsl,sec-v4.0-mon-rtc-lp";
  591. regmap = <&snvs>;
  592. offset = <0x34>;
  593. interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
  594. <0 20 IRQ_TYPE_LEVEL_HIGH>;
  595. };
  596. snvs_poweroff: snvs-poweroff {
  597. compatible = "syscon-poweroff";
  598. regmap = <&snvs>;
  599. offset = <0x38>;
  600. mask = <0x60>;
  601. status = "disabled";
  602. };
  603. };
  604. epit1: epit@020d0000 {
  605. reg = <0x020d0000 0x4000>;
  606. interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
  607. };
  608. epit2: epit@020d4000 {
  609. reg = <0x020d4000 0x4000>;
  610. interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
  611. };
  612. src: src@020d8000 {
  613. compatible = "fsl,imx6sl-src", "fsl,imx51-src";
  614. reg = <0x020d8000 0x4000>;
  615. interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
  616. <0 96 IRQ_TYPE_LEVEL_HIGH>;
  617. #reset-cells = <1>;
  618. };
  619. gpc: gpc@020dc000 {
  620. compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
  621. reg = <0x020dc000 0x4000>;
  622. interrupt-controller;
  623. #interrupt-cells = <3>;
  624. interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
  625. interrupt-parent = <&intc>;
  626. pu-supply = <&reg_pu>;
  627. clocks = <&clks IMX6SL_CLK_GPU2D_OVG>,
  628. <&clks IMX6SL_CLK_GPU2D_PODF>;
  629. #power-domain-cells = <1>;
  630. };
  631. gpr: iomuxc-gpr@020e0000 {
  632. compatible = "fsl,imx6sl-iomuxc-gpr",
  633. "fsl,imx6q-iomuxc-gpr", "syscon";
  634. reg = <0x020e0000 0x38>;
  635. };
  636. iomuxc: iomuxc@020e0000 {
  637. compatible = "fsl,imx6sl-iomuxc";
  638. reg = <0x020e0000 0x4000>;
  639. };
  640. csi: csi@020e4000 {
  641. reg = <0x020e4000 0x4000>;
  642. interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
  643. };
  644. spdc: spdc@020e8000 {
  645. reg = <0x020e8000 0x4000>;
  646. interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
  647. };
  648. sdma: sdma@020ec000 {
  649. compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma";
  650. reg = <0x020ec000 0x4000>;
  651. interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
  652. clocks = <&clks IMX6SL_CLK_SDMA>,
  653. <&clks IMX6SL_CLK_SDMA>;
  654. clock-names = "ipg", "ahb";
  655. #dma-cells = <3>;
  656. /* imx6sl reuses imx6q sdma firmware */
  657. fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
  658. };
  659. pxp: pxp@020f0000 {
  660. reg = <0x020f0000 0x4000>;
  661. interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
  662. };
  663. epdc: epdc@020f4000 {
  664. reg = <0x020f4000 0x4000>;
  665. interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
  666. };
  667. lcdif: lcdif@020f8000 {
  668. compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
  669. reg = <0x020f8000 0x4000>;
  670. interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
  671. clocks = <&clks IMX6SL_CLK_LCDIF_PIX>,
  672. <&clks IMX6SL_CLK_LCDIF_AXI>,
  673. <&clks IMX6SL_CLK_DUMMY>;
  674. clock-names = "pix", "axi", "disp_axi";
  675. status = "disabled";
  676. };
  677. dcp: dcp@020fc000 {
  678. compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
  679. reg = <0x020fc000 0x4000>;
  680. interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
  681. <0 100 IRQ_TYPE_LEVEL_HIGH>,
  682. <0 101 IRQ_TYPE_LEVEL_HIGH>;
  683. };
  684. };
  685. aips2: aips-bus@02100000 {
  686. compatible = "fsl,aips-bus", "simple-bus";
  687. #address-cells = <1>;
  688. #size-cells = <1>;
  689. reg = <0x02100000 0x100000>;
  690. ranges;
  691. usbotg1: usb@02184000 {
  692. compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
  693. reg = <0x02184000 0x200>;
  694. interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
  695. clocks = <&clks IMX6SL_CLK_USBOH3>;
  696. fsl,usbphy = <&usbphy1>;
  697. fsl,usbmisc = <&usbmisc 0>;
  698. ahb-burst-config = <0x0>;
  699. tx-burst-size-dword = <0x10>;
  700. rx-burst-size-dword = <0x10>;
  701. status = "disabled";
  702. };
  703. usbotg2: usb@02184200 {
  704. compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
  705. reg = <0x02184200 0x200>;
  706. interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
  707. clocks = <&clks IMX6SL_CLK_USBOH3>;
  708. fsl,usbphy = <&usbphy2>;
  709. fsl,usbmisc = <&usbmisc 1>;
  710. ahb-burst-config = <0x0>;
  711. tx-burst-size-dword = <0x10>;
  712. rx-burst-size-dword = <0x10>;
  713. status = "disabled";
  714. };
  715. usbh: usb@02184400 {
  716. compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
  717. reg = <0x02184400 0x200>;
  718. interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
  719. clocks = <&clks IMX6SL_CLK_USBOH3>;
  720. fsl,usbmisc = <&usbmisc 2>;
  721. dr_mode = "host";
  722. ahb-burst-config = <0x0>;
  723. tx-burst-size-dword = <0x10>;
  724. rx-burst-size-dword = <0x10>;
  725. status = "disabled";
  726. };
  727. usbmisc: usbmisc@02184800 {
  728. #index-cells = <1>;
  729. compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
  730. reg = <0x02184800 0x200>;
  731. clocks = <&clks IMX6SL_CLK_USBOH3>;
  732. };
  733. fec: ethernet@02188000 {
  734. compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
  735. reg = <0x02188000 0x4000>;
  736. interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
  737. clocks = <&clks IMX6SL_CLK_ENET>,
  738. <&clks IMX6SL_CLK_ENET_REF>;
  739. clock-names = "ipg", "ahb";
  740. status = "disabled";
  741. };
  742. usdhc1: usdhc@02190000 {
  743. compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
  744. reg = <0x02190000 0x4000>;
  745. interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
  746. clocks = <&clks IMX6SL_CLK_USDHC1>,
  747. <&clks IMX6SL_CLK_USDHC1>,
  748. <&clks IMX6SL_CLK_USDHC1>;
  749. clock-names = "ipg", "ahb", "per";
  750. bus-width = <4>;
  751. status = "disabled";
  752. };
  753. usdhc2: usdhc@02194000 {
  754. compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
  755. reg = <0x02194000 0x4000>;
  756. interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
  757. clocks = <&clks IMX6SL_CLK_USDHC2>,
  758. <&clks IMX6SL_CLK_USDHC2>,
  759. <&clks IMX6SL_CLK_USDHC2>;
  760. clock-names = "ipg", "ahb", "per";
  761. bus-width = <4>;
  762. status = "disabled";
  763. };
  764. usdhc3: usdhc@02198000 {
  765. compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
  766. reg = <0x02198000 0x4000>;
  767. interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
  768. clocks = <&clks IMX6SL_CLK_USDHC3>,
  769. <&clks IMX6SL_CLK_USDHC3>,
  770. <&clks IMX6SL_CLK_USDHC3>;
  771. clock-names = "ipg", "ahb", "per";
  772. bus-width = <4>;
  773. status = "disabled";
  774. };
  775. usdhc4: usdhc@0219c000 {
  776. compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
  777. reg = <0x0219c000 0x4000>;
  778. interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
  779. clocks = <&clks IMX6SL_CLK_USDHC4>,
  780. <&clks IMX6SL_CLK_USDHC4>,
  781. <&clks IMX6SL_CLK_USDHC4>;
  782. clock-names = "ipg", "ahb", "per";
  783. bus-width = <4>;
  784. status = "disabled";
  785. };
  786. i2c1: i2c@021a0000 {
  787. #address-cells = <1>;
  788. #size-cells = <0>;
  789. compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
  790. reg = <0x021a0000 0x4000>;
  791. interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
  792. clocks = <&clks IMX6SL_CLK_I2C1>;
  793. status = "disabled";
  794. };
  795. i2c2: i2c@021a4000 {
  796. #address-cells = <1>;
  797. #size-cells = <0>;
  798. compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
  799. reg = <0x021a4000 0x4000>;
  800. interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
  801. clocks = <&clks IMX6SL_CLK_I2C2>;
  802. status = "disabled";
  803. };
  804. i2c3: i2c@021a8000 {
  805. #address-cells = <1>;
  806. #size-cells = <0>;
  807. compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
  808. reg = <0x021a8000 0x4000>;
  809. interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
  810. clocks = <&clks IMX6SL_CLK_I2C3>;
  811. status = "disabled";
  812. };
  813. mmdc: mmdc@021b0000 {
  814. compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
  815. reg = <0x021b0000 0x4000>;
  816. };
  817. rngb: rngb@021b4000 {
  818. reg = <0x021b4000 0x4000>;
  819. interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
  820. };
  821. weim: weim@021b8000 {
  822. #address-cells = <2>;
  823. #size-cells = <1>;
  824. reg = <0x021b8000 0x4000>;
  825. interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
  826. fsl,weim-cs-gpr = <&gpr>;
  827. status = "disabled";
  828. };
  829. ocotp: ocotp@021bc000 {
  830. compatible = "fsl,imx6sl-ocotp", "syscon";
  831. reg = <0x021bc000 0x4000>;
  832. clocks = <&clks IMX6SL_CLK_OCOTP>;
  833. };
  834. audmux: audmux@021d8000 {
  835. compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
  836. reg = <0x021d8000 0x4000>;
  837. status = "disabled";
  838. };
  839. };
  840. };
  841. };