Back to home page

OSCL-LXR

 
 

    


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 = &reg_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 = <&reg_can_xcvr>;
0263         status = "okay";
0264 };
0265 
0266 &can1 {
0267         pinctrl-names = "default";
0268         pinctrl-0 = <&can1_pins_a>;
0269         xceiver-supply = <&reg_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 = <&reg_2p5v>;
0300                 VDDIO-supply = <&reg_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 = <&reg_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 = <&reg_usb0_vbus>;
0689         disable-over-current;
0690         dr_mode = "peripheral";
0691         status = "okay";
0692 };
0693 
0694 &usb1 {
0695         vbus-supply = <&reg_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 };