imx6ul.dtsi 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954
  1. /*
  2. * Copyright 2015 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. #include <dt-bindings/clock/imx6ul-clock.h>
  9. #include <dt-bindings/gpio/gpio.h>
  10. #include <dt-bindings/input/input.h>
  11. #include <dt-bindings/interrupt-controller/arm-gic.h>
  12. #include "imx6ul-pinfunc.h"
  13. #include "skeleton.dtsi"
  14. / {
  15. aliases {
  16. ethernet0 = &fec1;
  17. ethernet1 = &fec2;
  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. i2c3 = &i2c4;
  27. mmc0 = &usdhc1;
  28. mmc1 = &usdhc2;
  29. serial0 = &uart1;
  30. serial1 = &uart2;
  31. serial2 = &uart3;
  32. serial3 = &uart4;
  33. serial4 = &uart5;
  34. serial5 = &uart6;
  35. serial6 = &uart7;
  36. serial7 = &uart8;
  37. sai1 = &sai1;
  38. sai2 = &sai2;
  39. sai3 = &sai3;
  40. spi0 = &qspi;
  41. spi1 = &ecspi1;
  42. spi2 = &ecspi2;
  43. spi3 = &ecspi3;
  44. spi4 = &ecspi4;
  45. usbphy0 = &usbphy1;
  46. usbphy1 = &usbphy2;
  47. usb0 = &usbotg1;
  48. usb1 = &usbotg2;
  49. };
  50. cpus {
  51. #address-cells = <1>;
  52. #size-cells = <0>;
  53. cpu0: cpu@0 {
  54. compatible = "arm,cortex-a7";
  55. device_type = "cpu";
  56. reg = <0>;
  57. clock-latency = <61036>; /* two CLK32 periods */
  58. operating-points = <
  59. /* kHz uV */
  60. 528000 1175000
  61. 396000 1025000
  62. 198000 950000
  63. >;
  64. fsl,soc-operating-points = <
  65. /* KHz uV */
  66. 528000 1175000
  67. 396000 1175000
  68. 198000 1175000
  69. >;
  70. clocks = <&clks IMX6UL_CLK_ARM>,
  71. <&clks IMX6UL_CLK_PLL2_BUS>,
  72. <&clks IMX6UL_CLK_PLL2_PFD2>,
  73. <&clks IMX6UL_CA7_SECONDARY_SEL>,
  74. <&clks IMX6UL_CLK_STEP>,
  75. <&clks IMX6UL_CLK_PLL1_SW>,
  76. <&clks IMX6UL_CLK_PLL1_SYS>,
  77. <&clks IMX6UL_PLL1_BYPASS>,
  78. <&clks IMX6UL_CLK_PLL1>,
  79. <&clks IMX6UL_PLL1_BYPASS_SRC>,
  80. <&clks IMX6UL_CLK_OSC>;
  81. clock-names = "arm", "pll2_bus", "pll2_pfd2_396m",
  82. "secondary_sel", "step", "pll1_sw",
  83. "pll1_sys", "pll1_bypass", "pll1",
  84. "pll1_bypass_src", "osc";
  85. arm-supply = <&reg_arm>;
  86. soc-supply = <&reg_soc>;
  87. };
  88. };
  89. intc: interrupt-controller@00a01000 {
  90. compatible = "arm,cortex-a7-gic";
  91. #interrupt-cells = <3>;
  92. interrupt-controller;
  93. reg = <0x00a01000 0x1000>,
  94. <0x00a02000 0x1000>,
  95. <0x00a04000 0x2000>,
  96. <0x00a06000 0x2000>;
  97. };
  98. ckil: clock-cli {
  99. compatible = "fixed-clock";
  100. #clock-cells = <0>;
  101. clock-frequency = <32768>;
  102. clock-output-names = "ckil";
  103. };
  104. osc: clock-osc {
  105. compatible = "fixed-clock";
  106. #clock-cells = <0>;
  107. clock-frequency = <24000000>;
  108. clock-output-names = "osc";
  109. };
  110. ipp_di0: clock-di0 {
  111. compatible = "fixed-clock";
  112. #clock-cells = <0>;
  113. clock-frequency = <0>;
  114. clock-output-names = "ipp_di0";
  115. };
  116. ipp_di1: clock-di1 {
  117. compatible = "fixed-clock";
  118. #clock-cells = <0>;
  119. clock-frequency = <0>;
  120. clock-output-names = "ipp_di1";
  121. };
  122. soc {
  123. #address-cells = <1>;
  124. #size-cells = <1>;
  125. compatible = "simple-bus";
  126. interrupt-parent = <&gpc>;
  127. ranges;
  128. pmu {
  129. compatible = "arm,cortex-a7-pmu";
  130. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  131. status = "disabled";
  132. };
  133. ocram: sram@00900000 {
  134. compatible = "mmio-sram";
  135. reg = <0x00900000 0x20000>;
  136. };
  137. dma_apbh: dma-apbh@01804000 {
  138. compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
  139. reg = <0x01804000 0x2000>;
  140. interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
  141. <0 13 IRQ_TYPE_LEVEL_HIGH>,
  142. <0 13 IRQ_TYPE_LEVEL_HIGH>,
  143. <0 13 IRQ_TYPE_LEVEL_HIGH>;
  144. interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
  145. #dma-cells = <1>;
  146. dma-channels = <4>;
  147. clocks = <&clks IMX6UL_CLK_APBHDMA>;
  148. };
  149. gpmi: gpmi-nand@01806000 {
  150. compatible = "fsl,imx6q-gpmi-nand";
  151. #address-cells = <1>;
  152. #size-cells = <1>;
  153. reg = <0x01806000 0x2000>, <0x01808000 0x2000>;
  154. reg-names = "gpmi-nand", "bch";
  155. interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
  156. interrupt-names = "bch";
  157. clocks = <&clks IMX6UL_CLK_GPMI_IO>,
  158. <&clks IMX6UL_CLK_GPMI_APB>,
  159. <&clks IMX6UL_CLK_GPMI_BCH>,
  160. <&clks IMX6UL_CLK_GPMI_BCH_APB>,
  161. <&clks IMX6UL_CLK_PER_BCH>;
  162. clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
  163. "gpmi_bch_apb", "per1_bch";
  164. dmas = <&dma_apbh 0>;
  165. dma-names = "rx-tx";
  166. status = "disabled";
  167. };
  168. aips1: aips-bus@02000000 {
  169. compatible = "fsl,aips-bus", "simple-bus";
  170. #address-cells = <1>;
  171. #size-cells = <1>;
  172. reg = <0x02000000 0x100000>;
  173. ranges;
  174. spba-bus@02000000 {
  175. compatible = "fsl,spba-bus", "simple-bus";
  176. #address-cells = <1>;
  177. #size-cells = <1>;
  178. reg = <0x02000000 0x40000>;
  179. ranges;
  180. u-boot,dm-spl;
  181. ecspi1: ecspi@02008000 {
  182. #address-cells = <1>;
  183. #size-cells = <0>;
  184. compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
  185. reg = <0x02008000 0x4000>;
  186. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  187. clocks = <&clks IMX6UL_CLK_ECSPI1>,
  188. <&clks IMX6UL_CLK_ECSPI1>;
  189. clock-names = "ipg", "per";
  190. status = "disabled";
  191. };
  192. ecspi2: ecspi@0200c000 {
  193. #address-cells = <1>;
  194. #size-cells = <0>;
  195. compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
  196. reg = <0x0200c000 0x4000>;
  197. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  198. clocks = <&clks IMX6UL_CLK_ECSPI2>,
  199. <&clks IMX6UL_CLK_ECSPI2>;
  200. clock-names = "ipg", "per";
  201. status = "disabled";
  202. };
  203. ecspi3: ecspi@02010000 {
  204. #address-cells = <1>;
  205. #size-cells = <0>;
  206. compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
  207. reg = <0x02010000 0x4000>;
  208. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  209. clocks = <&clks IMX6UL_CLK_ECSPI3>,
  210. <&clks IMX6UL_CLK_ECSPI3>;
  211. clock-names = "ipg", "per";
  212. status = "disabled";
  213. };
  214. ecspi4: ecspi@02014000 {
  215. #address-cells = <1>;
  216. #size-cells = <0>;
  217. compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
  218. reg = <0x02014000 0x4000>;
  219. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  220. clocks = <&clks IMX6UL_CLK_ECSPI4>,
  221. <&clks IMX6UL_CLK_ECSPI4>;
  222. clock-names = "ipg", "per";
  223. status = "disabled";
  224. };
  225. uart7: serial@02018000 {
  226. compatible = "fsl,imx6ul-uart",
  227. "fsl,imx6q-uart";
  228. reg = <0x02018000 0x4000>;
  229. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  230. clocks = <&clks IMX6UL_CLK_UART7_IPG>,
  231. <&clks IMX6UL_CLK_UART7_SERIAL>;
  232. clock-names = "ipg", "per";
  233. status = "disabled";
  234. };
  235. uart1: serial@02020000 {
  236. compatible = "fsl,imx6ul-uart",
  237. "fsl,imx6q-uart";
  238. reg = <0x02020000 0x4000>;
  239. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  240. clocks = <&clks IMX6UL_CLK_UART1_IPG>,
  241. <&clks IMX6UL_CLK_UART1_SERIAL>;
  242. clock-names = "ipg", "per";
  243. status = "disabled";
  244. };
  245. uart8: serial@02024000 {
  246. compatible = "fsl,imx6ul-uart",
  247. "fsl,imx6q-uart";
  248. reg = <0x02024000 0x4000>;
  249. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  250. clocks = <&clks IMX6UL_CLK_UART8_IPG>,
  251. <&clks IMX6UL_CLK_UART8_SERIAL>;
  252. clock-names = "ipg", "per";
  253. status = "disabled";
  254. };
  255. sai1: sai@02028000 {
  256. #sound-dai-cells = <0>;
  257. compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
  258. reg = <0x02028000 0x4000>;
  259. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  260. clocks = <&clks IMX6UL_CLK_SAI1_IPG>,
  261. <&clks IMX6UL_CLK_SAI1>,
  262. <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>;
  263. clock-names = "bus", "mclk1", "mclk2", "mclk3";
  264. dmas = <&sdma 35 24 0>,
  265. <&sdma 36 24 0>;
  266. dma-names = "rx", "tx";
  267. status = "disabled";
  268. };
  269. sai2: sai@0202c000 {
  270. #sound-dai-cells = <0>;
  271. compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
  272. reg = <0x0202c000 0x4000>;
  273. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  274. clocks = <&clks IMX6UL_CLK_SAI2_IPG>,
  275. <&clks IMX6UL_CLK_SAI2>,
  276. <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>;
  277. clock-names = "bus", "mclk1", "mclk2", "mclk3";
  278. dmas = <&sdma 37 24 0>,
  279. <&sdma 38 24 0>;
  280. dma-names = "rx", "tx";
  281. status = "disabled";
  282. };
  283. sai3: sai@02030000 {
  284. #sound-dai-cells = <0>;
  285. compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
  286. reg = <0x02030000 0x4000>;
  287. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  288. clocks = <&clks IMX6UL_CLK_SAI3_IPG>,
  289. <&clks IMX6UL_CLK_SAI3>,
  290. <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>;
  291. clock-names = "bus", "mclk1", "mclk2", "mclk3";
  292. dmas = <&sdma 39 24 0>,
  293. <&sdma 40 24 0>;
  294. dma-names = "rx", "tx";
  295. status = "disabled";
  296. };
  297. };
  298. tsc: tsc@02040000 {
  299. compatible = "fsl,imx6ul-tsc";
  300. reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
  301. interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
  302. <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  303. clocks = <&clks IMX6UL_CLK_IPG>,
  304. <&clks IMX6UL_CLK_ADC2>;
  305. clock-names = "tsc", "adc";
  306. status = "disabled";
  307. };
  308. pwm1: pwm@02080000 {
  309. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  310. reg = <0x02080000 0x4000>;
  311. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  312. clocks = <&clks IMX6UL_CLK_PWM1>,
  313. <&clks IMX6UL_CLK_PWM1>;
  314. clock-names = "ipg", "per";
  315. #pwm-cells = <2>;
  316. status = "disabled";
  317. };
  318. pwm2: pwm@02084000 {
  319. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  320. reg = <0x02084000 0x4000>;
  321. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  322. clocks = <&clks IMX6UL_CLK_PWM2>,
  323. <&clks IMX6UL_CLK_PWM2>;
  324. clock-names = "ipg", "per";
  325. #pwm-cells = <2>;
  326. status = "disabled";
  327. };
  328. pwm3: pwm@02088000 {
  329. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  330. reg = <0x02088000 0x4000>;
  331. interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
  332. clocks = <&clks IMX6UL_CLK_PWM3>,
  333. <&clks IMX6UL_CLK_PWM3>;
  334. clock-names = "ipg", "per";
  335. #pwm-cells = <2>;
  336. status = "disabled";
  337. };
  338. pwm4: pwm@0208c000 {
  339. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  340. reg = <0x0208c000 0x4000>;
  341. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
  342. clocks = <&clks IMX6UL_CLK_PWM4>,
  343. <&clks IMX6UL_CLK_PWM4>;
  344. clock-names = "ipg", "per";
  345. #pwm-cells = <2>;
  346. status = "disabled";
  347. };
  348. can1: flexcan@02090000 {
  349. compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
  350. reg = <0x02090000 0x4000>;
  351. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
  352. clocks = <&clks IMX6UL_CLK_CAN1_IPG>,
  353. <&clks IMX6UL_CLK_CAN1_SERIAL>;
  354. clock-names = "ipg", "per";
  355. status = "disabled";
  356. };
  357. can2: flexcan@02094000 {
  358. compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
  359. reg = <0x02094000 0x4000>;
  360. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  361. clocks = <&clks IMX6UL_CLK_CAN2_IPG>,
  362. <&clks IMX6UL_CLK_CAN2_SERIAL>;
  363. clock-names = "ipg", "per";
  364. status = "disabled";
  365. };
  366. gpt1: gpt@02098000 {
  367. compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
  368. reg = <0x02098000 0x4000>;
  369. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  370. clocks = <&clks IMX6UL_CLK_GPT1_BUS>,
  371. <&clks IMX6UL_CLK_GPT1_SERIAL>;
  372. clock-names = "ipg", "per";
  373. };
  374. gpio1: gpio@0209c000 {
  375. compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
  376. reg = <0x0209c000 0x4000>;
  377. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
  378. <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
  379. gpio-controller;
  380. #gpio-cells = <2>;
  381. interrupt-controller;
  382. #interrupt-cells = <2>;
  383. gpio-ranges = <&iomuxc 0 23 10>, <&iomuxc 10 17 6>,
  384. <&iomuxc 16 33 16>;
  385. };
  386. gpio2: gpio@020a0000 {
  387. compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
  388. reg = <0x020a0000 0x4000>;
  389. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
  390. <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
  391. gpio-controller;
  392. #gpio-cells = <2>;
  393. interrupt-controller;
  394. #interrupt-cells = <2>;
  395. gpio-ranges = <&iomuxc 0 49 16>, <&iomuxc 16 111 6>;
  396. };
  397. gpio3: gpio@020a4000 {
  398. compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
  399. reg = <0x020a4000 0x4000>;
  400. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
  401. <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  402. gpio-controller;
  403. #gpio-cells = <2>;
  404. interrupt-controller;
  405. #interrupt-cells = <2>;
  406. gpio-ranges = <&iomuxc 0 65 29>;
  407. };
  408. gpio4: gpio@020a8000 {
  409. compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
  410. reg = <0x020a8000 0x4000>;
  411. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
  412. <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  413. gpio-controller;
  414. #gpio-cells = <2>;
  415. interrupt-controller;
  416. #interrupt-cells = <2>;
  417. gpio-ranges = <&iomuxc 0 94 17>, <&iomuxc 17 117 12>;
  418. };
  419. gpio5: gpio@020ac000 {
  420. compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
  421. reg = <0x020ac000 0x4000>;
  422. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
  423. <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  424. gpio-controller;
  425. #gpio-cells = <2>;
  426. interrupt-controller;
  427. #interrupt-cells = <2>;
  428. gpio-ranges = <&iomuxc 0 7 10>, <&iomuxc 10 5 2>;
  429. };
  430. fec2: ethernet@020b4000 {
  431. compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
  432. reg = <0x020b4000 0x4000>;
  433. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
  434. <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
  435. clocks = <&clks IMX6UL_CLK_ENET>,
  436. <&clks IMX6UL_CLK_ENET_AHB>,
  437. <&clks IMX6UL_CLK_ENET_PTP>,
  438. <&clks IMX6UL_CLK_ENET2_REF_125M>,
  439. <&clks IMX6UL_CLK_ENET2_REF_125M>;
  440. clock-names = "ipg", "ahb", "ptp",
  441. "enet_clk_ref", "enet_out";
  442. fsl,num-tx-queues=<1>;
  443. fsl,num-rx-queues=<1>;
  444. status = "disabled";
  445. };
  446. kpp: kpp@020b8000 {
  447. compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp";
  448. reg = <0x020b8000 0x4000>;
  449. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  450. clocks = <&clks IMX6UL_CLK_KPP>;
  451. status = "disabled";
  452. };
  453. wdog1: wdog@020bc000 {
  454. compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
  455. reg = <0x020bc000 0x4000>;
  456. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  457. clocks = <&clks IMX6UL_CLK_WDOG1>;
  458. };
  459. wdog2: wdog@020c0000 {
  460. compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
  461. reg = <0x020c0000 0x4000>;
  462. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  463. clocks = <&clks IMX6UL_CLK_WDOG2>;
  464. status = "disabled";
  465. };
  466. clks: ccm@020c4000 {
  467. compatible = "fsl,imx6ul-ccm";
  468. reg = <0x020c4000 0x4000>;
  469. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  470. <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
  471. #clock-cells = <1>;
  472. clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>;
  473. clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
  474. };
  475. anatop: anatop@020c8000 {
  476. compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop",
  477. "syscon", "simple-bus";
  478. reg = <0x020c8000 0x1000>;
  479. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
  480. <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
  481. <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
  482. reg_3p0: regulator-3p0 {
  483. compatible = "fsl,anatop-regulator";
  484. regulator-name = "vdd3p0";
  485. regulator-min-microvolt = <2625000>;
  486. regulator-max-microvolt = <3400000>;
  487. anatop-reg-offset = <0x120>;
  488. anatop-vol-bit-shift = <8>;
  489. anatop-vol-bit-width = <5>;
  490. anatop-min-bit-val = <0>;
  491. anatop-min-voltage = <2625000>;
  492. anatop-max-voltage = <3400000>;
  493. anatop-enable-bit = <0>;
  494. };
  495. reg_arm: regulator-vddcore {
  496. compatible = "fsl,anatop-regulator";
  497. regulator-name = "cpu";
  498. regulator-min-microvolt = <725000>;
  499. regulator-max-microvolt = <1450000>;
  500. regulator-always-on;
  501. anatop-reg-offset = <0x140>;
  502. anatop-vol-bit-shift = <0>;
  503. anatop-vol-bit-width = <5>;
  504. anatop-delay-reg-offset = <0x170>;
  505. anatop-delay-bit-shift = <24>;
  506. anatop-delay-bit-width = <2>;
  507. anatop-min-bit-val = <1>;
  508. anatop-min-voltage = <725000>;
  509. anatop-max-voltage = <1450000>;
  510. };
  511. reg_soc: regulator-vddsoc {
  512. compatible = "fsl,anatop-regulator";
  513. regulator-name = "vddsoc";
  514. regulator-min-microvolt = <725000>;
  515. regulator-max-microvolt = <1450000>;
  516. regulator-always-on;
  517. anatop-reg-offset = <0x140>;
  518. anatop-vol-bit-shift = <18>;
  519. anatop-vol-bit-width = <5>;
  520. anatop-delay-reg-offset = <0x170>;
  521. anatop-delay-bit-shift = <28>;
  522. anatop-delay-bit-width = <2>;
  523. anatop-min-bit-val = <1>;
  524. anatop-min-voltage = <725000>;
  525. anatop-max-voltage = <1450000>;
  526. };
  527. };
  528. usbphy1: usbphy@020c9000 {
  529. compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
  530. reg = <0x020c9000 0x1000>;
  531. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  532. clocks = <&clks IMX6UL_CLK_USBPHY1>;
  533. phy-3p0-supply = <&reg_3p0>;
  534. fsl,anatop = <&anatop>;
  535. };
  536. usbphy2: usbphy@020ca000 {
  537. compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
  538. reg = <0x020ca000 0x1000>;
  539. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  540. clocks = <&clks IMX6UL_CLK_USBPHY2>;
  541. phy-3p0-supply = <&reg_3p0>;
  542. fsl,anatop = <&anatop>;
  543. };
  544. snvs: snvs@020cc000 {
  545. compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
  546. reg = <0x020cc000 0x4000>;
  547. snvs_rtc: snvs-rtc-lp {
  548. compatible = "fsl,sec-v4.0-mon-rtc-lp";
  549. regmap = <&snvs>;
  550. offset = <0x34>;
  551. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
  552. <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  553. };
  554. snvs_poweroff: snvs-poweroff {
  555. compatible = "syscon-poweroff";
  556. regmap = <&snvs>;
  557. offset = <0x38>;
  558. mask = <0x60>;
  559. status = "disabled";
  560. };
  561. snvs_pwrkey: snvs-powerkey {
  562. compatible = "fsl,sec-v4.0-pwrkey";
  563. regmap = <&snvs>;
  564. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  565. linux,keycode = <KEY_POWER>;
  566. wakeup-source;
  567. };
  568. };
  569. epit1: epit@020d0000 {
  570. reg = <0x020d0000 0x4000>;
  571. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  572. };
  573. epit2: epit@020d4000 {
  574. reg = <0x020d4000 0x4000>;
  575. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  576. };
  577. src: src@020d8000 {
  578. compatible = "fsl,imx6ul-src", "fsl,imx51-src";
  579. reg = <0x020d8000 0x4000>;
  580. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
  581. <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  582. #reset-cells = <1>;
  583. };
  584. gpc: gpc@020dc000 {
  585. compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc";
  586. reg = <0x020dc000 0x4000>;
  587. interrupt-controller;
  588. #interrupt-cells = <3>;
  589. interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  590. interrupt-parent = <&intc>;
  591. };
  592. iomuxc: iomuxc@020e0000 {
  593. compatible = "fsl,imx6ul-iomuxc";
  594. reg = <0x020e0000 0x4000>;
  595. };
  596. gpr: iomuxc-gpr@020e4000 {
  597. compatible = "fsl,imx6ul-iomuxc-gpr",
  598. "fsl,imx6q-iomuxc-gpr", "syscon";
  599. reg = <0x020e4000 0x4000>;
  600. };
  601. gpt2: gpt@020e8000 {
  602. compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
  603. reg = <0x020e8000 0x4000>;
  604. interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
  605. clocks = <&clks IMX6UL_CLK_GPT2_BUS>,
  606. <&clks IMX6UL_CLK_GPT2_SERIAL>;
  607. clock-names = "ipg", "per";
  608. };
  609. sdma: sdma@020ec000 {
  610. compatible = "fsl,imx6ul-sdma", "fsl,imx6q-sdma",
  611. "fsl,imx35-sdma";
  612. reg = <0x020ec000 0x4000>;
  613. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  614. clocks = <&clks IMX6UL_CLK_SDMA>,
  615. <&clks IMX6UL_CLK_SDMA>;
  616. clock-names = "ipg", "ahb";
  617. #dma-cells = <3>;
  618. fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
  619. };
  620. pwm5: pwm@020f0000 {
  621. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  622. reg = <0x020f0000 0x4000>;
  623. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  624. clocks = <&clks IMX6UL_CLK_PWM5>,
  625. <&clks IMX6UL_CLK_PWM5>;
  626. clock-names = "ipg", "per";
  627. #pwm-cells = <2>;
  628. status = "disabled";
  629. };
  630. pwm6: pwm@020f4000 {
  631. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  632. reg = <0x020f4000 0x4000>;
  633. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  634. clocks = <&clks IMX6UL_CLK_PWM6>,
  635. <&clks IMX6UL_CLK_PWM6>;
  636. clock-names = "ipg", "per";
  637. #pwm-cells = <2>;
  638. status = "disabled";
  639. };
  640. pwm7: pwm@020f8000 {
  641. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  642. reg = <0x020f8000 0x4000>;
  643. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  644. clocks = <&clks IMX6UL_CLK_PWM7>,
  645. <&clks IMX6UL_CLK_PWM7>;
  646. clock-names = "ipg", "per";
  647. #pwm-cells = <2>;
  648. status = "disabled";
  649. };
  650. pwm8: pwm@020fc000 {
  651. compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
  652. reg = <0x020fc000 0x4000>;
  653. interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
  654. clocks = <&clks IMX6UL_CLK_PWM8>,
  655. <&clks IMX6UL_CLK_PWM8>;
  656. clock-names = "ipg", "per";
  657. #pwm-cells = <2>;
  658. status = "disabled";
  659. };
  660. };
  661. aips2: aips-bus@02100000 {
  662. compatible = "fsl,aips-bus", "simple-bus";
  663. #address-cells = <1>;
  664. #size-cells = <1>;
  665. reg = <0x02100000 0x100000>;
  666. ranges;
  667. usbotg1: usb@02184000 {
  668. compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
  669. reg = <0x02184000 0x200>;
  670. interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
  671. clocks = <&clks IMX6UL_CLK_USBOH3>;
  672. fsl,usbphy = <&usbphy1>;
  673. fsl,usbmisc = <&usbmisc 0>;
  674. fsl,anatop = <&anatop>;
  675. ahb-burst-config = <0x0>;
  676. tx-burst-size-dword = <0x10>;
  677. rx-burst-size-dword = <0x10>;
  678. status = "disabled";
  679. };
  680. usbotg2: usb@02184200 {
  681. compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
  682. reg = <0x02184200 0x200>;
  683. interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  684. clocks = <&clks IMX6UL_CLK_USBOH3>;
  685. fsl,usbphy = <&usbphy2>;
  686. fsl,usbmisc = <&usbmisc 1>;
  687. ahb-burst-config = <0x0>;
  688. tx-burst-size-dword = <0x10>;
  689. rx-burst-size-dword = <0x10>;
  690. status = "disabled";
  691. };
  692. usbmisc: usbmisc@02184800 {
  693. #index-cells = <1>;
  694. compatible = "fsl,imx6ul-usbmisc", "fsl,imx6q-usbmisc";
  695. reg = <0x02184800 0x200>;
  696. };
  697. fec1: ethernet@02188000 {
  698. compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
  699. reg = <0x02188000 0x4000>;
  700. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  701. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  702. clocks = <&clks IMX6UL_CLK_ENET>,
  703. <&clks IMX6UL_CLK_ENET_AHB>,
  704. <&clks IMX6UL_CLK_ENET_PTP>,
  705. <&clks IMX6UL_CLK_ENET_REF>,
  706. <&clks IMX6UL_CLK_ENET_REF>;
  707. clock-names = "ipg", "ahb", "ptp",
  708. "enet_clk_ref", "enet_out";
  709. fsl,num-tx-queues=<1>;
  710. fsl,num-rx-queues=<1>;
  711. status = "disabled";
  712. };
  713. usdhc1: usdhc@02190000 {
  714. compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
  715. reg = <0x02190000 0x4000>;
  716. interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
  717. clocks = <&clks IMX6UL_CLK_USDHC1>,
  718. <&clks IMX6UL_CLK_USDHC1>,
  719. <&clks IMX6UL_CLK_USDHC1>;
  720. clock-names = "ipg", "ahb", "per";
  721. bus-width = <4>;
  722. status = "disabled";
  723. };
  724. usdhc2: usdhc@02194000 {
  725. compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
  726. reg = <0x02194000 0x4000>;
  727. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  728. clocks = <&clks IMX6UL_CLK_USDHC2>,
  729. <&clks IMX6UL_CLK_USDHC2>,
  730. <&clks IMX6UL_CLK_USDHC2>;
  731. clock-names = "ipg", "ahb", "per";
  732. bus-width = <4>;
  733. status = "disabled";
  734. };
  735. adc1: adc@02198000 {
  736. compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
  737. reg = <0x02198000 0x4000>;
  738. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  739. clocks = <&clks IMX6UL_CLK_ADC1>;
  740. num-channels = <2>;
  741. clock-names = "adc";
  742. fsl,adck-max-frequency = <30000000>, <40000000>,
  743. <20000000>;
  744. status = "disabled";
  745. };
  746. i2c1: i2c@021a0000 {
  747. #address-cells = <1>;
  748. #size-cells = <0>;
  749. compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
  750. reg = <0x021a0000 0x4000>;
  751. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  752. clocks = <&clks IMX6UL_CLK_I2C1>;
  753. status = "disabled";
  754. };
  755. i2c2: i2c@021a4000 {
  756. #address-cells = <1>;
  757. #size-cells = <0>;
  758. compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
  759. reg = <0x021a4000 0x4000>;
  760. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  761. clocks = <&clks IMX6UL_CLK_I2C2>;
  762. status = "disabled";
  763. };
  764. i2c3: i2c@021a8000 {
  765. #address-cells = <1>;
  766. #size-cells = <0>;
  767. compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
  768. reg = <0x021a8000 0x4000>;
  769. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  770. clocks = <&clks IMX6UL_CLK_I2C3>;
  771. status = "disabled";
  772. };
  773. mmdc: mmdc@021b0000 {
  774. compatible = "fsl,imx6ul-mmdc", "fsl,imx6q-mmdc";
  775. reg = <0x021b0000 0x4000>;
  776. };
  777. lcdif: lcdif@021c8000 {
  778. compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif";
  779. reg = <0x021c8000 0x4000>;
  780. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  781. clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
  782. <&clks IMX6UL_CLK_LCDIF_APB>,
  783. <&clks IMX6UL_CLK_DUMMY>;
  784. clock-names = "pix", "axi", "disp_axi";
  785. status = "disabled";
  786. };
  787. qspi: qspi@021e0000 {
  788. #address-cells = <1>;
  789. #size-cells = <0>;
  790. compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
  791. reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>;
  792. reg-names = "QuadSPI", "QuadSPI-memory";
  793. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  794. clocks = <&clks IMX6UL_CLK_QSPI>,
  795. <&clks IMX6UL_CLK_QSPI>;
  796. clock-names = "qspi_en", "qspi";
  797. status = "disabled";
  798. };
  799. wdog3: wdog@021e4000 {
  800. compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
  801. reg = <0x021e4000 0x4000>;
  802. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  803. clocks = <&clks IMX6UL_CLK_WDOG3>;
  804. status = "disabled";
  805. };
  806. uart2: serial@021e8000 {
  807. compatible = "fsl,imx6ul-uart",
  808. "fsl,imx6q-uart";
  809. reg = <0x021e8000 0x4000>;
  810. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  811. clocks = <&clks IMX6UL_CLK_UART2_IPG>,
  812. <&clks IMX6UL_CLK_UART2_SERIAL>;
  813. clock-names = "ipg", "per";
  814. status = "disabled";
  815. };
  816. uart3: serial@021ec000 {
  817. compatible = "fsl,imx6ul-uart",
  818. "fsl,imx6q-uart";
  819. reg = <0x021ec000 0x4000>;
  820. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  821. clocks = <&clks IMX6UL_CLK_UART3_IPG>,
  822. <&clks IMX6UL_CLK_UART3_SERIAL>;
  823. clock-names = "ipg", "per";
  824. status = "disabled";
  825. };
  826. uart4: serial@021f0000 {
  827. compatible = "fsl,imx6ul-uart",
  828. "fsl,imx6q-uart";
  829. reg = <0x021f0000 0x4000>;
  830. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  831. clocks = <&clks IMX6UL_CLK_UART4_IPG>,
  832. <&clks IMX6UL_CLK_UART4_SERIAL>;
  833. clock-names = "ipg", "per";
  834. status = "disabled";
  835. };
  836. uart5: serial@021f4000 {
  837. compatible = "fsl,imx6ul-uart",
  838. "fsl,imx6q-uart";
  839. reg = <0x021f4000 0x4000>;
  840. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  841. clocks = <&clks IMX6UL_CLK_UART5_IPG>,
  842. <&clks IMX6UL_CLK_UART5_SERIAL>;
  843. clock-names = "ipg", "per";
  844. status = "disabled";
  845. };
  846. i2c4: i2c@021f8000 {
  847. #address-cells = <1>;
  848. #size-cells = <0>;
  849. compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
  850. reg = <0x021f8000 0x4000>;
  851. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  852. clocks = <&clks IMX6UL_CLK_I2C4>;
  853. status = "disabled";
  854. };
  855. uart6: serial@021fc000 {
  856. compatible = "fsl,imx6ul-uart",
  857. "fsl,imx6q-uart";
  858. reg = <0x021fc000 0x4000>;
  859. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  860. clocks = <&clks IMX6UL_CLK_UART6_IPG>,
  861. <&clks IMX6UL_CLK_UART6_SERIAL>;
  862. clock-names = "ipg", "per";
  863. status = "disabled";
  864. };
  865. };
  866. };
  867. };