imx28-tx28.dts 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. /*
  2. * Copyright 2012 Shawn Guo <[email protected]>
  3. * Copyright 2013-2017 Lothar Waßmann <[email protected]>
  4. *
  5. * This file is dual-licensed: you can use it either under the terms
  6. * of the GPL or the X11 license, at your option. Note that this dual
  7. * licensing only applies to this file, and not this project as a
  8. * whole.
  9. *
  10. * a) This file is free software; you can redistribute it and/or
  11. * modify it under the terms of the GNU General Public License
  12. * version 2 as published by the Free Software Foundation.
  13. *
  14. * This file is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * Or, alternatively,
  20. *
  21. * b) Permission is hereby granted, free of charge, to any person
  22. * obtaining a copy of this software and associated documentation
  23. * files (the "Software"), to deal in the Software without
  24. * restriction, including without limitation the rights to use,
  25. * copy, modify, merge, publish, distribute, sublicense, and/or
  26. * sell copies of the Software, and to permit persons to whom the
  27. * Software is furnished to do so, subject to the following
  28. * conditions:
  29. *
  30. * The above copyright notice and this permission notice shall be
  31. * included in all copies or substantial portions of the Software.
  32. *
  33. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  34. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  35. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  36. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  37. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  38. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  39. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  40. * OTHER DEALINGS IN THE SOFTWARE.
  41. */
  42. /dts-v1/;
  43. #include "imx28.dtsi"
  44. #include <dt-bindings/gpio/gpio.h>
  45. #include <dt-bindings/interrupt-controller/irq.h>
  46. / {
  47. model = "Ka-Ro electronics TX28 module";
  48. compatible = "karo,tx28", "fsl,imx28";
  49. aliases {
  50. can0 = &can0;
  51. can1 = &can1;
  52. display = &display0;
  53. ds1339 = &ds1339;
  54. gpio5 = &gpio5;
  55. lcdif = &lcdif;
  56. lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
  57. lcdif_24bit_pins = &lcdif_24bit_pins_a;
  58. reg_can_xcvr = &reg_can_xcvr;
  59. spi_gpio = &spi_gpio;
  60. spi_mxs = &ssp3;
  61. stk5led = &user_led;
  62. usbotg = &usb0;
  63. };
  64. memory@40000000 {
  65. device_type = "memory";
  66. reg = <0x40000000 0>; /* will be filled in by U-Boot */
  67. };
  68. onewire {
  69. compatible = "w1-gpio";
  70. gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
  71. status = "disabled";
  72. };
  73. reg_usb0_vbus: regulator-usb0-vbus {
  74. compatible = "regulator-fixed";
  75. regulator-name = "usb0_vbus";
  76. regulator-min-microvolt = <5000000>;
  77. regulator-max-microvolt = <5000000>;
  78. gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
  79. enable-active-high;
  80. };
  81. reg_usb1_vbus: regulator-usb1-vbus {
  82. compatible = "regulator-fixed";
  83. regulator-name = "usb1_vbus";
  84. regulator-min-microvolt = <5000000>;
  85. regulator-max-microvolt = <5000000>;
  86. gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
  87. enable-active-high;
  88. };
  89. reg_2p5v: regulator-2p5v {
  90. compatible = "regulator-fixed";
  91. regulator-name = "2P5V";
  92. regulator-min-microvolt = <2500000>;
  93. regulator-max-microvolt = <2500000>;
  94. regulator-always-on;
  95. };
  96. reg_3p3v: regulator-3p3v {
  97. compatible = "regulator-fixed";
  98. regulator-name = "3P3V";
  99. regulator-min-microvolt = <3300000>;
  100. regulator-max-microvolt = <3300000>;
  101. regulator-always-on;
  102. };
  103. reg_can_xcvr: regulator-can-xcvr {
  104. compatible = "regulator-fixed";
  105. regulator-name = "CAN XCVR";
  106. regulator-min-microvolt = <3300000>;
  107. regulator-max-microvolt = <3300000>;
  108. gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
  109. pinctrl-names = "default";
  110. pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
  111. };
  112. reg_lcd: regulator-lcd-power {
  113. compatible = "regulator-fixed";
  114. regulator-name = "LCD POWER";
  115. regulator-min-microvolt = <3300000>;
  116. regulator-max-microvolt = <3300000>;
  117. gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
  118. enable-active-high;
  119. };
  120. reg_lcd_reset: regulator-lcd-reset {
  121. compatible = "regulator-fixed";
  122. regulator-name = "LCD RESET";
  123. regulator-min-microvolt = <3300000>;
  124. regulator-max-microvolt = <3300000>;
  125. gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
  126. startup-delay-us = <300000>;
  127. enable-active-high;
  128. regulator-always-on;
  129. regulator-boot-on;
  130. };
  131. mclk: clock-mclk {
  132. compatible = "fixed-clock";
  133. #clock-cells = <0>;
  134. clock-frequency = <26000000>;
  135. };
  136. sound {
  137. compatible = "fsl,imx28-tx28-sgtl5000",
  138. "fsl,mxs-audio-sgtl5000";
  139. model = "imx28-tx28-sgtl5000";
  140. saif-controllers = <&saif0 &saif1>;
  141. audio-codec = <&sgtl5000>;
  142. };
  143. leds {
  144. compatible = "gpio-leds";
  145. user_led: user {
  146. label = "Heartbeat";
  147. gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
  148. linux,default-trigger = "heartbeat";
  149. };
  150. };
  151. backlight {
  152. compatible = "pwm-backlight";
  153. pwms = <&pwm 0 500000>;
  154. /*
  155. * a silly way to create a 1:1 relationship between the
  156. * PWM value and the actual duty cycle
  157. */
  158. brightness-levels = < 0 1 2 3 4 5 6 7 8 9
  159. 10 11 12 13 14 15 16 17 18 19
  160. 20 21 22 23 24 25 26 27 28 29
  161. 30 31 32 33 34 35 36 37 38 39
  162. 40 41 42 43 44 45 46 47 48 49
  163. 50 51 52 53 54 55 56 57 58 59
  164. 60 61 62 63 64 65 66 67 68 69
  165. 70 71 72 73 74 75 76 77 78 79
  166. 80 81 82 83 84 85 86 87 88 89
  167. 90 91 92 93 94 95 96 97 98 99
  168. 100>;
  169. default-brightness-level = <50>;
  170. };
  171. matrix_keypad: matrix-keypad {
  172. compatible = "gpio-matrix-keypad";
  173. col-gpios = <
  174. &gpio5 0 GPIO_ACTIVE_HIGH
  175. &gpio5 1 GPIO_ACTIVE_HIGH
  176. &gpio5 2 GPIO_ACTIVE_HIGH
  177. &gpio5 3 GPIO_ACTIVE_HIGH
  178. >;
  179. row-gpios = <
  180. &gpio5 4 GPIO_ACTIVE_HIGH
  181. &gpio5 5 GPIO_ACTIVE_HIGH
  182. &gpio5 6 GPIO_ACTIVE_HIGH
  183. &gpio5 7 GPIO_ACTIVE_HIGH
  184. >;
  185. /* sample keymap */
  186. linux,keymap = <
  187. 0x00000074 /* row 0, col 0, KEY_POWER */
  188. 0x00010052 /* row 0, col 1, KEY_KP0 */
  189. 0x0002004f /* row 0, col 2, KEY_KP1 */
  190. 0x00030050 /* row 0, col 3, KEY_KP2 */
  191. 0x01000051 /* row 1, col 0, KEY_KP3 */
  192. 0x0101004b /* row 1, col 1, KEY_KP4 */
  193. 0x0102004c /* row 1, col 2, KEY_KP5 */
  194. 0x0103004d /* row 1, col 3, KEY_KP6 */
  195. 0x02000047 /* row 2, col 0, KEY_KP7 */
  196. 0x02010048 /* row 2, col 1, KEY_KP8 */
  197. 0x02020049 /* row 2, col 2, KEY_KP9 */
  198. >;
  199. gpio-activelow;
  200. wakeup-source;
  201. debounce-delay-ms = <100>;
  202. col-scan-delay-us = <5000>;
  203. linux,no-autorepeat;
  204. };
  205. spi_gpio: spi {
  206. compatible = "spi-gpio";
  207. #address-cells = <1>;
  208. #size-cells = <0>;
  209. pinctrl-names = "default";
  210. pinctrl-0 = <&tx28_spi_gpio_pins>;
  211. gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
  212. gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
  213. gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
  214. num-chipselects = <3>;
  215. cs-gpios = <
  216. &gpio2 27 GPIO_ACTIVE_LOW
  217. &gpio3 8 GPIO_ACTIVE_LOW
  218. &gpio3 9 GPIO_ACTIVE_LOW
  219. >;
  220. /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
  221. status = "disabled";
  222. };
  223. };
  224. /* 2nd TX-Std UART - (A)UART1 */
  225. &auart1 {
  226. pinctrl-names = "default";
  227. pinctrl-0 = <&auart1_pins_a>;
  228. status = "okay";
  229. };
  230. /* 3rd TX-Std UART - (A)UART3 */
  231. &auart3 {
  232. pinctrl-names = "default";
  233. pinctrl-0 = <&auart3_pins_a>;
  234. status = "okay";
  235. };
  236. &can0 {
  237. pinctrl-names = "default";
  238. pinctrl-0 = <&can0_pins_a>;
  239. xceiver-supply = <&reg_can_xcvr>;
  240. status = "okay";
  241. };
  242. &can1 {
  243. pinctrl-names = "default";
  244. pinctrl-0 = <&can1_pins_a>;
  245. xceiver-supply = <&reg_can_xcvr>;
  246. status = "okay";
  247. };
  248. &digctl {
  249. status = "okay";
  250. };
  251. /* 1st TX-Std UART - (D)UART */
  252. &duart {
  253. pinctrl-names = "default";
  254. pinctrl-0 = <&duart_4pins_a>;
  255. status = "okay";
  256. };
  257. &gpmi {
  258. pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
  259. nand-on-flash-bbt;
  260. status = "okay";
  261. };
  262. &i2c0 {
  263. pinctrl-names = "default";
  264. pinctrl-0 = <&i2c0_pins_a>;
  265. clock-frequency = <400000>;
  266. status = "okay";
  267. sgtl5000: sgtl5000@a {
  268. compatible = "fsl,sgtl5000";
  269. reg = <0x0a>;
  270. VDDA-supply = <&reg_2p5v>;
  271. VDDIO-supply = <&reg_3p3v>;
  272. clocks = <&mclk>;
  273. };
  274. gpio5: pca953x@20 {
  275. compatible = "nxp,pca9554";
  276. reg = <0x20>;
  277. pinctrl-names = "default";
  278. pinctrl-0 = <&tx28_pca9554_pins>;
  279. interrupt-parent = <&gpio3>;
  280. interrupts = <28 IRQ_TYPE_NONE>;
  281. gpio-controller;
  282. #gpio-cells = <2>;
  283. interrupt-controller;
  284. #interrupt-cells = <2>;
  285. };
  286. polytouch: edt-ft5x06@38 {
  287. compatible = "edt,edt-ft5x06";
  288. reg = <0x38>;
  289. pinctrl-names = "default";
  290. pinctrl-0 = <&tx28_edt_ft5x06_pins>;
  291. interrupt-parent = <&gpio2>;
  292. interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
  293. reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
  294. wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
  295. wakeup-source;
  296. };
  297. touchscreen: tsc2007@48 {
  298. compatible = "ti,tsc2007";
  299. reg = <0x48>;
  300. pinctrl-names = "default";
  301. pinctrl-0 = <&tx28_tsc2007_pins>;
  302. interrupt-parent = <&gpio3>;
  303. interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
  304. pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
  305. ti,x-plate-ohms = /bits/ 16 <660>;
  306. };
  307. ds1339: rtc@68 {
  308. compatible = "dallas,ds1339";
  309. reg = <0x68>;
  310. trickle-resistor-ohms = <250>;
  311. trickle-diode-disable;
  312. };
  313. };
  314. &lcdif {
  315. pinctrl-names = "default";
  316. pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
  317. lcd-supply = <&reg_lcd>;
  318. display = <&display0>;
  319. status = "okay";
  320. display0: display0 {
  321. bits-per-pixel = <32>;
  322. bus-width = <24>;
  323. display-timings {
  324. native-mode = <&timing5>;
  325. timing0: timing0 {
  326. panel-name = "VGA";
  327. clock-frequency = <25175000>;
  328. hactive = <640>;
  329. vactive = <480>;
  330. hback-porch = <48>;
  331. hsync-len = <96>;
  332. hfront-porch = <16>;
  333. vback-porch = <33>;
  334. vsync-len = <2>;
  335. vfront-porch = <10>;
  336. hsync-active = <0>;
  337. vsync-active = <0>;
  338. de-active = <1>;
  339. pixelclk-active = <1>;
  340. };
  341. timing1: timing1 {
  342. panel-name = "ETV570";
  343. clock-frequency = <25175000>;
  344. hactive = <640>;
  345. vactive = <480>;
  346. hback-porch = <114>;
  347. hsync-len = <30>;
  348. hfront-porch = <16>;
  349. vback-porch = <32>;
  350. vsync-len = <3>;
  351. vfront-porch = <10>;
  352. hsync-active = <0>;
  353. vsync-active = <0>;
  354. de-active = <1>;
  355. pixelclk-active = <1>;
  356. };
  357. timing2: timing2 {
  358. panel-name = "ET0350";
  359. clock-frequency = <6500000>;
  360. hactive = <320>;
  361. vactive = <240>;
  362. hback-porch = <34>;
  363. hsync-len = <34>;
  364. hfront-porch = <20>;
  365. vback-porch = <15>;
  366. vsync-len = <3>;
  367. vfront-porch = <4>;
  368. hsync-active = <0>;
  369. vsync-active = <0>;
  370. de-active = <1>;
  371. pixelclk-active = <1>;
  372. };
  373. timing3: timing3 {
  374. panel-name = "ET0430";
  375. clock-frequency = <9000000>;
  376. hactive = <480>;
  377. vactive = <272>;
  378. hback-porch = <2>;
  379. hsync-len = <41>;
  380. hfront-porch = <2>;
  381. vback-porch = <2>;
  382. vsync-len = <10>;
  383. vfront-porch = <2>;
  384. hsync-active = <0>;
  385. vsync-active = <0>;
  386. de-active = <1>;
  387. pixelclk-active = <1>;
  388. };
  389. timing4: timing4 {
  390. panel-name = "ET0500", "ET0700";
  391. clock-frequency = <33260000>;
  392. hactive = <800>;
  393. vactive = <480>;
  394. hback-porch = <88>;
  395. hsync-len = <128>;
  396. hfront-porch = <40>;
  397. vback-porch = <33>;
  398. vsync-len = <2>;
  399. vfront-porch = <10>;
  400. hsync-active = <0>;
  401. vsync-active = <0>;
  402. de-active = <1>;
  403. pixelclk-active = <1>;
  404. };
  405. timing5: timing5 {
  406. panel-name = "ETQ570";
  407. clock-frequency = <6400000>;
  408. hactive = <320>;
  409. vactive = <240>;
  410. hback-porch = <38>;
  411. hsync-len = <30>;
  412. hfront-porch = <30>;
  413. vback-porch = <16>;
  414. vsync-len = <3>;
  415. vfront-porch = <4>;
  416. hsync-active = <0>;
  417. vsync-active = <0>;
  418. de-active = <1>;
  419. pixelclk-active = <1>;
  420. };
  421. };
  422. };
  423. };
  424. &lradc {
  425. fsl,lradc-touchscreen-wires = <4>;
  426. status = "okay";
  427. };
  428. &mac0 {
  429. phy-mode = "rmii";
  430. pinctrl-names = "default", "gpio_mode";
  431. pinctrl-0 = <&mac0_pins_a>;
  432. pinctrl-1 = <&tx28_mac0_pins_gpio>;
  433. status = "okay";
  434. };
  435. &mac1 {
  436. phy-mode = "rmii";
  437. pinctrl-names = "default";
  438. pinctrl-0 = <&mac1_pins_a>;
  439. /* not enabled by default */
  440. };
  441. &mxs_rtc {
  442. status = "okay";
  443. };
  444. &ocotp {
  445. status = "okay";
  446. };
  447. &pwm {
  448. pinctrl-names = "default";
  449. pinctrl-0 = <&pwm0_pins_a>;
  450. status = "okay";
  451. };
  452. &pinctrl {
  453. pinctrl-names = "default";
  454. pinctrl-0 = <&hog_pins_a>;
  455. hog_pins_a: hog@0 {
  456. reg = <0>;
  457. fsl,pinmux-ids = <
  458. MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
  459. >;
  460. fsl,drive-strength = <MXS_DRIVE_4mA>;
  461. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  462. fsl,pull-up = <MXS_PULL_DISABLE>;
  463. };
  464. tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins@0 {
  465. reg = <0>;
  466. fsl,pinmux-ids = <
  467. MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
  468. MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
  469. MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
  470. >;
  471. fsl,drive-strength = <MXS_DRIVE_4mA>;
  472. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  473. fsl,pull-up = <MXS_PULL_DISABLE>;
  474. };
  475. tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins@0 {
  476. reg = <0>;
  477. fsl,pinmux-ids = <
  478. MX28_PAD_LCD_D00__GPIO_1_0
  479. >;
  480. fsl,drive-strength = <MXS_DRIVE_4mA>;
  481. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  482. fsl,pull-up = <MXS_PULL_DISABLE>;
  483. };
  484. tx28_lcdif_23bit_pins: tx28-lcdif-23bit@0 {
  485. reg = <0>;
  486. fsl,pinmux-ids = <
  487. /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
  488. MX28_PAD_LCD_D01__LCD_D1
  489. MX28_PAD_LCD_D02__LCD_D2
  490. MX28_PAD_LCD_D03__LCD_D3
  491. MX28_PAD_LCD_D04__LCD_D4
  492. MX28_PAD_LCD_D05__LCD_D5
  493. MX28_PAD_LCD_D06__LCD_D6
  494. MX28_PAD_LCD_D07__LCD_D7
  495. MX28_PAD_LCD_D08__LCD_D8
  496. MX28_PAD_LCD_D09__LCD_D9
  497. MX28_PAD_LCD_D10__LCD_D10
  498. MX28_PAD_LCD_D11__LCD_D11
  499. MX28_PAD_LCD_D12__LCD_D12
  500. MX28_PAD_LCD_D13__LCD_D13
  501. MX28_PAD_LCD_D14__LCD_D14
  502. MX28_PAD_LCD_D15__LCD_D15
  503. MX28_PAD_LCD_D16__LCD_D16
  504. MX28_PAD_LCD_D17__LCD_D17
  505. MX28_PAD_LCD_D18__LCD_D18
  506. MX28_PAD_LCD_D19__LCD_D19
  507. MX28_PAD_LCD_D20__LCD_D20
  508. MX28_PAD_LCD_D21__LCD_D21
  509. MX28_PAD_LCD_D22__LCD_D22
  510. MX28_PAD_LCD_D23__LCD_D23
  511. >;
  512. fsl,drive-strength = <MXS_DRIVE_4mA>;
  513. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  514. fsl,pull-up = <MXS_PULL_DISABLE>;
  515. };
  516. tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl@0 {
  517. reg = <0>;
  518. fsl,pinmux-ids = <
  519. MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
  520. MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
  521. >;
  522. fsl,drive-strength = <MXS_DRIVE_4mA>;
  523. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  524. fsl,pull-up = <MXS_PULL_DISABLE>;
  525. };
  526. tx28_mac0_pins_gpio: tx28-mac0-gpio-pins@0 {
  527. reg = <0>;
  528. fsl,pinmux-ids = <
  529. MX28_PAD_ENET0_MDC__GPIO_4_0
  530. MX28_PAD_ENET0_MDIO__GPIO_4_1
  531. MX28_PAD_ENET0_RX_EN__GPIO_4_2
  532. MX28_PAD_ENET0_RXD0__GPIO_4_3
  533. MX28_PAD_ENET0_RXD1__GPIO_4_4
  534. MX28_PAD_ENET0_TX_EN__GPIO_4_6
  535. MX28_PAD_ENET0_TXD0__GPIO_4_7
  536. MX28_PAD_ENET0_TXD1__GPIO_4_8
  537. MX28_PAD_ENET_CLK__GPIO_4_16
  538. >;
  539. fsl,drive-strength = <MXS_DRIVE_4mA>;
  540. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  541. fsl,pull-up = <MXS_PULL_DISABLE>;
  542. };
  543. tx28_pca9554_pins: tx28-pca9554-pins@0 {
  544. reg = <0>;
  545. fsl,pinmux-ids = <
  546. MX28_PAD_PWM3__GPIO_3_28
  547. >;
  548. fsl,drive-strength = <MXS_DRIVE_4mA>;
  549. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  550. fsl,pull-up = <MXS_PULL_DISABLE>;
  551. };
  552. tx28_spi_gpio_pins: spi-gpiogrp@0 {
  553. reg = <0>;
  554. fsl,pinmux-ids = <
  555. MX28_PAD_AUART2_RX__GPIO_3_8
  556. MX28_PAD_AUART2_TX__GPIO_3_9
  557. MX28_PAD_SSP3_SCK__GPIO_2_24
  558. MX28_PAD_SSP3_MOSI__GPIO_2_25
  559. MX28_PAD_SSP3_MISO__GPIO_2_26
  560. MX28_PAD_SSP3_SS0__GPIO_2_27
  561. >;
  562. fsl,drive-strength = <MXS_DRIVE_8mA>;
  563. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  564. fsl,pull-up = <MXS_PULL_DISABLE>;
  565. };
  566. tx28_tsc2007_pins: tx28-tsc2007-pins@0 {
  567. reg = <0>;
  568. fsl,pinmux-ids = <
  569. MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
  570. >;
  571. fsl,drive-strength = <MXS_DRIVE_4mA>;
  572. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  573. fsl,pull-up = <MXS_PULL_DISABLE>;
  574. };
  575. tx28_usbphy0_pins: tx28-usbphy0-pins@0 {
  576. reg = <0>;
  577. fsl,pinmux-ids = <
  578. MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
  579. MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
  580. >;
  581. fsl,drive-strength = <MXS_DRIVE_12mA>;
  582. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  583. fsl,pull-up = <MXS_PULL_DISABLE>;
  584. };
  585. tx28_usbphy1_pins: tx28-usbphy1-pins@0 {
  586. reg = <0>;
  587. fsl,pinmux-ids = <
  588. MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
  589. MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
  590. >;
  591. fsl,drive-strength = <MXS_DRIVE_12mA>;
  592. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  593. fsl,pull-up = <MXS_PULL_DISABLE>;
  594. };
  595. };
  596. &saif0 {
  597. pinctrl-names = "default";
  598. pinctrl-0 = <&saif0_pins_b>;
  599. fsl,saif-master;
  600. status = "okay";
  601. };
  602. &saif1 {
  603. pinctrl-names = "default";
  604. pinctrl-0 = <&saif1_pins_a>;
  605. status = "okay";
  606. };
  607. &ssp0 {
  608. compatible = "fsl,imx28-mmc";
  609. pinctrl-names = "default", "special";
  610. pinctrl-0 = <&mmc0_4bit_pins_a
  611. &mmc0_cd_cfg
  612. &mmc0_sck_cfg>;
  613. bus-width = <4>;
  614. status = "okay";
  615. };
  616. &ssp3 {
  617. compatible = "fsl,imx28-spi";
  618. pinctrl-names = "default";
  619. pinctrl-0 = <&spi3_pins_a>;
  620. clock-frequency = <57600000>;
  621. status = "okay";
  622. };
  623. &usb0 {
  624. vbus-supply = <&reg_usb0_vbus>;
  625. disable-over-current;
  626. dr_mode = "peripheral";
  627. status = "okay";
  628. };
  629. &usb1 {
  630. vbus-supply = <&reg_usb1_vbus>;
  631. disable-over-current;
  632. dr_mode = "host";
  633. status = "okay";
  634. };
  635. &usbphy0 {
  636. pinctrl-names = "default";
  637. pinctrl-0 = <&tx28_usbphy0_pins>;
  638. phy_type = "utmi";
  639. status = "okay";
  640. };
  641. &usbphy1 {
  642. pinctrl-names = "default";
  643. pinctrl-0 = <&tx28_usbphy1_pins>;
  644. phy_type = "utmi";
  645. status = "okay";
  646. };