imx28-tx28.dts 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. /*
  2. * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
  3. * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de>
  4. *
  5. * The code contained herein is licensed under the GNU General Public
  6. * License. You may obtain a copy of the GNU General Public License
  7. * Version 2 at the following locations:
  8. *
  9. * http://www.opensource.org/licenses/gpl-license.html
  10. * http://www.gnu.org/copyleft/gpl.html
  11. */
  12. /dts-v1/;
  13. #include "imx28.dtsi"
  14. #include <dt-bindings/gpio/gpio.h>
  15. / {
  16. model = "Ka-Ro electronics TX28 module";
  17. compatible = "karo,tx28", "fsl,imx28";
  18. aliases {
  19. can0 = &can0;
  20. can1 = &can1;
  21. display = &display0;
  22. ds1339 = &ds1339;
  23. gpio5 = &gpio5;
  24. lcdif = &lcdif;
  25. lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
  26. lcdif_24bit_pins = &lcdif_24bit_pins_a;
  27. reg_can_xcvr = &reg_can_xcvr;
  28. spi_gpio = &spi_gpio;
  29. spi_mxs = &ssp3;
  30. stk5led = &user_led;
  31. usbotg = &usb0;
  32. };
  33. memory {
  34. reg = <0 0>; /* will be filled in by U-Boot */
  35. };
  36. onewire {
  37. compatible = "w1-gpio";
  38. gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
  39. status = "disabled";
  40. };
  41. regulators {
  42. compatible = "simple-bus";
  43. #address-cells = <1>;
  44. #size-cells = <0>;
  45. reg_usb0_vbus: regulator@0 {
  46. compatible = "regulator-fixed";
  47. reg = <0>;
  48. regulator-name = "usb0_vbus";
  49. regulator-min-microvolt = <5000000>;
  50. regulator-max-microvolt = <5000000>;
  51. gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
  52. enable-active-high;
  53. };
  54. reg_usb1_vbus: regulator@1 {
  55. compatible = "regulator-fixed";
  56. reg = <1>;
  57. regulator-name = "usb1_vbus";
  58. regulator-min-microvolt = <5000000>;
  59. regulator-max-microvolt = <5000000>;
  60. gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
  61. enable-active-high;
  62. };
  63. reg_2p5v: regulator@2 {
  64. compatible = "regulator-fixed";
  65. reg = <2>;
  66. regulator-name = "2P5V";
  67. regulator-min-microvolt = <2500000>;
  68. regulator-max-microvolt = <2500000>;
  69. regulator-always-on;
  70. };
  71. reg_3p3v: regulator@3 {
  72. compatible = "regulator-fixed";
  73. reg = <3>;
  74. regulator-name = "3P3V";
  75. regulator-min-microvolt = <3300000>;
  76. regulator-max-microvolt = <3300000>;
  77. regulator-always-on;
  78. };
  79. reg_can_xcvr: regulator@4 {
  80. compatible = "regulator-fixed";
  81. reg = <4>;
  82. regulator-name = "CAN XCVR";
  83. regulator-min-microvolt = <3300000>;
  84. regulator-max-microvolt = <3300000>;
  85. gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
  86. pinctrl-names = "default";
  87. pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
  88. };
  89. reg_lcd: regulator@5 {
  90. compatible = "regulator-fixed";
  91. reg = <5>;
  92. regulator-name = "LCD POWER";
  93. regulator-min-microvolt = <3300000>;
  94. regulator-max-microvolt = <3300000>;
  95. gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
  96. enable-active-high;
  97. };
  98. reg_lcd_reset: regulator@6 {
  99. compatible = "regulator-fixed";
  100. reg = <6>;
  101. regulator-name = "LCD RESET";
  102. regulator-min-microvolt = <3300000>;
  103. regulator-max-microvolt = <3300000>;
  104. gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
  105. startup-delay-us = <300000>;
  106. enable-active-high;
  107. regulator-always-on;
  108. regulator-boot-on;
  109. };
  110. };
  111. clocks {
  112. #address-cells = <1>;
  113. #size-cells = <0>;
  114. mclk: clock@0 {
  115. compatible = "fixed-clock";
  116. reg = <0>;
  117. #clock-cells = <0>;
  118. clock-frequency = <27000000>;
  119. };
  120. };
  121. sound {
  122. compatible = "fsl,imx28-tx28-sgtl5000",
  123. "fsl,mxs-audio-sgtl5000";
  124. model = "imx28-tx28-sgtl5000";
  125. saif-controllers = <&saif0 &saif1>;
  126. audio-codec = <&sgtl5000>;
  127. };
  128. leds {
  129. compatible = "gpio-leds";
  130. user_led: user {
  131. label = "Heartbeat";
  132. gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
  133. linux,default-trigger = "heartbeat";
  134. };
  135. };
  136. backlight {
  137. compatible = "pwm-backlight";
  138. pwms = <&pwm 0 500000>;
  139. /*
  140. * a silly way to create a 1:1 relationship between the
  141. * PWM value and the actual duty cycle
  142. */
  143. brightness-levels = < 0 1 2 3 4 5 6 7 8 9
  144. 10 11 12 13 14 15 16 17 18 19
  145. 20 21 22 23 24 25 26 27 28 29
  146. 30 31 32 33 34 35 36 37 38 39
  147. 40 41 42 43 44 45 46 47 48 49
  148. 50 51 52 53 54 55 56 57 58 59
  149. 60 61 62 63 64 65 66 67 68 69
  150. 70 71 72 73 74 75 76 77 78 79
  151. 80 81 82 83 84 85 86 87 88 89
  152. 90 91 92 93 94 95 96 97 98 99
  153. 100>;
  154. default-brightness-level = <50>;
  155. };
  156. matrix_keypad: matrix-keypad@0 {
  157. compatible = "gpio-matrix-keypad";
  158. col-gpios = <
  159. &gpio5 0 GPIO_ACTIVE_HIGH
  160. &gpio5 1 GPIO_ACTIVE_HIGH
  161. &gpio5 2 GPIO_ACTIVE_HIGH
  162. &gpio5 3 GPIO_ACTIVE_HIGH
  163. >;
  164. row-gpios = <
  165. &gpio5 4 GPIO_ACTIVE_HIGH
  166. &gpio5 5 GPIO_ACTIVE_HIGH
  167. &gpio5 6 GPIO_ACTIVE_HIGH
  168. &gpio5 7 GPIO_ACTIVE_HIGH
  169. >;
  170. /* sample keymap */
  171. linux,keymap = <
  172. 0x00000074 /* row 0, col 0, KEY_POWER */
  173. 0x00010052 /* row 0, col 1, KEY_KP0 */
  174. 0x0002004f /* row 0, col 2, KEY_KP1 */
  175. 0x00030050 /* row 0, col 3, KEY_KP2 */
  176. 0x01000051 /* row 1, col 0, KEY_KP3 */
  177. 0x0101004b /* row 1, col 1, KEY_KP4 */
  178. 0x0102004c /* row 1, col 2, KEY_KP5 */
  179. 0x0103004d /* row 1, col 3, KEY_KP6 */
  180. 0x02000047 /* row 2, col 0, KEY_KP7 */
  181. 0x02010048 /* row 2, col 1, KEY_KP8 */
  182. 0x02020049 /* row 2, col 2, KEY_KP9 */
  183. >;
  184. gpio-activelow;
  185. linux,wakeup;
  186. debounce-delay-ms = <100>;
  187. col-scan-delay-us = <5000>;
  188. linux,no-autorepeat;
  189. };
  190. spi_gpio: spi-gpio {
  191. compatible = "spi-gpio";
  192. #address-cells = <1>;
  193. #size-cells = <0>;
  194. pinctrl-names = "default";
  195. pinctrl-0 = <&tx28_spi_gpio_pins>;
  196. gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
  197. gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
  198. gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
  199. num-chipselects = <3>;
  200. cs-gpios = <
  201. &gpio2 27 GPIO_ACTIVE_LOW
  202. &gpio3 8 GPIO_ACTIVE_LOW
  203. &gpio3 9 GPIO_ACTIVE_LOW
  204. >;
  205. /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
  206. status = "disabled";
  207. spi@0 {
  208. compatible = "spidev";
  209. reg = <0>;
  210. spi-max-frequency = <57600000>;
  211. };
  212. spi@1 {
  213. compatible = "spidev";
  214. reg = <1>;
  215. spi-max-frequency = <57600000>;
  216. };
  217. spi@2 {
  218. compatible = "spidev";
  219. reg = <2>;
  220. spi-max-frequency = <57600000>;
  221. };
  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@0a {
  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 0>;
  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 0>;
  293. reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
  294. wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
  295. };
  296. touchscreen: tsc2007@48 {
  297. compatible = "ti,tsc2007";
  298. reg = <0x48>;
  299. pinctrl-names = "default";
  300. pinctrl-0 = <&tx28_tsc2007_pins>;
  301. interrupt-parent = <&gpio3>;
  302. interrupts = <20 0>;
  303. pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
  304. ti,x-plate-ohms = /bits/ 16 <660>;
  305. };
  306. ds1339: rtc@68 {
  307. compatible = "mxim,ds1339";
  308. reg = <0x68>;
  309. };
  310. };
  311. &lcdif {
  312. pinctrl-names = "default";
  313. pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
  314. lcd-supply = <&reg_lcd>;
  315. display = <&display0>;
  316. status = "okay";
  317. display0: display0 {
  318. bits-per-pixel = <32>;
  319. bus-width = <24>;
  320. display-timings {
  321. native-mode = <&timing5>;
  322. timing0: timing0 {
  323. panel-name = "VGA";
  324. clock-frequency = <25175000>;
  325. hactive = <640>;
  326. vactive = <480>;
  327. hback-porch = <48>;
  328. hsync-len = <96>;
  329. hfront-porch = <16>;
  330. vback-porch = <33>;
  331. vsync-len = <2>;
  332. vfront-porch = <10>;
  333. hsync-active = <0>;
  334. vsync-active = <0>;
  335. de-active = <1>;
  336. pixelclk-active = <1>;
  337. };
  338. timing1: timing1 {
  339. panel-name = "ETV570";
  340. clock-frequency = <25175000>;
  341. hactive = <640>;
  342. vactive = <480>;
  343. hback-porch = <114>;
  344. hsync-len = <30>;
  345. hfront-porch = <16>;
  346. vback-porch = <32>;
  347. vsync-len = <3>;
  348. vfront-porch = <10>;
  349. hsync-active = <0>;
  350. vsync-active = <0>;
  351. de-active = <1>;
  352. pixelclk-active = <1>;
  353. };
  354. timing2: timing2 {
  355. panel-name = "ET0350";
  356. clock-frequency = <6500000>;
  357. hactive = <320>;
  358. vactive = <240>;
  359. hback-porch = <34>;
  360. hsync-len = <34>;
  361. hfront-porch = <20>;
  362. vback-porch = <15>;
  363. vsync-len = <3>;
  364. vfront-porch = <4>;
  365. hsync-active = <0>;
  366. vsync-active = <0>;
  367. de-active = <1>;
  368. pixelclk-active = <1>;
  369. };
  370. timing3: timing3 {
  371. panel-name = "ET0430";
  372. clock-frequency = <9000000>;
  373. hactive = <480>;
  374. vactive = <272>;
  375. hback-porch = <2>;
  376. hsync-len = <41>;
  377. hfront-porch = <2>;
  378. vback-porch = <2>;
  379. vsync-len = <10>;
  380. vfront-porch = <2>;
  381. hsync-active = <0>;
  382. vsync-active = <0>;
  383. de-active = <1>;
  384. pixelclk-active = <1>;
  385. };
  386. timing4: timing4 {
  387. panel-name = "ET0500", "ET0700";
  388. clock-frequency = <33260000>;
  389. hactive = <800>;
  390. vactive = <480>;
  391. hback-porch = <88>;
  392. hsync-len = <128>;
  393. hfront-porch = <40>;
  394. vback-porch = <33>;
  395. vsync-len = <2>;
  396. vfront-porch = <10>;
  397. hsync-active = <0>;
  398. vsync-active = <0>;
  399. de-active = <1>;
  400. pixelclk-active = <1>;
  401. };
  402. timing5: timing5 {
  403. panel-name = "ETQ570";
  404. clock-frequency = <6400000>;
  405. hactive = <320>;
  406. vactive = <240>;
  407. hback-porch = <38>;
  408. hsync-len = <30>;
  409. hfront-porch = <30>;
  410. vback-porch = <16>;
  411. vsync-len = <3>;
  412. vfront-porch = <4>;
  413. hsync-active = <0>;
  414. vsync-active = <0>;
  415. de-active = <1>;
  416. pixelclk-active = <1>;
  417. };
  418. };
  419. };
  420. };
  421. &lradc {
  422. fsl,lradc-touchscreen-wires = <4>;
  423. status = "okay";
  424. };
  425. &mac0 {
  426. phy-mode = "rmii";
  427. pinctrl-names = "default", "gpio_mode";
  428. pinctrl-0 = <&mac0_pins_a>;
  429. pinctrl-1 = <&tx28_mac0_pins_gpio>;
  430. status = "okay";
  431. };
  432. &mac1 {
  433. phy-mode = "rmii";
  434. pinctrl-names = "default";
  435. pinctrl-0 = <&mac1_pins_a>;
  436. /* not enabled by default */
  437. };
  438. &mxs_rtc {
  439. status = "okay";
  440. };
  441. &ocotp {
  442. status = "okay";
  443. };
  444. &pwm {
  445. pinctrl-names = "default";
  446. pinctrl-0 = <&pwm0_pins_a>;
  447. status = "okay";
  448. };
  449. &pinctrl {
  450. pinctrl-names = "default";
  451. pinctrl-0 = <&hog_pins_a>;
  452. hog_pins_a: hog@0 {
  453. reg = <0>;
  454. fsl,pinmux-ids = <
  455. MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
  456. >;
  457. fsl,drive-strength = <MXS_DRIVE_4mA>;
  458. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  459. fsl,pull-up = <MXS_PULL_DISABLE>;
  460. };
  461. tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins {
  462. fsl,pinmux-ids = <
  463. MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
  464. MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
  465. MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
  466. >;
  467. fsl,drive-strength = <MXS_DRIVE_4mA>;
  468. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  469. fsl,pull-up = <MXS_PULL_DISABLE>;
  470. };
  471. tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins {
  472. fsl,pinmux-ids = <
  473. MX28_PAD_LCD_D00__GPIO_1_0
  474. >;
  475. fsl,drive-strength = <MXS_DRIVE_4mA>;
  476. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  477. fsl,pull-up = <MXS_PULL_DISABLE>;
  478. };
  479. tx28_lcdif_23bit_pins: tx28-lcdif-23bit {
  480. fsl,pinmux-ids = <
  481. /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
  482. MX28_PAD_LCD_D01__LCD_D1
  483. MX28_PAD_LCD_D02__LCD_D2
  484. MX28_PAD_LCD_D03__LCD_D3
  485. MX28_PAD_LCD_D04__LCD_D4
  486. MX28_PAD_LCD_D05__LCD_D5
  487. MX28_PAD_LCD_D06__LCD_D6
  488. MX28_PAD_LCD_D07__LCD_D7
  489. MX28_PAD_LCD_D08__LCD_D8
  490. MX28_PAD_LCD_D09__LCD_D9
  491. MX28_PAD_LCD_D10__LCD_D10
  492. MX28_PAD_LCD_D11__LCD_D11
  493. MX28_PAD_LCD_D12__LCD_D12
  494. MX28_PAD_LCD_D13__LCD_D13
  495. MX28_PAD_LCD_D14__LCD_D14
  496. MX28_PAD_LCD_D15__LCD_D15
  497. MX28_PAD_LCD_D16__LCD_D16
  498. MX28_PAD_LCD_D17__LCD_D17
  499. MX28_PAD_LCD_D18__LCD_D18
  500. MX28_PAD_LCD_D19__LCD_D19
  501. MX28_PAD_LCD_D20__LCD_D20
  502. MX28_PAD_LCD_D21__LCD_D21
  503. MX28_PAD_LCD_D22__LCD_D22
  504. MX28_PAD_LCD_D23__LCD_D23
  505. >;
  506. fsl,drive-strength = <MXS_DRIVE_4mA>;
  507. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  508. fsl,pull-up = <MXS_PULL_DISABLE>;
  509. };
  510. tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl {
  511. fsl,pinmux-ids = <
  512. MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
  513. MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
  514. >;
  515. fsl,drive-strength = <MXS_DRIVE_4mA>;
  516. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  517. fsl,pull-up = <MXS_PULL_DISABLE>;
  518. };
  519. tx28_mac0_pins_gpio: tx28-mac0-gpio-pins {
  520. fsl,pinmux-ids = <
  521. MX28_PAD_ENET0_MDC__GPIO_4_0
  522. MX28_PAD_ENET0_MDIO__GPIO_4_1
  523. MX28_PAD_ENET0_RX_EN__GPIO_4_2
  524. MX28_PAD_ENET0_RXD0__GPIO_4_3
  525. MX28_PAD_ENET0_RXD1__GPIO_4_4
  526. MX28_PAD_ENET0_TX_EN__GPIO_4_6
  527. MX28_PAD_ENET0_TXD0__GPIO_4_7
  528. MX28_PAD_ENET0_TXD1__GPIO_4_8
  529. MX28_PAD_ENET_CLK__GPIO_4_16
  530. >;
  531. fsl,drive-strength = <MXS_DRIVE_4mA>;
  532. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  533. fsl,pull-up = <MXS_PULL_DISABLE>;
  534. };
  535. tx28_pca9554_pins: tx28-pca9554-pins {
  536. fsl,pinmux-ids = <
  537. MX28_PAD_PWM3__GPIO_3_28
  538. >;
  539. fsl,drive-strength = <MXS_DRIVE_4mA>;
  540. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  541. fsl,pull-up = <MXS_PULL_DISABLE>;
  542. };
  543. tx28_spi_gpio_pins: spi-gpiogrp {
  544. fsl,pinmux-ids = <
  545. MX28_PAD_AUART2_RX__GPIO_3_8
  546. MX28_PAD_AUART2_TX__GPIO_3_9
  547. MX28_PAD_SSP3_SCK__GPIO_2_24
  548. MX28_PAD_SSP3_MOSI__GPIO_2_25
  549. MX28_PAD_SSP3_MISO__GPIO_2_26
  550. MX28_PAD_SSP3_SS0__GPIO_2_27
  551. >;
  552. fsl,drive-strength = <MXS_DRIVE_8mA>;
  553. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  554. fsl,pull-up = <MXS_PULL_DISABLE>;
  555. };
  556. tx28_tsc2007_pins: tx28-tsc2007-pins {
  557. fsl,pinmux-ids = <
  558. MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
  559. >;
  560. fsl,drive-strength = <MXS_DRIVE_4mA>;
  561. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  562. fsl,pull-up = <MXS_PULL_DISABLE>;
  563. };
  564. tx28_usbphy0_pins: tx28-usbphy0-pins {
  565. fsl,pinmux-ids = <
  566. MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
  567. MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
  568. >;
  569. fsl,drive-strength = <MXS_DRIVE_12mA>;
  570. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  571. fsl,pull-up = <MXS_PULL_DISABLE>;
  572. };
  573. tx28_usbphy1_pins: tx28-usbphy1-pins {
  574. fsl,pinmux-ids = <
  575. MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
  576. MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
  577. >;
  578. fsl,drive-strength = <MXS_DRIVE_12mA>;
  579. fsl,voltage = <MXS_VOLTAGE_HIGH>;
  580. fsl,pull-up = <MXS_PULL_DISABLE>;
  581. };
  582. };
  583. &saif0 {
  584. pinctrl-names = "default";
  585. pinctrl-0 = <&saif0_pins_b>;
  586. fsl,saif-master;
  587. status = "okay";
  588. };
  589. &saif1 {
  590. pinctrl-names = "default";
  591. pinctrl-0 = <&saif1_pins_a>;
  592. status = "okay";
  593. };
  594. &ssp0 {
  595. compatible = "fsl,imx28-mmc";
  596. pinctrl-names = "default", "special";
  597. pinctrl-0 = <&mmc0_4bit_pins_a
  598. &mmc0_cd_cfg
  599. &mmc0_sck_cfg>;
  600. bus-width = <4>;
  601. status = "okay";
  602. };
  603. &ssp3 {
  604. compatible = "fsl,imx28-spi";
  605. pinctrl-names = "default";
  606. pinctrl-0 = <&spi3_pins_a>;
  607. clock-frequency = <57600000>;
  608. status = "okay";
  609. spi@0 {
  610. compatible = "spidev";
  611. reg = <0>;
  612. spi-max-frequency = <57600000>;
  613. };
  614. spi@1 {
  615. compatible = "spidev";
  616. reg = <1>;
  617. spi-max-frequency = <57600000>;
  618. };
  619. spi@2 {
  620. compatible = "spidev";
  621. reg = <2>;
  622. spi-max-frequency = <57600000>;
  623. };
  624. };
  625. &usb0 {
  626. vbus-supply = <&reg_usb0_vbus>;
  627. disable-over-current;
  628. dr_mode = "peripheral";
  629. status = "okay";
  630. };
  631. &usb1 {
  632. vbus-supply = <&reg_usb1_vbus>;
  633. disable-over-current;
  634. dr_mode = "host";
  635. status = "okay";
  636. };
  637. &usbphy0 {
  638. pinctrl-names = "default";
  639. pinctrl-0 = <&tx28_usbphy0_pins>;
  640. phy_type = "utmi";
  641. status = "okay";
  642. };
  643. &usbphy1 {
  644. pinctrl-names = "default";
  645. pinctrl-0 = <&tx28_usbphy1_pins>;
  646. phy_type = "utmi";
  647. status = "okay";
  648. };