imx6qdl-tx6.dtsi 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792
  1. /*
  2. * Copyright 2014-2017 Lothar Waßmann <[email protected]>
  3. *
  4. * This file is dual-licensed: you can use it either under the terms
  5. * of the GPL or the X11 license, at your option. Note that this dual
  6. * licensing only applies to this file, and not this project as a
  7. * whole.
  8. *
  9. * a) This file is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License
  11. * version 2 as published by the Free Software Foundation.
  12. *
  13. * This file is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * Or, alternatively,
  19. *
  20. * b) Permission is hereby granted, free of charge, to any person
  21. * obtaining a copy of this software and associated documentation
  22. * files (the "Software"), to deal in the Software without
  23. * restriction, including without limitation the rights to use,
  24. * copy, modify, merge, publish, distribute, sublicense, and/or
  25. * sell copies of the Software, and to permit persons to whom the
  26. * Software is furnished to do so, subject to the following
  27. * conditions:
  28. *
  29. * The above copyright notice and this permission notice shall be
  30. * included in all copies or substantial portions of the Software.
  31. *
  32. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  33. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  34. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  35. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  36. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  37. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  38. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  39. * OTHER DEALINGS IN THE SOFTWARE.
  40. */
  41. #include <dt-bindings/gpio/gpio.h>
  42. #include <dt-bindings/input/input.h>
  43. #include <dt-bindings/interrupt-controller/irq.h>
  44. #include <dt-bindings/pwm/pwm.h>
  45. #include <dt-bindings/sound/fsl-imx-audmux.h>
  46. / {
  47. aliases {
  48. can0 = &can2;
  49. can1 = &can1;
  50. ethernet0 = &fec;
  51. lcdif-23bit-pins-a = &pinctrl_disp0_1;
  52. lcdif-24bit-pins-a = &pinctrl_disp0_2;
  53. pwm0 = &pwm1;
  54. pwm1 = &pwm2;
  55. reg-can-xcvr = &reg_can_xcvr;
  56. stk5led = &user_led;
  57. usbotg = &usbotg;
  58. sdhc0 = &usdhc1;
  59. sdhc1 = &usdhc2;
  60. };
  61. memory@10000000 {
  62. device_type = "memory";
  63. reg = <0x10000000 0>; /* will be filled by U-Boot */
  64. };
  65. clocks {
  66. #address-cells = <1>;
  67. #size-cells = <0>;
  68. mclk: clock@0 {
  69. compatible = "fixed-clock";
  70. reg = <0>;
  71. #clock-cells = <0>;
  72. clock-frequency = <26000000>;
  73. };
  74. };
  75. gpio-keys {
  76. compatible = "gpio-keys";
  77. power {
  78. label = "Power Button";
  79. gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
  80. linux,code = <KEY_POWER>;
  81. wakeup-source;
  82. };
  83. };
  84. leds {
  85. compatible = "gpio-leds";
  86. user_led: led-user {
  87. label = "Heartbeat";
  88. pinctrl-names = "default";
  89. pinctrl-0 = <&pinctrl_user_led>;
  90. gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
  91. linux,default-trigger = "heartbeat";
  92. };
  93. };
  94. reg_3v3_etn: regulator-3v3-etn {
  95. compatible = "regulator-fixed";
  96. regulator-name = "3V3_ETN";
  97. regulator-min-microvolt = <3300000>;
  98. regulator-max-microvolt = <3300000>;
  99. pinctrl-names = "default";
  100. pinctrl-0 = <&pinctrl_etnphy_power>;
  101. gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
  102. enable-active-high;
  103. };
  104. reg_2v5: regulator-2v5 {
  105. compatible = "regulator-fixed";
  106. regulator-name = "2V5";
  107. regulator-min-microvolt = <2500000>;
  108. regulator-max-microvolt = <2500000>;
  109. regulator-always-on;
  110. };
  111. reg_3v3: regulator-3v3 {
  112. compatible = "regulator-fixed";
  113. regulator-name = "3V3";
  114. regulator-min-microvolt = <3300000>;
  115. regulator-max-microvolt = <3300000>;
  116. regulator-always-on;
  117. };
  118. reg_can_xcvr: regulator-can-xcvr {
  119. compatible = "regulator-fixed";
  120. regulator-name = "CAN XCVR";
  121. regulator-min-microvolt = <3300000>;
  122. regulator-max-microvolt = <3300000>;
  123. pinctrl-names = "default";
  124. pinctrl-0 = <&pinctrl_flexcan_xcvr>;
  125. gpio = <&gpio4 21 GPIO_ACTIVE_LOW>;
  126. };
  127. reg_lcd0_pwr: regulator-lcd0-pwr {
  128. compatible = "regulator-fixed";
  129. regulator-name = "LCD0 POWER";
  130. regulator-min-microvolt = <3300000>;
  131. regulator-max-microvolt = <3300000>;
  132. pinctrl-names = "default";
  133. pinctrl-0 = <&pinctrl_lcd0_pwr>;
  134. gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
  135. enable-active-high;
  136. status = "disabled";
  137. };
  138. reg_lcd1_pwr: regulator-lcd1-pwr {
  139. compatible = "regulator-fixed";
  140. regulator-name = "LCD1 POWER";
  141. regulator-min-microvolt = <3300000>;
  142. regulator-max-microvolt = <3300000>;
  143. pinctrl-names = "default";
  144. pinctrl-0 = <&pinctrl_lcd1_pwr>;
  145. gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
  146. enable-active-high;
  147. status = "disabled";
  148. };
  149. reg_usbh1_vbus: regulator-usbh1-vbus {
  150. compatible = "regulator-fixed";
  151. regulator-name = "usbh1_vbus";
  152. regulator-min-microvolt = <5000000>;
  153. regulator-max-microvolt = <5000000>;
  154. pinctrl-names = "default";
  155. pinctrl-0 = <&pinctrl_usbh1_vbus>;
  156. gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
  157. enable-active-high;
  158. };
  159. reg_usbotg_vbus: regulator-usbotg-vbus {
  160. compatible = "regulator-fixed";
  161. regulator-name = "usbotg_vbus";
  162. regulator-min-microvolt = <5000000>;
  163. regulator-max-microvolt = <5000000>;
  164. pinctrl-names = "default";
  165. pinctrl-0 = <&pinctrl_usbotg_vbus>;
  166. gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
  167. enable-active-high;
  168. };
  169. sound {
  170. compatible = "karo,imx6qdl-tx6-sgtl5000",
  171. "simple-audio-card";
  172. simple-audio-card,name = "imx6qdl-tx6-sgtl5000-audio";
  173. pinctrl-names = "default";
  174. pinctrl-0 = <&pinctrl_audmux>;
  175. simple-audio-card,format = "i2s";
  176. simple-audio-card,bitclock-master = <&codec_dai>;
  177. simple-audio-card,frame-master = <&codec_dai>;
  178. simple-audio-card,widgets =
  179. "Microphone", "Mic Jack",
  180. "Line", "Line In",
  181. "Line", "Line Out",
  182. "Headphone", "Headphone Jack";
  183. simple-audio-card,routing =
  184. "MIC_IN", "Mic Jack",
  185. "Mic Jack", "Mic Bias",
  186. "Headphone Jack", "HP_OUT";
  187. cpu_dai: simple-audio-card,cpu {
  188. sound-dai = <&ssi1>;
  189. };
  190. codec_dai: simple-audio-card,codec {
  191. sound-dai = <&sgtl5000>;
  192. };
  193. };
  194. };
  195. &audmux {
  196. status = "okay";
  197. ssi1 {
  198. fsl,audmux-port = <0>;
  199. fsl,port-config = <
  200. (IMX_AUDMUX_V2_PTCR_SYN |
  201. IMX_AUDMUX_V2_PTCR_TFSEL(4) |
  202. IMX_AUDMUX_V2_PTCR_TCSEL(4) |
  203. IMX_AUDMUX_V2_PTCR_TFSDIR |
  204. IMX_AUDMUX_V2_PTCR_TCLKDIR)
  205. IMX_AUDMUX_V2_PDCR_RXDSEL(4)
  206. >;
  207. };
  208. pins5 {
  209. fsl,audmux-port = <4>;
  210. fsl,port-config = <
  211. IMX_AUDMUX_V2_PTCR_SYN
  212. IMX_AUDMUX_V2_PDCR_RXDSEL(0)
  213. >;
  214. };
  215. };
  216. &can1 {
  217. pinctrl-names = "default";
  218. pinctrl-0 = <&pinctrl_flexcan1>;
  219. xceiver-supply = <&reg_can_xcvr>;
  220. status = "okay";
  221. };
  222. &can2 {
  223. pinctrl-names = "default";
  224. pinctrl-0 = <&pinctrl_flexcan2>;
  225. xceiver-supply = <&reg_can_xcvr>;
  226. status = "okay";
  227. };
  228. &ecspi1 {
  229. pinctrl-names = "default";
  230. pinctrl-0 = <&pinctrl_ecspi1>;
  231. cs-gpios = <
  232. &gpio2 30 GPIO_ACTIVE_HIGH
  233. &gpio3 19 GPIO_ACTIVE_HIGH
  234. >;
  235. status = "disabled";
  236. };
  237. &fec {
  238. pinctrl-names = "default";
  239. pinctrl-0 = <&pinctrl_enet &pinctrl_enet_mdio &pinctrl_etnphy_rst>;
  240. phy-mode = "rmii";
  241. phy-reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
  242. phy-reset-post-delay = <10>;
  243. phy-handle = <&etnphy>;
  244. phy-supply = <&reg_3v3_etn>;
  245. status = "okay";
  246. mdio {
  247. #address-cells = <1>;
  248. #size-cells = <0>;
  249. etnphy: ethernet-phy@0 {
  250. compatible = "ethernet-phy-ieee802.3-c22";
  251. reg = <0>;
  252. pinctrl-names = "default";
  253. pinctrl-0 = <&pinctrl_etnphy_int>;
  254. interrupt-parent = <&gpio7>;
  255. interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
  256. };
  257. };
  258. };
  259. &gpmi {
  260. pinctrl-names = "default";
  261. pinctrl-0 = <&pinctrl_gpmi_nand>;
  262. nand-on-flash-bbt;
  263. fsl,no-blockmark-swap;
  264. status = "okay";
  265. };
  266. &i2c1 {
  267. pinctrl-names = "default", "gpio";
  268. pinctrl-0 = <&pinctrl_i2c1>;
  269. pinctrl-1 = <&pinctrl_i2c1_gpio>;
  270. scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
  271. sda-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
  272. clock-frequency = <400000>;
  273. status = "okay";
  274. ds1339: rtc@68 {
  275. compatible = "dallas,ds1339";
  276. reg = <0x68>;
  277. trickle-resistor-ohms = <250>;
  278. trickle-diode-disable;
  279. };
  280. };
  281. &i2c3 {
  282. pinctrl-names = "default", "gpio";
  283. pinctrl-0 = <&pinctrl_i2c3>;
  284. pinctrl-1 = <&pinctrl_i2c3_gpio>;
  285. scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
  286. sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
  287. clock-frequency = <400000>;
  288. status = "okay";
  289. sgtl5000: sgtl5000@a {
  290. compatible = "fsl,sgtl5000";
  291. #sound-dai-cells = <0>;
  292. reg = <0x0a>;
  293. VDDA-supply = <&reg_2v5>;
  294. VDDIO-supply = <&reg_3v3>;
  295. clocks = <&mclk>;
  296. };
  297. polytouch: edt-ft5x06@38 {
  298. compatible = "edt,edt-ft5x06";
  299. reg = <0x38>;
  300. pinctrl-names = "default";
  301. pinctrl-0 = <&pinctrl_edt_ft5x06>;
  302. interrupt-parent = <&gpio6>;
  303. interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
  304. reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
  305. wake-gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
  306. wakeup-source;
  307. };
  308. touchscreen: tsc2007@48 {
  309. compatible = "ti,tsc2007";
  310. reg = <0x48>;
  311. pinctrl-names = "default";
  312. pinctrl-0 = <&pinctrl_tsc2007>;
  313. interrupt-parent = <&gpio3>;
  314. interrupts = <26 0>;
  315. gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
  316. ti,x-plate-ohms = <660>;
  317. wakeup-source;
  318. };
  319. };
  320. &iomuxc {
  321. pinctrl-names = "default";
  322. pinctrl-0 = <&pinctrl_hog>;
  323. pinctrl_hog: hoggrp {
  324. fsl,pins = <
  325. MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b1 /* PWR BTN */
  326. >;
  327. };
  328. pinctrl_audmux: audmuxgrp {
  329. fsl,pins = <
  330. MX6QDL_PAD_KEY_ROW1__AUD5_RXD 0x130b0 /* SSI1_RXD */
  331. MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0 /* SSI1_TXD */
  332. MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0 /* SSI1_CLK */
  333. MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0 /* SSI1_FS */
  334. >;
  335. };
  336. pinctrl_disp0_1: disp0grp-1 {
  337. fsl,pins = <
  338. MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10
  339. MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10
  340. MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10
  341. MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10
  342. /* PAD DISP0_DAT0 is used for the Flexcan transceiver control */
  343. MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10
  344. MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10
  345. MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10
  346. MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10
  347. MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10
  348. MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10
  349. MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10
  350. MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10
  351. MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10
  352. MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10
  353. MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10
  354. MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10
  355. MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10
  356. MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10
  357. MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10
  358. MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10
  359. MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10
  360. MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10
  361. MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10
  362. MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10
  363. MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10
  364. MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10
  365. MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10
  366. >;
  367. };
  368. pinctrl_disp0_2: disp0grp-2 {
  369. fsl,pins = <
  370. MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10
  371. MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10
  372. MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10
  373. MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10
  374. MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10
  375. MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10
  376. MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10
  377. MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10
  378. MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10
  379. MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10
  380. MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10
  381. MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10
  382. MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10
  383. MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10
  384. MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10
  385. MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10
  386. MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10
  387. MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10
  388. MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10
  389. MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10
  390. MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10
  391. MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10
  392. MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10
  393. MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10
  394. MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10
  395. MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10
  396. MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10
  397. MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10
  398. >;
  399. };
  400. pinctrl_ecspi1: ecspi1grp {
  401. fsl,pins = <
  402. MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x0b0b0
  403. MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x0b0b0
  404. MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x0b0b0
  405. MX6QDL_PAD_GPIO_19__ECSPI1_RDY 0x0b0b0
  406. MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x0b0b0 /* SPI CS0 */
  407. MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x0b0b0 /* SPI CS1 */
  408. >;
  409. };
  410. pinctrl_edt_ft5x06: edt-ft5x06grp {
  411. fsl,pins = <
  412. MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0 /* Interrupt */
  413. MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b0 /* Reset */
  414. MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b0 /* Wake */
  415. >;
  416. };
  417. pinctrl_enet: enetgrp {
  418. fsl,pins = <
  419. MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
  420. MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
  421. MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0
  422. MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
  423. MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0
  424. MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0
  425. MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
  426. >;
  427. };
  428. pinctrl_enet_mdio: enet-mdiogrp {
  429. fsl,pins = <
  430. MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
  431. MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
  432. >;
  433. };
  434. pinctrl_etnphy_int: etnphy-intgrp {
  435. fsl,pins = <
  436. MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1b0b1 /* ETN PHY INT */
  437. >;
  438. };
  439. pinctrl_etnphy_power: etnphy-pwrgrp {
  440. fsl,pins = <
  441. MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b1 /* ETN PHY POWER */
  442. >;
  443. };
  444. pinctrl_etnphy_rst: etnphy-rstgrp {
  445. fsl,pins = <
  446. MX6QDL_PAD_SD3_DAT2__GPIO7_IO06 0x1b0b1 /* ETN PHY RESET */
  447. >;
  448. };
  449. pinctrl_flexcan1: flexcan1grp {
  450. fsl,pins = <
  451. MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x1b0b0
  452. MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x1b0b0
  453. >;
  454. };
  455. pinctrl_flexcan2: flexcan2grp {
  456. fsl,pins = <
  457. MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x1b0b0
  458. MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b0b0
  459. >;
  460. };
  461. pinctrl_flexcan_xcvr: flexcan-xcvrgrp {
  462. fsl,pins = <
  463. MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x1b0b0 /* Flexcan XCVR enable */
  464. >;
  465. };
  466. pinctrl_gpmi_nand: gpminandgrp {
  467. fsl,pins = <
  468. MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x0b0b1
  469. MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x0b0b1
  470. MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x0b0b1
  471. MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x0b000
  472. MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x0b0b1
  473. MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x0b0b1
  474. MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x0b0b1
  475. MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x0b0b1
  476. MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x0b0b1
  477. MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x0b0b1
  478. MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x0b0b1
  479. MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x0b0b1
  480. MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x0b0b1
  481. MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x0b0b1
  482. MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x0b0b1
  483. >;
  484. };
  485. pinctrl_i2c1: i2c1grp {
  486. fsl,pins = <
  487. MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
  488. MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
  489. >;
  490. };
  491. pinctrl_i2c1_gpio: i2c1-gpiogrp {
  492. fsl,pins = <
  493. MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x4001b8b1
  494. MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x4001b8b1
  495. >;
  496. };
  497. pinctrl_i2c3: i2c3grp {
  498. fsl,pins = <
  499. MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
  500. MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
  501. >;
  502. };
  503. pinctrl_i2c3_gpio: i2c3-gpiogrp {
  504. fsl,pins = <
  505. MX6QDL_PAD_GPIO_3__GPIO1_IO03 0x4001b8b1
  506. MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x4001b8b1
  507. >;
  508. };
  509. pinctrl_kpp: kppgrp {
  510. fsl,pins = <
  511. MX6QDL_PAD_GPIO_9__KEY_COL6 0x1b0b1
  512. MX6QDL_PAD_GPIO_4__KEY_COL7 0x1b0b1
  513. MX6QDL_PAD_KEY_COL2__KEY_COL2 0x1b0b1
  514. MX6QDL_PAD_KEY_COL3__KEY_COL3 0x1b0b1
  515. MX6QDL_PAD_GPIO_2__KEY_ROW6 0x1b0b1
  516. MX6QDL_PAD_GPIO_5__KEY_ROW7 0x1b0b1
  517. MX6QDL_PAD_KEY_ROW2__KEY_ROW2 0x1b0b1
  518. MX6QDL_PAD_KEY_ROW3__KEY_ROW3 0x1b0b1
  519. >;
  520. };
  521. pinctrl_lcd0_pwr: lcd0-pwrgrp {
  522. fsl,pins = <
  523. MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b1 /* LCD Reset */
  524. >;
  525. };
  526. pinctrl_lcd1_pwr: lcd-pwrgrp {
  527. fsl,pins = <
  528. MX6QDL_PAD_EIM_EB3__GPIO2_IO31 0x1b0b1 /* LCD Power Enable */
  529. >;
  530. };
  531. pinctrl_pwm1: pwm1grp {
  532. fsl,pins = <
  533. MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
  534. >;
  535. };
  536. pinctrl_pwm2: pwm2grp {
  537. fsl,pins = <
  538. MX6QDL_PAD_GPIO_1__PWM2_OUT 0x1b0b1
  539. >;
  540. };
  541. pinctrl_tsc2007: tsc2007grp {
  542. fsl,pins = <
  543. MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x1b0b0 /* Interrupt */
  544. >;
  545. };
  546. pinctrl_uart1: uart1grp {
  547. fsl,pins = <
  548. MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
  549. MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
  550. >;
  551. };
  552. pinctrl_uart1_rtscts: uart1_rtsctsgrp {
  553. fsl,pins = <
  554. MX6QDL_PAD_SD3_DAT1__UART1_RTS_B 0x1b0b1
  555. MX6QDL_PAD_SD3_DAT0__UART1_CTS_B 0x1b0b1
  556. >;
  557. };
  558. pinctrl_uart2: uart2grp {
  559. fsl,pins = <
  560. MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
  561. MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
  562. >;
  563. };
  564. pinctrl_uart2_rtscts: uart2_rtsctsgrp {
  565. fsl,pins = <
  566. MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x1b0b1
  567. MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x1b0b1
  568. >;
  569. };
  570. pinctrl_uart3: uart3grp {
  571. fsl,pins = <
  572. MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
  573. MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
  574. >;
  575. };
  576. pinctrl_uart3_rtscts: uart3_rtsctsgrp {
  577. fsl,pins = <
  578. MX6QDL_PAD_SD3_DAT3__UART3_CTS_B 0x1b0b1
  579. MX6QDL_PAD_SD3_RST__UART3_RTS_B 0x1b0b1
  580. >;
  581. };
  582. pinctrl_usbh1_vbus: usbh1-vbusgrp {
  583. fsl,pins = <
  584. MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x1b0b0 /* USBH1_VBUSEN */
  585. >;
  586. };
  587. pinctrl_usbotg: usbotggrp {
  588. fsl,pins = <
  589. MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x17059
  590. >;
  591. };
  592. pinctrl_usbotg_vbus: usbotg-vbusgrp {
  593. fsl,pins = <
  594. MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x1b0b0 /* USBOTG_VBUSEN */
  595. >;
  596. };
  597. pinctrl_usdhc1: usdhc1grp {
  598. fsl,pins = <
  599. MX6QDL_PAD_SD1_CMD__SD1_CMD 0x070b1
  600. MX6QDL_PAD_SD1_CLK__SD1_CLK 0x070b1
  601. MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x070b1
  602. MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x070b1
  603. MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x070b1
  604. MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x070b1
  605. MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x170b0 /* SD1 CD */
  606. >;
  607. };
  608. pinctrl_usdhc2: usdhc2grp {
  609. fsl,pins = <
  610. MX6QDL_PAD_SD2_CMD__SD2_CMD 0x070b1
  611. MX6QDL_PAD_SD2_CLK__SD2_CLK 0x070b1
  612. MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x070b1
  613. MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x070b1
  614. MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x070b1
  615. MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x070b1
  616. MX6QDL_PAD_SD3_CLK__GPIO7_IO03 0x170b0 /* SD2 CD */
  617. >;
  618. };
  619. pinctrl_user_led: user-ledgrp {
  620. fsl,pins = <
  621. MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b1 /* LED */
  622. >;
  623. };
  624. };
  625. &kpp {
  626. pinctrl-names = "default";
  627. pinctrl-0 = <&pinctrl_kpp>;
  628. /* sample keymap */
  629. /* row/col 0,1 are mapped to KPP row/col 6,7 */
  630. linux,keymap = <
  631. MATRIX_KEY(6, 6, KEY_POWER) /* 0x06060074 */
  632. MATRIX_KEY(6, 7, KEY_KP0) /* 0x06070052 */
  633. MATRIX_KEY(6, 2, KEY_KP1) /* 0x0602004f */
  634. MATRIX_KEY(6, 3, KEY_KP2) /* 0x06030050 */
  635. MATRIX_KEY(7, 6, KEY_KP3) /* 0x07060051 */
  636. MATRIX_KEY(7, 7, KEY_KP4) /* 0x0707004b */
  637. MATRIX_KEY(7, 2, KEY_KP5) /* 0x0702004c */
  638. MATRIX_KEY(7, 3, KEY_KP6) /* 0x0703004d */
  639. MATRIX_KEY(2, 6, KEY_KP7) /* 0x02060047 */
  640. MATRIX_KEY(2, 7, KEY_KP8) /* 0x02070048 */
  641. MATRIX_KEY(2, 2, KEY_KP9) /* 0x02020049 */
  642. >;
  643. status = "okay";
  644. };
  645. &pwm1 {
  646. pinctrl-names = "default";
  647. pinctrl-0 = <&pinctrl_pwm1>;
  648. status = "disabled";
  649. };
  650. &pwm2 {
  651. pinctrl-names = "default";
  652. pinctrl-0 = <&pinctrl_pwm2>;
  653. status = "okay";
  654. };
  655. &ssi1 {
  656. status = "okay";
  657. };
  658. &uart1 {
  659. pinctrl-names = "default";
  660. pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>;
  661. uart-has-rtscts;
  662. status = "okay";
  663. };
  664. &uart2 {
  665. pinctrl-names = "default";
  666. pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>;
  667. uart-has-rtscts;
  668. status = "okay";
  669. };
  670. &uart3 {
  671. pinctrl-names = "default";
  672. pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>;
  673. uart-has-rtscts;
  674. status = "okay";
  675. };
  676. &usbh1 {
  677. vbus-supply = <&reg_usbh1_vbus>;
  678. dr_mode = "host";
  679. disable-over-current;
  680. status = "okay";
  681. };
  682. &usbotg {
  683. vbus-supply = <&reg_usbotg_vbus>;
  684. pinctrl-names = "default";
  685. pinctrl-0 = <&pinctrl_usbotg>;
  686. dr_mode = "peripheral";
  687. disable-over-current;
  688. status = "okay";
  689. };
  690. &usdhc1 {
  691. pinctrl-names = "default";
  692. pinctrl-0 = <&pinctrl_usdhc1>;
  693. bus-width = <4>;
  694. no-1-8-v;
  695. cd-gpios = <&gpio7 2 GPIO_ACTIVE_LOW>;
  696. fsl,wp-controller;
  697. status = "okay";
  698. };
  699. &usdhc2 {
  700. pinctrl-names = "default";
  701. pinctrl-0 = <&pinctrl_usdhc2>;
  702. bus-width = <4>;
  703. no-1-8-v;
  704. cd-gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
  705. fsl,wp-controller;
  706. status = "okay";
  707. };