imx6ull-14x14-evk.dts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  1. /*
  2. * Copyright (C) 2016 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. /dts-v1/;
  9. #include <dt-bindings/input/input.h>
  10. #include "imx6ull.dtsi"
  11. / {
  12. model = "Freescale i.MX6 ULL 14x14 EVK Board";
  13. compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
  14. chosen {
  15. stdout-path = &uart1;
  16. };
  17. memory {
  18. reg = <0x80000000 0x20000000>;
  19. };
  20. backlight {
  21. compatible = "pwm-backlight";
  22. pwms = <&pwm1 0 5000000>;
  23. brightness-levels = <0 4 8 16 32 64 128 255>;
  24. default-brightness-level = <6>;
  25. status = "okay";
  26. };
  27. regulators {
  28. compatible = "simple-bus";
  29. #address-cells = <1>;
  30. #size-cells = <0>;
  31. reg_can_3v3: regulator@0 {
  32. compatible = "regulator-fixed";
  33. reg = <0>;
  34. regulator-name = "can-3v3";
  35. regulator-min-microvolt = <3300000>;
  36. regulator-max-microvolt = <3300000>;
  37. gpios = <&gpio_spi 3 GPIO_ACTIVE_LOW>;
  38. };
  39. reg_sd1_vmmc: regulator@1 {
  40. compatible = "regulator-fixed";
  41. regulator-name = "VSD_3V3";
  42. regulator-min-microvolt = <3300000>;
  43. regulator-max-microvolt = <3300000>;
  44. gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
  45. enable-active-high;
  46. };
  47. reg_gpio_dvfs: regulator-gpio {
  48. compatible = "regulator-gpio";
  49. pinctrl-names = "default";
  50. pinctrl-0 = <&pinctrl_dvfs>;
  51. regulator-min-microvolt = <1300000>;
  52. regulator-max-microvolt = <1400000>;
  53. regulator-name = "gpio_dvfs";
  54. regulator-type = "voltage";
  55. gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
  56. states = <1300000 0x1 1400000 0x0>;
  57. };
  58. };
  59. spi4 {
  60. compatible = "spi-gpio";
  61. pinctrl-names = "default";
  62. pinctrl-0 = <&pinctrl_spi4>;
  63. status = "okay";
  64. gpio-sck = <&gpio5 11 0>;
  65. gpio-mosi = <&gpio5 10 0>;
  66. cs-gpios = <&gpio5 7 0>;
  67. num-chipselects = <1>;
  68. #address-cells = <1>;
  69. #size-cells = <0>;
  70. gpio_spi: gpio_spi@0 {
  71. compatible = "fairchild,74hc595";
  72. gpio-controller;
  73. oe-gpios = <&gpio5 8 0>;
  74. #gpio-cells = <2>;
  75. reg = <0>;
  76. registers-number = <1>;
  77. registers-default = /bits/ 8 <0x57>;
  78. spi-max-frequency = <100000>;
  79. };
  80. };
  81. };
  82. &cpu0 {
  83. arm-supply = <&reg_arm>;
  84. soc-supply = <&reg_soc>;
  85. dc-supply = <&reg_gpio_dvfs>;
  86. };
  87. &clks {
  88. assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
  89. assigned-clock-rates = <786432000>;
  90. };
  91. &fec1 {
  92. pinctrl-names = "default";
  93. pinctrl-0 = <&pinctrl_enet1>;
  94. phy-mode = "rmii";
  95. phy-handle = <&ethphy0>;
  96. status = "okay";
  97. };
  98. &fec2 {
  99. pinctrl-names = "default";
  100. pinctrl-0 = <&pinctrl_enet2>;
  101. phy-mode = "rmii";
  102. phy-handle = <&ethphy1>;
  103. status = "okay";
  104. mdio {
  105. #address-cells = <1>;
  106. #size-cells = <0>;
  107. ethphy0: ethernet-phy@2 {
  108. compatible = "ethernet-phy-ieee802.3-c22";
  109. reg = <2>;
  110. };
  111. ethphy1: ethernet-phy@1 {
  112. compatible = "ethernet-phy-ieee802.3-c22";
  113. reg = <1>;
  114. };
  115. };
  116. };
  117. &gpc {
  118. fsl,cpu_pupscr_sw2iso = <0x1>;
  119. fsl,cpu_pupscr_sw = <0x0>;
  120. fsl,cpu_pdnscr_iso2sw = <0x1>;
  121. fsl,cpu_pdnscr_iso = <0x1>;
  122. fsl,ldo-bypass = <0>; /* DCDC, ldo-enable */
  123. };
  124. &i2c1 {
  125. clock-frequency = <100000>;
  126. pinctrl-names = "default";
  127. pinctrl-0 = <&pinctrl_i2c1>;
  128. status = "okay";
  129. mag3110@0e {
  130. compatible = "fsl,mag3110";
  131. reg = <0x0e>;
  132. position = <2>;
  133. };
  134. fxls8471@1e {
  135. compatible = "fsl,fxls8471";
  136. reg = <0x1e>;
  137. position = <0>;
  138. interrupt-parent = <&gpio5>;
  139. interrupts = <0 8>;
  140. };
  141. };
  142. &i2c2 {
  143. clock_frequency = <100000>;
  144. pinctrl-names = "default";
  145. pinctrl-0 = <&pinctrl_i2c2>;
  146. status = "okay";
  147. };
  148. &iomuxc {
  149. pinctrl-names = "default";
  150. pinctrl-0 = <&pinctrl_hog_1>;
  151. imx6ul-evk {
  152. pinctrl_hog_1: hoggrp-1 {
  153. fsl,pins = <
  154. MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */
  155. MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */
  156. MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */
  157. >;
  158. };
  159. pinctrl_csi1: csi1grp {
  160. fsl,pins = <
  161. MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x1b088
  162. MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0x1b088
  163. MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0x1b088
  164. MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0x1b088
  165. MX6UL_PAD_CSI_DATA00__CSI_DATA02 0x1b088
  166. MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x1b088
  167. MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x1b088
  168. MX6UL_PAD_CSI_DATA03__CSI_DATA05 0x1b088
  169. MX6UL_PAD_CSI_DATA04__CSI_DATA06 0x1b088
  170. MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x1b088
  171. MX6UL_PAD_CSI_DATA06__CSI_DATA08 0x1b088
  172. MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x1b088
  173. >;
  174. };
  175. pinctrl_enet1: enet1grp {
  176. fsl,pins = <
  177. MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
  178. MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
  179. MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
  180. MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
  181. MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
  182. MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
  183. MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
  184. MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
  185. >;
  186. };
  187. pinctrl_enet2: enet2grp {
  188. fsl,pins = <
  189. MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
  190. MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
  191. MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
  192. MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
  193. MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
  194. MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
  195. MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
  196. MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
  197. MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
  198. MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
  199. >;
  200. };
  201. pinctrl_flexcan1: flexcan1grp{
  202. fsl,pins = <
  203. MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
  204. MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
  205. >;
  206. };
  207. pinctrl_flexcan2: flexcan2grp{
  208. fsl,pins = <
  209. MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
  210. MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
  211. >;
  212. };
  213. pinctrl_i2c1: i2c1grp {
  214. fsl,pins = <
  215. MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
  216. MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
  217. >;
  218. };
  219. pinctrl_i2c2: i2c2grp {
  220. fsl,pins = <
  221. MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
  222. MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
  223. >;
  224. };
  225. pinctrl_lcdif_dat: lcdifdatgrp {
  226. fsl,pins = <
  227. MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
  228. MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
  229. MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
  230. MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
  231. MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
  232. MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
  233. MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
  234. MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
  235. MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
  236. MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
  237. MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
  238. MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
  239. MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
  240. MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
  241. MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
  242. MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
  243. MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
  244. MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
  245. MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x79
  246. MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x79
  247. MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x79
  248. MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x79
  249. MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x79
  250. MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x79
  251. >;
  252. };
  253. pinctrl_lcdif_ctrl: lcdifctrlgrp {
  254. fsl,pins = <
  255. MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79
  256. MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
  257. MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
  258. MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
  259. >;
  260. };
  261. pinctrl_pwm1: pwm1grp {
  262. fsl,pins = <
  263. MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
  264. >;
  265. };
  266. pinctrl_qspi: qspigrp {
  267. fsl,pins = <
  268. MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK 0x70a1
  269. MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70a1
  270. MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01 0x70a1
  271. MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02 0x70a1
  272. MX6UL_PAD_NAND_CLE__QSPI_A_DATA03 0x70a1
  273. MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B 0x70a1
  274. >;
  275. };
  276. pinctrl_uart1: uart1grp {
  277. fsl,pins = <
  278. MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
  279. MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
  280. >;
  281. };
  282. pinctrl_uart2: uart2grp {
  283. fsl,pins = <
  284. MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
  285. MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
  286. MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
  287. MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
  288. >;
  289. };
  290. pinctrl_uart2dte: uart2dtegrp {
  291. fsl,pins = <
  292. MX6UL_PAD_UART2_TX_DATA__UART2_DTE_RX 0x1b0b1
  293. MX6UL_PAD_UART2_RX_DATA__UART2_DTE_TX 0x1b0b1
  294. MX6UL_PAD_UART3_RX_DATA__UART2_DTE_CTS 0x1b0b1
  295. MX6UL_PAD_UART3_TX_DATA__UART2_DTE_RTS 0x1b0b1
  296. >;
  297. };
  298. pinctrl_usdhc1: usdhc1grp {
  299. fsl,pins = <
  300. MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
  301. MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10071
  302. MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
  303. MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
  304. MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
  305. MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
  306. >;
  307. };
  308. pinctrl_usdhc2: usdhc2grp {
  309. fsl,pins = <
  310. MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069
  311. MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
  312. MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
  313. MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
  314. MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
  315. MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
  316. >;
  317. };
  318. pinctrl_wdog: wdoggrp {
  319. fsl,pins = <
  320. MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY 0x30b0
  321. >;
  322. };
  323. };
  324. };
  325. &iomuxc_snvs {
  326. pinctrl-names = "default_snvs";
  327. pinctrl-0 = <&pinctrl_hog_2>;
  328. imx6ul-evk {
  329. pinctrl_hog_2: hoggrp-2 {
  330. fsl,pins = <
  331. MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x80000000
  332. >;
  333. };
  334. pinctrl_dvfs: dvfsgrp {
  335. fsl,pins = <
  336. MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x79
  337. >;
  338. };
  339. pinctrl_lcdif_reset: lcdifresetgrp {
  340. fsl,pins = <
  341. /* used for lcd reset */
  342. MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x79
  343. >;
  344. };
  345. pinctrl_spi4: spi4grp {
  346. fsl,pins = <
  347. MX6ULL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1
  348. MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1
  349. MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1
  350. MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000
  351. >;
  352. };
  353. pinctrl_sai2_hp_det_b: sai2_hp_det_grp {
  354. fsl,pins = <
  355. MX6ULL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059
  356. >;
  357. };
  358. };
  359. };
  360. &lcdif {
  361. pinctrl-names = "default";
  362. pinctrl-0 = <&pinctrl_lcdif_dat
  363. &pinctrl_lcdif_ctrl
  364. &pinctrl_lcdif_reset>;
  365. display = <&display0>;
  366. status = "okay";
  367. display0: display {
  368. bits-per-pixel = <16>;
  369. bus-width = <24>;
  370. display-timings {
  371. native-mode = <&timing0>;
  372. timing0: timing0 {
  373. clock-frequency = <9200000>;
  374. hactive = <480>;
  375. vactive = <272>;
  376. hfront-porch = <8>;
  377. hback-porch = <4>;
  378. hsync-len = <41>;
  379. vback-porch = <2>;
  380. vfront-porch = <4>;
  381. vsync-len = <10>;
  382. hsync-active = <0>;
  383. vsync-active = <0>;
  384. de-active = <1>;
  385. pixelclk-active = <0>;
  386. };
  387. };
  388. };
  389. };
  390. &pwm1 {
  391. pinctrl-names = "default";
  392. pinctrl-0 = <&pinctrl_pwm1>;
  393. status = "okay";
  394. };
  395. &qspi {
  396. pinctrl-names = "default";
  397. pinctrl-0 = <&pinctrl_qspi>;
  398. status = "okay";
  399. ddrsmp=<0>;
  400. flash0: n25q256a@0 {
  401. #address-cells = <1>;
  402. #size-cells = <1>;
  403. compatible = "micron,n25q256a";
  404. spi-max-frequency = <29000000>;
  405. spi-nor,ddr-quad-read-dummy = <6>;
  406. reg = <0>;
  407. };
  408. };
  409. &uart1 {
  410. pinctrl-names = "default";
  411. pinctrl-0 = <&pinctrl_uart1>;
  412. status = "okay";
  413. };
  414. &uart2 {
  415. pinctrl-names = "default";
  416. pinctrl-0 = <&pinctrl_uart2>;
  417. fsl,uart-has-rtscts;
  418. /* for DTE mode, add below change */
  419. /* fsl,dte-mode; */
  420. /* pinctrl-0 = <&pinctrl_uart2dte>; */
  421. status = "okay";
  422. };
  423. &usbotg1 {
  424. dr_mode = "otg";
  425. srp-disable;
  426. hnp-disable;
  427. adp-disable;
  428. status = "okay";
  429. };
  430. &usbotg2 {
  431. dr_mode = "host";
  432. disable-over-current;
  433. status = "okay";
  434. };
  435. &usbphy1 {
  436. tx-d-cal = <0x5>;
  437. };
  438. &usbphy2 {
  439. tx-d-cal = <0x5>;
  440. };
  441. &usdhc1 {
  442. pinctrl-names = "default";
  443. pinctrl-0 = <&pinctrl_usdhc1>;
  444. cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
  445. keep-power-in-suspend;
  446. enable-sdio-wakeup;
  447. vmmc-supply = <&reg_sd1_vmmc>;
  448. status = "okay";
  449. };
  450. &usdhc2 {
  451. pinctrl-names = "default";
  452. pinctrl-0 = <&pinctrl_usdhc2>;
  453. no-1-8-v;
  454. non-removable;
  455. keep-power-in-suspend;
  456. enable-sdio-wakeup;
  457. status = "okay";
  458. };
  459. &wdog1 {
  460. pinctrl-names = "default";
  461. pinctrl-0 = <&pinctrl_wdog>;
  462. fsl,wdog_b;
  463. };