0001 /*
0002 * Copyright 2012 Shawn Guo <shawn.guo@linaro.org>
0003 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de>
0004 *
0005 * This file is dual-licensed: you can use it either under the terms
0006 * of the GPL or the X11 license, at your option. Note that this dual
0007 * licensing only applies to this file, and not this project as a
0008 * whole.
0009 *
0010 * a) This file is free software; you can redistribute it and/or
0011 * modify it under the terms of the GNU General Public License
0012 * version 2 as published by the Free Software Foundation.
0013 *
0014 * This file is distributed in the hope that it will be useful,
0015 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0017 * GNU General Public License for more details.
0018 *
0019 * Or, alternatively,
0020 *
0021 * b) Permission is hereby granted, free of charge, to any person
0022 * obtaining a copy of this software and associated documentation
0023 * files (the "Software"), to deal in the Software without
0024 * restriction, including without limitation the rights to use,
0025 * copy, modify, merge, publish, distribute, sublicense, and/or
0026 * sell copies of the Software, and to permit persons to whom the
0027 * Software is furnished to do so, subject to the following
0028 * conditions:
0029 *
0030 * The above copyright notice and this permission notice shall be
0031 * included in all copies or substantial portions of the Software.
0032 *
0033 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
0034 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
0035 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0036 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0037 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
0038 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0039 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0040 * OTHER DEALINGS IN THE SOFTWARE.
0041 */
0042
0043 /dts-v1/;
0044 #include "imx28.dtsi"
0045 #include <dt-bindings/gpio/gpio.h>
0046 #include <dt-bindings/interrupt-controller/irq.h>
0047
0048 / {
0049 model = "Ka-Ro electronics TX28 module";
0050 compatible = "karo,tx28", "fsl,imx28";
0051
0052 aliases {
0053 can0 = &can0;
0054 can1 = &can1;
0055 display = &display0;
0056 ds1339 = &ds1339;
0057 gpio5 = &gpio5;
0058 lcdif = &lcdif;
0059 lcdif_23bit_pins = &tx28_lcdif_23bit_pins;
0060 lcdif_24bit_pins = &lcdif_24bit_pins_a;
0061 reg_can_xcvr = ®_can_xcvr;
0062 spi_gpio = &spi_gpio;
0063 spi_mxs = &ssp3;
0064 stk5led = &user_led;
0065 usbotg = &usb0;
0066 };
0067
0068 memory@40000000 {
0069 device_type = "memory";
0070 reg = <0x40000000 0>; /* will be filled in by U-Boot */
0071 };
0072
0073 onewire {
0074 compatible = "w1-gpio";
0075 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
0076 status = "disabled";
0077 };
0078
0079 reg_usb0_vbus: regulator-usb0-vbus {
0080 compatible = "regulator-fixed";
0081 regulator-name = "usb0_vbus";
0082 regulator-min-microvolt = <5000000>;
0083 regulator-max-microvolt = <5000000>;
0084 gpio = <&gpio0 18 GPIO_ACTIVE_HIGH>;
0085 enable-active-high;
0086 };
0087
0088 reg_usb1_vbus: regulator-usb1-vbus {
0089 compatible = "regulator-fixed";
0090 regulator-name = "usb1_vbus";
0091 regulator-min-microvolt = <5000000>;
0092 regulator-max-microvolt = <5000000>;
0093 gpio = <&gpio3 27 GPIO_ACTIVE_HIGH>;
0094 enable-active-high;
0095 };
0096
0097 reg_2p5v: regulator-2p5v {
0098 compatible = "regulator-fixed";
0099 regulator-name = "2P5V";
0100 regulator-min-microvolt = <2500000>;
0101 regulator-max-microvolt = <2500000>;
0102 regulator-always-on;
0103 };
0104
0105 reg_3p3v: regulator-3p3v {
0106 compatible = "regulator-fixed";
0107 regulator-name = "3P3V";
0108 regulator-min-microvolt = <3300000>;
0109 regulator-max-microvolt = <3300000>;
0110 regulator-always-on;
0111 };
0112
0113 reg_can_xcvr: regulator-can-xcvr {
0114 compatible = "regulator-fixed";
0115 regulator-name = "CAN XCVR";
0116 regulator-min-microvolt = <3300000>;
0117 regulator-max-microvolt = <3300000>;
0118 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
0119 pinctrl-names = "default";
0120 pinctrl-0 = <&tx28_flexcan_xcvr_pins>;
0121 };
0122
0123 reg_lcd: regulator-lcd-power {
0124 compatible = "regulator-fixed";
0125 regulator-name = "LCD POWER";
0126 regulator-min-microvolt = <3300000>;
0127 regulator-max-microvolt = <3300000>;
0128 gpio = <&gpio1 31 GPIO_ACTIVE_HIGH>;
0129 enable-active-high;
0130 };
0131
0132 reg_lcd_reset: regulator-lcd-reset {
0133 compatible = "regulator-fixed";
0134 regulator-name = "LCD RESET";
0135 regulator-min-microvolt = <3300000>;
0136 regulator-max-microvolt = <3300000>;
0137 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
0138 startup-delay-us = <300000>;
0139 enable-active-high;
0140 regulator-always-on;
0141 regulator-boot-on;
0142 };
0143
0144 mclk: clock-mclk {
0145 compatible = "fixed-clock";
0146 #clock-cells = <0>;
0147 clock-frequency = <26000000>;
0148 };
0149
0150 sound {
0151 compatible = "fsl,imx28-tx28-sgtl5000",
0152 "fsl,mxs-audio-sgtl5000";
0153 model = "imx28-tx28-sgtl5000";
0154 saif-controllers = <&saif0 &saif1>;
0155 audio-codec = <&sgtl5000>;
0156 };
0157
0158 leds {
0159 compatible = "gpio-leds";
0160
0161 user_led: user {
0162 label = "Heartbeat";
0163 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
0164 linux,default-trigger = "heartbeat";
0165 };
0166 };
0167
0168 backlight {
0169 compatible = "pwm-backlight";
0170 pwms = <&pwm 0 500000>;
0171 /*
0172 * a silly way to create a 1:1 relationship between the
0173 * PWM value and the actual duty cycle
0174 */
0175 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
0176 10 11 12 13 14 15 16 17 18 19
0177 20 21 22 23 24 25 26 27 28 29
0178 30 31 32 33 34 35 36 37 38 39
0179 40 41 42 43 44 45 46 47 48 49
0180 50 51 52 53 54 55 56 57 58 59
0181 60 61 62 63 64 65 66 67 68 69
0182 70 71 72 73 74 75 76 77 78 79
0183 80 81 82 83 84 85 86 87 88 89
0184 90 91 92 93 94 95 96 97 98 99
0185 100>;
0186 default-brightness-level = <50>;
0187 };
0188
0189 matrix_keypad: matrix-keypad {
0190 compatible = "gpio-matrix-keypad";
0191 col-gpios = <
0192 &gpio5 0 GPIO_ACTIVE_HIGH
0193 &gpio5 1 GPIO_ACTIVE_HIGH
0194 &gpio5 2 GPIO_ACTIVE_HIGH
0195 &gpio5 3 GPIO_ACTIVE_HIGH
0196 >;
0197 row-gpios = <
0198 &gpio5 4 GPIO_ACTIVE_HIGH
0199 &gpio5 5 GPIO_ACTIVE_HIGH
0200 &gpio5 6 GPIO_ACTIVE_HIGH
0201 &gpio5 7 GPIO_ACTIVE_HIGH
0202 >;
0203 /* sample keymap */
0204 linux,keymap = <
0205 0x00000074 /* row 0, col 0, KEY_POWER */
0206 0x00010052 /* row 0, col 1, KEY_KP0 */
0207 0x0002004f /* row 0, col 2, KEY_KP1 */
0208 0x00030050 /* row 0, col 3, KEY_KP2 */
0209 0x01000051 /* row 1, col 0, KEY_KP3 */
0210 0x0101004b /* row 1, col 1, KEY_KP4 */
0211 0x0102004c /* row 1, col 2, KEY_KP5 */
0212 0x0103004d /* row 1, col 3, KEY_KP6 */
0213 0x02000047 /* row 2, col 0, KEY_KP7 */
0214 0x02010048 /* row 2, col 1, KEY_KP8 */
0215 0x02020049 /* row 2, col 2, KEY_KP9 */
0216 >;
0217 gpio-activelow;
0218 wakeup-source;
0219 debounce-delay-ms = <100>;
0220 col-scan-delay-us = <5000>;
0221 linux,no-autorepeat;
0222 };
0223
0224 spi_gpio: spi-gpio {
0225 compatible = "spi-gpio";
0226 #address-cells = <1>;
0227 #size-cells = <0>;
0228 pinctrl-names = "default";
0229 pinctrl-0 = <&tx28_spi_gpio_pins>;
0230
0231 gpio-sck = <&gpio2 24 GPIO_ACTIVE_HIGH>;
0232 gpio-mosi = <&gpio2 25 GPIO_ACTIVE_HIGH>;
0233 gpio-miso = <&gpio2 26 GPIO_ACTIVE_HIGH>;
0234 num-chipselects = <3>;
0235 cs-gpios = <
0236 &gpio2 27 GPIO_ACTIVE_LOW
0237 &gpio3 8 GPIO_ACTIVE_LOW
0238 &gpio3 9 GPIO_ACTIVE_LOW
0239 >;
0240 /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
0241 status = "disabled";
0242 };
0243 };
0244
0245 /* 2nd TX-Std UART - (A)UART1 */
0246 &auart1 {
0247 pinctrl-names = "default";
0248 pinctrl-0 = <&auart1_pins_a>;
0249 status = "okay";
0250 };
0251
0252 /* 3rd TX-Std UART - (A)UART3 */
0253 &auart3 {
0254 pinctrl-names = "default";
0255 pinctrl-0 = <&auart3_pins_a>;
0256 status = "okay";
0257 };
0258
0259 &can0 {
0260 pinctrl-names = "default";
0261 pinctrl-0 = <&can0_pins_a>;
0262 xceiver-supply = <®_can_xcvr>;
0263 status = "okay";
0264 };
0265
0266 &can1 {
0267 pinctrl-names = "default";
0268 pinctrl-0 = <&can1_pins_a>;
0269 xceiver-supply = <®_can_xcvr>;
0270 status = "okay";
0271 };
0272
0273 &digctl {
0274 status = "okay";
0275 };
0276
0277 /* 1st TX-Std UART - (D)UART */
0278 &duart {
0279 pinctrl-names = "default";
0280 pinctrl-0 = <&duart_4pins_a>;
0281 status = "okay";
0282 };
0283
0284 &gpmi {
0285 pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
0286 nand-on-flash-bbt;
0287 status = "okay";
0288 };
0289
0290 &i2c0 {
0291 pinctrl-names = "default";
0292 pinctrl-0 = <&i2c0_pins_a>;
0293 clock-frequency = <400000>;
0294 status = "okay";
0295
0296 sgtl5000: sgtl5000@a {
0297 compatible = "fsl,sgtl5000";
0298 reg = <0x0a>;
0299 VDDA-supply = <®_2p5v>;
0300 VDDIO-supply = <®_3p3v>;
0301 clocks = <&mclk>;
0302 };
0303
0304 gpio5: pca953x@20 {
0305 compatible = "nxp,pca9554";
0306 reg = <0x20>;
0307 pinctrl-names = "default";
0308 pinctrl-0 = <&tx28_pca9554_pins>;
0309 interrupt-parent = <&gpio3>;
0310 interrupts = <28 IRQ_TYPE_NONE>;
0311 gpio-controller;
0312 #gpio-cells = <2>;
0313 interrupt-controller;
0314 #interrupt-cells = <2>;
0315 };
0316
0317 polytouch: edt-ft5x06@38 {
0318 compatible = "edt,edt-ft5x06";
0319 reg = <0x38>;
0320 pinctrl-names = "default";
0321 pinctrl-0 = <&tx28_edt_ft5x06_pins>;
0322 interrupt-parent = <&gpio2>;
0323 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
0324 reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
0325 wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
0326 wakeup-source;
0327 };
0328
0329 touchscreen: tsc2007@48 {
0330 compatible = "ti,tsc2007";
0331 reg = <0x48>;
0332 pinctrl-names = "default";
0333 pinctrl-0 = <&tx28_tsc2007_pins>;
0334 interrupt-parent = <&gpio3>;
0335 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
0336 pendown-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
0337 ti,x-plate-ohms = /bits/ 16 <660>;
0338 };
0339
0340 ds1339: rtc@68 {
0341 compatible = "dallas,ds1339";
0342 reg = <0x68>;
0343 trickle-resistor-ohms = <250>;
0344 trickle-diode-disable;
0345 };
0346 };
0347
0348 &lcdif {
0349 pinctrl-names = "default";
0350 pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>;
0351 lcd-supply = <®_lcd>;
0352 display = <&display0>;
0353 status = "okay";
0354
0355 display0: display0 {
0356 bits-per-pixel = <32>;
0357 bus-width = <24>;
0358 display-timings {
0359 native-mode = <&timing5>;
0360 timing0: timing0 {
0361 panel-name = "VGA";
0362 clock-frequency = <25175000>;
0363 hactive = <640>;
0364 vactive = <480>;
0365 hback-porch = <48>;
0366 hsync-len = <96>;
0367 hfront-porch = <16>;
0368 vback-porch = <33>;
0369 vsync-len = <2>;
0370 vfront-porch = <10>;
0371 hsync-active = <0>;
0372 vsync-active = <0>;
0373 de-active = <1>;
0374 pixelclk-active = <1>;
0375 };
0376
0377 timing1: timing1 {
0378 panel-name = "ETV570";
0379 clock-frequency = <25175000>;
0380 hactive = <640>;
0381 vactive = <480>;
0382 hback-porch = <114>;
0383 hsync-len = <30>;
0384 hfront-porch = <16>;
0385 vback-porch = <32>;
0386 vsync-len = <3>;
0387 vfront-porch = <10>;
0388 hsync-active = <0>;
0389 vsync-active = <0>;
0390 de-active = <1>;
0391 pixelclk-active = <1>;
0392 };
0393
0394 timing2: timing2 {
0395 panel-name = "ET0350";
0396 clock-frequency = <6500000>;
0397 hactive = <320>;
0398 vactive = <240>;
0399 hback-porch = <34>;
0400 hsync-len = <34>;
0401 hfront-porch = <20>;
0402 vback-porch = <15>;
0403 vsync-len = <3>;
0404 vfront-porch = <4>;
0405 hsync-active = <0>;
0406 vsync-active = <0>;
0407 de-active = <1>;
0408 pixelclk-active = <1>;
0409 };
0410
0411 timing3: timing3 {
0412 panel-name = "ET0430";
0413 clock-frequency = <9000000>;
0414 hactive = <480>;
0415 vactive = <272>;
0416 hback-porch = <2>;
0417 hsync-len = <41>;
0418 hfront-porch = <2>;
0419 vback-porch = <2>;
0420 vsync-len = <10>;
0421 vfront-porch = <2>;
0422 hsync-active = <0>;
0423 vsync-active = <0>;
0424 de-active = <1>;
0425 pixelclk-active = <1>;
0426 };
0427
0428 timing4: timing4 {
0429 panel-name = "ET0500", "ET0700";
0430 clock-frequency = <33260000>;
0431 hactive = <800>;
0432 vactive = <480>;
0433 hback-porch = <88>;
0434 hsync-len = <128>;
0435 hfront-porch = <40>;
0436 vback-porch = <33>;
0437 vsync-len = <2>;
0438 vfront-porch = <10>;
0439 hsync-active = <0>;
0440 vsync-active = <0>;
0441 de-active = <1>;
0442 pixelclk-active = <1>;
0443 };
0444
0445 timing5: timing5 {
0446 panel-name = "ETQ570";
0447 clock-frequency = <6400000>;
0448 hactive = <320>;
0449 vactive = <240>;
0450 hback-porch = <38>;
0451 hsync-len = <30>;
0452 hfront-porch = <30>;
0453 vback-porch = <16>;
0454 vsync-len = <3>;
0455 vfront-porch = <4>;
0456 hsync-active = <0>;
0457 vsync-active = <0>;
0458 de-active = <1>;
0459 pixelclk-active = <1>;
0460 };
0461 };
0462 };
0463 };
0464
0465 &lradc {
0466 fsl,lradc-touchscreen-wires = <4>;
0467 status = "okay";
0468 };
0469
0470 &mac0 {
0471 phy-mode = "rmii";
0472 pinctrl-names = "default", "gpio_mode";
0473 pinctrl-0 = <&mac0_pins_a>;
0474 pinctrl-1 = <&tx28_mac0_pins_gpio>;
0475 status = "okay";
0476 };
0477
0478 &mac1 {
0479 phy-mode = "rmii";
0480 pinctrl-names = "default";
0481 pinctrl-0 = <&mac1_pins_a>;
0482 /* not enabled by default */
0483 };
0484
0485 &mxs_rtc {
0486 status = "okay";
0487 };
0488
0489 &ocotp {
0490 status = "okay";
0491 };
0492
0493 &pwm {
0494 pinctrl-names = "default";
0495 pinctrl-0 = <&pwm0_pins_a>;
0496 status = "okay";
0497 };
0498
0499 &pinctrl {
0500 pinctrl-names = "default";
0501 pinctrl-0 = <&hog_pins_a>;
0502
0503 hog_pins_a: hog@0 {
0504 reg = <0>;
0505 fsl,pinmux-ids = <
0506 MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */
0507 >;
0508 fsl,drive-strength = <MXS_DRIVE_4mA>;
0509 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0510 fsl,pull-up = <MXS_PULL_DISABLE>;
0511 };
0512
0513 tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins@0 {
0514 reg = <0>;
0515 fsl,pinmux-ids = <
0516 MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */
0517 MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */
0518 MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */
0519 >;
0520 fsl,drive-strength = <MXS_DRIVE_4mA>;
0521 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0522 fsl,pull-up = <MXS_PULL_DISABLE>;
0523 };
0524
0525 tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins@0 {
0526 reg = <0>;
0527 fsl,pinmux-ids = <
0528 MX28_PAD_LCD_D00__GPIO_1_0
0529 >;
0530 fsl,drive-strength = <MXS_DRIVE_4mA>;
0531 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0532 fsl,pull-up = <MXS_PULL_DISABLE>;
0533 };
0534
0535 tx28_lcdif_23bit_pins: tx28-lcdif-23bit@0 {
0536 reg = <0>;
0537 fsl,pinmux-ids = <
0538 /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */
0539 MX28_PAD_LCD_D01__LCD_D1
0540 MX28_PAD_LCD_D02__LCD_D2
0541 MX28_PAD_LCD_D03__LCD_D3
0542 MX28_PAD_LCD_D04__LCD_D4
0543 MX28_PAD_LCD_D05__LCD_D5
0544 MX28_PAD_LCD_D06__LCD_D6
0545 MX28_PAD_LCD_D07__LCD_D7
0546 MX28_PAD_LCD_D08__LCD_D8
0547 MX28_PAD_LCD_D09__LCD_D9
0548 MX28_PAD_LCD_D10__LCD_D10
0549 MX28_PAD_LCD_D11__LCD_D11
0550 MX28_PAD_LCD_D12__LCD_D12
0551 MX28_PAD_LCD_D13__LCD_D13
0552 MX28_PAD_LCD_D14__LCD_D14
0553 MX28_PAD_LCD_D15__LCD_D15
0554 MX28_PAD_LCD_D16__LCD_D16
0555 MX28_PAD_LCD_D17__LCD_D17
0556 MX28_PAD_LCD_D18__LCD_D18
0557 MX28_PAD_LCD_D19__LCD_D19
0558 MX28_PAD_LCD_D20__LCD_D20
0559 MX28_PAD_LCD_D21__LCD_D21
0560 MX28_PAD_LCD_D22__LCD_D22
0561 MX28_PAD_LCD_D23__LCD_D23
0562 >;
0563 fsl,drive-strength = <MXS_DRIVE_4mA>;
0564 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0565 fsl,pull-up = <MXS_PULL_DISABLE>;
0566 };
0567
0568 tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl@0 {
0569 reg = <0>;
0570 fsl,pinmux-ids = <
0571 MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */
0572 MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */
0573 >;
0574 fsl,drive-strength = <MXS_DRIVE_4mA>;
0575 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0576 fsl,pull-up = <MXS_PULL_DISABLE>;
0577 };
0578
0579 tx28_mac0_pins_gpio: tx28-mac0-gpio-pins@0 {
0580 reg = <0>;
0581 fsl,pinmux-ids = <
0582 MX28_PAD_ENET0_MDC__GPIO_4_0
0583 MX28_PAD_ENET0_MDIO__GPIO_4_1
0584 MX28_PAD_ENET0_RX_EN__GPIO_4_2
0585 MX28_PAD_ENET0_RXD0__GPIO_4_3
0586 MX28_PAD_ENET0_RXD1__GPIO_4_4
0587 MX28_PAD_ENET0_TX_EN__GPIO_4_6
0588 MX28_PAD_ENET0_TXD0__GPIO_4_7
0589 MX28_PAD_ENET0_TXD1__GPIO_4_8
0590 MX28_PAD_ENET_CLK__GPIO_4_16
0591 >;
0592 fsl,drive-strength = <MXS_DRIVE_4mA>;
0593 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0594 fsl,pull-up = <MXS_PULL_DISABLE>;
0595 };
0596
0597 tx28_pca9554_pins: tx28-pca9554-pins@0 {
0598 reg = <0>;
0599 fsl,pinmux-ids = <
0600 MX28_PAD_PWM3__GPIO_3_28
0601 >;
0602 fsl,drive-strength = <MXS_DRIVE_4mA>;
0603 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0604 fsl,pull-up = <MXS_PULL_DISABLE>;
0605 };
0606
0607 tx28_spi_gpio_pins: spi-gpiogrp@0 {
0608 reg = <0>;
0609 fsl,pinmux-ids = <
0610 MX28_PAD_AUART2_RX__GPIO_3_8
0611 MX28_PAD_AUART2_TX__GPIO_3_9
0612 MX28_PAD_SSP3_SCK__GPIO_2_24
0613 MX28_PAD_SSP3_MOSI__GPIO_2_25
0614 MX28_PAD_SSP3_MISO__GPIO_2_26
0615 MX28_PAD_SSP3_SS0__GPIO_2_27
0616 >;
0617 fsl,drive-strength = <MXS_DRIVE_8mA>;
0618 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0619 fsl,pull-up = <MXS_PULL_DISABLE>;
0620 };
0621
0622 tx28_tsc2007_pins: tx28-tsc2007-pins@0 {
0623 reg = <0>;
0624 fsl,pinmux-ids = <
0625 MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */
0626 >;
0627 fsl,drive-strength = <MXS_DRIVE_4mA>;
0628 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0629 fsl,pull-up = <MXS_PULL_DISABLE>;
0630 };
0631
0632
0633 tx28_usbphy0_pins: tx28-usbphy0-pins@0 {
0634 reg = <0>;
0635 fsl,pinmux-ids = <
0636 MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */
0637 MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */
0638 >;
0639 fsl,drive-strength = <MXS_DRIVE_12mA>;
0640 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0641 fsl,pull-up = <MXS_PULL_DISABLE>;
0642 };
0643
0644 tx28_usbphy1_pins: tx28-usbphy1-pins@0 {
0645 reg = <0>;
0646 fsl,pinmux-ids = <
0647 MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */
0648 MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */
0649 >;
0650 fsl,drive-strength = <MXS_DRIVE_12mA>;
0651 fsl,voltage = <MXS_VOLTAGE_HIGH>;
0652 fsl,pull-up = <MXS_PULL_DISABLE>;
0653 };
0654 };
0655
0656 &saif0 {
0657 pinctrl-names = "default";
0658 pinctrl-0 = <&saif0_pins_b>;
0659 fsl,saif-master;
0660 status = "okay";
0661 };
0662
0663 &saif1 {
0664 pinctrl-names = "default";
0665 pinctrl-0 = <&saif1_pins_a>;
0666 status = "okay";
0667 };
0668
0669 &ssp0 {
0670 compatible = "fsl,imx28-mmc";
0671 pinctrl-names = "default", "special";
0672 pinctrl-0 = <&mmc0_4bit_pins_a
0673 &mmc0_cd_cfg
0674 &mmc0_sck_cfg>;
0675 bus-width = <4>;
0676 status = "okay";
0677 };
0678
0679 &ssp3 {
0680 compatible = "fsl,imx28-spi";
0681 pinctrl-names = "default";
0682 pinctrl-0 = <&spi3_pins_a>;
0683 clock-frequency = <57600000>;
0684 status = "okay";
0685 };
0686
0687 &usb0 {
0688 vbus-supply = <®_usb0_vbus>;
0689 disable-over-current;
0690 dr_mode = "peripheral";
0691 status = "okay";
0692 };
0693
0694 &usb1 {
0695 vbus-supply = <®_usb1_vbus>;
0696 disable-over-current;
0697 dr_mode = "host";
0698 status = "okay";
0699 };
0700
0701 &usbphy0 {
0702 pinctrl-names = "default";
0703 pinctrl-0 = <&tx28_usbphy0_pins>;
0704 phy_type = "utmi";
0705 status = "okay";
0706 };
0707
0708 &usbphy1 {
0709 pinctrl-names = "default";
0710 pinctrl-0 = <&tx28_usbphy1_pins>;
0711 phy_type = "utmi";
0712 status = "okay";
0713 };