imx6sl.dtsi 28 KB

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