0001 /*
0002 * Copyright 2011 Freescale Semiconductor, Inc.
0003 * Copyright 2011 Linaro Ltd.
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 #include <dt-bindings/clock/imx6qdl-clock.h>
0044 #include <dt-bindings/gpio/gpio.h>
0045 #include <dt-bindings/input/input.h>
0046
0047 / {
0048 chosen {
0049 stdout-path = &uart2;
0050 };
0051
0052 memory@10000000 {
0053 device_type = "memory";
0054 reg = <0x10000000 0x40000000>;
0055 };
0056
0057 regulators {
0058 compatible = "simple-bus";
0059 #address-cells = <1>;
0060 #size-cells = <0>;
0061
0062 reg_2p5v: regulator@0 {
0063 compatible = "regulator-fixed";
0064 reg = <0>;
0065 regulator-name = "2P5V";
0066 regulator-min-microvolt = <2500000>;
0067 regulator-max-microvolt = <2500000>;
0068 regulator-always-on;
0069 };
0070
0071 reg_3p3v: regulator@1 {
0072 compatible = "regulator-fixed";
0073 reg = <1>;
0074 regulator-name = "3P3V";
0075 regulator-min-microvolt = <3300000>;
0076 regulator-max-microvolt = <3300000>;
0077 regulator-always-on;
0078 };
0079
0080 reg_usb_otg_vbus: regulator@2 {
0081 compatible = "regulator-fixed";
0082 reg = <2>;
0083 regulator-name = "usb_otg_vbus";
0084 regulator-min-microvolt = <5000000>;
0085 regulator-max-microvolt = <5000000>;
0086 gpio = <&gpio3 22 0>;
0087 enable-active-high;
0088 };
0089
0090 reg_can_xcvr: regulator@3 {
0091 compatible = "regulator-fixed";
0092 reg = <3>;
0093 regulator-name = "CAN XCVR";
0094 regulator-min-microvolt = <3300000>;
0095 regulator-max-microvolt = <3300000>;
0096 pinctrl-names = "default";
0097 pinctrl-0 = <&pinctrl_can_xcvr>;
0098 gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
0099 };
0100
0101 reg_1p5v: regulator@4 {
0102 compatible = "regulator-fixed";
0103 reg = <4>;
0104 regulator-name = "1P5V";
0105 regulator-min-microvolt = <1500000>;
0106 regulator-max-microvolt = <1500000>;
0107 regulator-always-on;
0108 };
0109
0110 reg_1p8v: regulator@5 {
0111 compatible = "regulator-fixed";
0112 reg = <5>;
0113 regulator-name = "1P8V";
0114 regulator-min-microvolt = <1800000>;
0115 regulator-max-microvolt = <1800000>;
0116 regulator-always-on;
0117 };
0118
0119 reg_2p8v: regulator@6 {
0120 compatible = "regulator-fixed";
0121 reg = <6>;
0122 regulator-name = "2P8V";
0123 regulator-min-microvolt = <2800000>;
0124 regulator-max-microvolt = <2800000>;
0125 regulator-always-on;
0126 };
0127
0128 reg_usb_h1_vbus: regulator@7 {
0129 compatible = "regulator-fixed";
0130 reg = <7>;
0131 pinctrl-names = "default";
0132 pinctrl-0 = <&pinctrl_usbh1>;
0133 regulator-name = "usb_h1_vbus";
0134 regulator-min-microvolt = <3300000>;
0135 regulator-max-microvolt = <3300000>;
0136 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
0137 enable-active-high;
0138 };
0139 };
0140
0141 mipi_xclk: mipi_xclk {
0142 compatible = "pwm-clock";
0143 #clock-cells = <0>;
0144 clock-frequency = <22000000>;
0145 clock-output-names = "mipi_pwm3";
0146 pwms = <&pwm3 0 45>; /* 1 / 45 ns = 22 MHz */
0147 status = "okay";
0148 };
0149
0150 gpio-keys {
0151 compatible = "gpio-keys";
0152 pinctrl-names = "default";
0153 pinctrl-0 = <&pinctrl_gpio_keys>;
0154
0155 power {
0156 label = "Power Button";
0157 gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
0158 linux,code = <KEY_POWER>;
0159 wakeup-source;
0160 };
0161
0162 menu {
0163 label = "Menu";
0164 gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
0165 linux,code = <KEY_MENU>;
0166 };
0167
0168 home {
0169 label = "Home";
0170 gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
0171 linux,code = <KEY_HOME>;
0172 };
0173
0174 back {
0175 label = "Back";
0176 gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
0177 linux,code = <KEY_BACK>;
0178 };
0179
0180 volume-up {
0181 label = "Volume Up";
0182 gpios = <&gpio7 13 GPIO_ACTIVE_LOW>;
0183 linux,code = <KEY_VOLUMEUP>;
0184 };
0185
0186 volume-down {
0187 label = "Volume Down";
0188 gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;
0189 linux,code = <KEY_VOLUMEDOWN>;
0190 };
0191 };
0192
0193 sound {
0194 compatible = "fsl,imx6q-sabrelite-sgtl5000",
0195 "fsl,imx-audio-sgtl5000";
0196 model = "imx6q-sabrelite-sgtl5000";
0197 ssi-controller = <&ssi1>;
0198 audio-codec = <&codec>;
0199 audio-routing =
0200 "MIC_IN", "Mic Jack",
0201 "Mic Jack", "Mic Bias",
0202 "Headphone Jack", "HP_OUT";
0203 mux-int-port = <1>;
0204 mux-ext-port = <4>;
0205 };
0206
0207 backlight_lcd: backlight-lcd {
0208 compatible = "pwm-backlight";
0209 pwms = <&pwm1 0 5000000>;
0210 brightness-levels = <0 4 8 16 32 64 128 255>;
0211 default-brightness-level = <7>;
0212 power-supply = <®_3p3v>;
0213 status = "okay";
0214 };
0215
0216 backlight_lvds: backlight-lvds {
0217 compatible = "pwm-backlight";
0218 pwms = <&pwm4 0 5000000>;
0219 brightness-levels = <0 4 8 16 32 64 128 255>;
0220 default-brightness-level = <7>;
0221 power-supply = <®_3p3v>;
0222 status = "okay";
0223 };
0224
0225 lcd_display: disp0 {
0226 compatible = "fsl,imx-parallel-display";
0227 #address-cells = <1>;
0228 #size-cells = <0>;
0229 interface-pix-fmt = "bgr666";
0230 pinctrl-names = "default";
0231 pinctrl-0 = <&pinctrl_j15>;
0232 status = "okay";
0233
0234 port@0 {
0235 reg = <0>;
0236
0237 lcd_display_in: endpoint {
0238 remote-endpoint = <&ipu1_di0_disp0>;
0239 };
0240 };
0241
0242 port@1 {
0243 reg = <1>;
0244
0245 lcd_display_out: endpoint {
0246 remote-endpoint = <&lcd_panel_in>;
0247 };
0248 };
0249 };
0250
0251 panel-lcd {
0252 compatible = "okaya,rs800480t-7x0gp";
0253 backlight = <&backlight_lcd>;
0254
0255 port {
0256 lcd_panel_in: endpoint {
0257 remote-endpoint = <&lcd_display_out>;
0258 };
0259 };
0260 };
0261
0262 panel-lvds0 {
0263 compatible = "hannstar,hsd100pxn1";
0264 backlight = <&backlight_lvds>;
0265
0266 port {
0267 panel_in: endpoint {
0268 remote-endpoint = <&lvds0_out>;
0269 };
0270 };
0271 };
0272 };
0273
0274 &ipu1_csi0_from_ipu1_csi0_mux {
0275 bus-width = <8>;
0276 data-shift = <12>; /* Lines 19:12 used */
0277 hsync-active = <1>;
0278 vync-active = <1>;
0279 };
0280
0281 &ipu1_csi0_mux_from_parallel_sensor {
0282 remote-endpoint = <&ov5642_to_ipu1_csi0_mux>;
0283 };
0284
0285 &ipu1_csi0 {
0286 pinctrl-names = "default";
0287 pinctrl-0 = <&pinctrl_ipu1_csi0>;
0288 };
0289
0290 &audmux {
0291 pinctrl-names = "default";
0292 pinctrl-0 = <&pinctrl_audmux>;
0293 status = "okay";
0294 };
0295
0296 &can1 {
0297 pinctrl-names = "default";
0298 pinctrl-0 = <&pinctrl_can1>;
0299 xceiver-supply = <®_can_xcvr>;
0300 status = "okay";
0301 };
0302
0303 &clks {
0304 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
0305 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
0306 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
0307 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
0308 };
0309
0310 &ecspi1 {
0311 cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
0312 pinctrl-names = "default";
0313 pinctrl-0 = <&pinctrl_ecspi1>;
0314 status = "okay";
0315
0316 flash: flash@0 {
0317 compatible = "sst,sst25vf016b", "jedec,spi-nor";
0318 spi-max-frequency = <20000000>;
0319 reg = <0>;
0320 };
0321 };
0322
0323 &fec {
0324 pinctrl-names = "default";
0325 pinctrl-0 = <&pinctrl_enet>;
0326 phy-mode = "rgmii";
0327 phy-handle = <ðphy>;
0328 phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
0329 status = "okay";
0330
0331 mdio {
0332 #address-cells = <1>;
0333 #size-cells = <0>;
0334
0335 ethphy: ethernet-phy {
0336 compatible = "ethernet-phy-ieee802.3-c22";
0337 txen-skew-ps = <0>;
0338 txc-skew-ps = <3000>;
0339 rxdv-skew-ps = <0>;
0340 rxc-skew-ps = <3000>;
0341 rxd0-skew-ps = <0>;
0342 rxd1-skew-ps = <0>;
0343 rxd2-skew-ps = <0>;
0344 rxd3-skew-ps = <0>;
0345 txd0-skew-ps = <0>;
0346 txd1-skew-ps = <0>;
0347 txd2-skew-ps = <0>;
0348 txd3-skew-ps = <0>;
0349 };
0350 };
0351 };
0352
0353 &hdmi {
0354 ddc-i2c-bus = <&i2c2>;
0355 status = "okay";
0356 };
0357
0358 &i2c1 {
0359 clock-frequency = <100000>;
0360 pinctrl-names = "default";
0361 pinctrl-0 = <&pinctrl_i2c1>;
0362 status = "okay";
0363
0364 codec: sgtl5000@a {
0365 compatible = "fsl,sgtl5000";
0366 reg = <0x0a>;
0367 clocks = <&clks IMX6QDL_CLK_CKO>;
0368 VDDA-supply = <®_2p5v>;
0369 VDDIO-supply = <®_3p3v>;
0370 };
0371 };
0372
0373 &i2c2 {
0374 clock-frequency = <100000>;
0375 pinctrl-names = "default";
0376 pinctrl-0 = <&pinctrl_i2c2>;
0377 status = "okay";
0378
0379 ov5640: camera@40 {
0380 compatible = "ovti,ov5640";
0381 pinctrl-names = "default";
0382 pinctrl-0 = <&pinctrl_ov5640>;
0383 reg = <0x40>;
0384 clocks = <&mipi_xclk>;
0385 clock-names = "xclk";
0386 DOVDD-supply = <®_1p8v>;
0387 AVDD-supply = <®_2p8v>;
0388 DVDD-supply = <®_1p5v>;
0389 reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; /* NANDF_D5 */
0390 powerdown-gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>; /* NANDF_WP_B */
0391
0392 port {
0393 ov5640_to_mipi_csi2: endpoint {
0394 remote-endpoint = <&mipi_csi2_in>;
0395 clock-lanes = <0>;
0396 data-lanes = <1 2>;
0397 };
0398 };
0399 };
0400
0401 ov5642: camera@42 {
0402 compatible = "ovti,ov5642";
0403 pinctrl-names = "default";
0404 pinctrl-0 = <&pinctrl_ov5642>;
0405 clocks = <&clks IMX6QDL_CLK_CKO2>;
0406 clock-names = "xclk";
0407 reg = <0x42>;
0408 reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
0409 powerdown-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
0410 gp-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
0411 status = "disabled";
0412
0413 port {
0414 ov5642_to_ipu1_csi0_mux: endpoint {
0415 remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
0416 bus-width = <8>;
0417 hsync-active = <1>;
0418 vsync-active = <1>;
0419 };
0420 };
0421 };
0422 };
0423
0424 &i2c3 {
0425 clock-frequency = <100000>;
0426 pinctrl-names = "default";
0427 pinctrl-0 = <&pinctrl_i2c3>;
0428 status = "okay";
0429 };
0430
0431 &iomuxc {
0432 pinctrl-names = "default";
0433 pinctrl-0 = <&pinctrl_hog>;
0434
0435 imx6q-sabrelite {
0436 pinctrl_hog: hoggrp {
0437 fsl,pins = <
0438 /* SGTL5000 sys_mclk */
0439 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x030b0
0440 >;
0441 };
0442
0443 pinctrl_audmux: audmuxgrp {
0444 fsl,pins = <
0445 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x130b0
0446 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x130b0
0447 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x110b0
0448 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x130b0
0449 >;
0450 };
0451
0452 pinctrl_can1: can1grp {
0453 fsl,pins = <
0454 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b0
0455 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b0
0456 >;
0457 };
0458
0459 pinctrl_can_xcvr: can-xcvrgrp {
0460 fsl,pins = <
0461 /* Flexcan XCVR enable */
0462 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
0463 >;
0464 };
0465
0466 pinctrl_ecspi1: ecspi1grp {
0467 fsl,pins = <
0468 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
0469 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
0470 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
0471 MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x000b1 /* CS */
0472 >;
0473 };
0474
0475 pinctrl_enet: enetgrp {
0476 fsl,pins = <
0477 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x100b0
0478 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x100b0
0479 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x10030
0480 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x10030
0481 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x10030
0482 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x10030
0483 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x10030
0484 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x10030
0485 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0
0486 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
0487 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
0488 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
0489 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
0490 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
0491 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
0492 /* Phy reset */
0493 MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x000b0
0494 >;
0495 };
0496
0497 pinctrl_gpio_keys: gpio-keysgrp {
0498 fsl,pins = <
0499 /* Power Button */
0500 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
0501 /* Menu Button */
0502 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
0503 /* Home Button */
0504 MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0
0505 /* Back Button */
0506 MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
0507 /* Volume Up Button */
0508 MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b0b0
0509 /* Volume Down Button */
0510 MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x1b0b0
0511 >;
0512 };
0513
0514 pinctrl_i2c1: i2c1grp {
0515 fsl,pins = <
0516 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
0517 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
0518 >;
0519 };
0520
0521 pinctrl_i2c2: i2c2grp {
0522 fsl,pins = <
0523 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
0524 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
0525 >;
0526 };
0527
0528 pinctrl_i2c3: i2c3grp {
0529 fsl,pins = <
0530 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
0531 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
0532 >;
0533 };
0534
0535 pinctrl_ipu1_csi0: ipu1csi0grp {
0536 fsl,pins = <
0537 MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x1b0b0
0538 MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x1b0b0
0539 MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x1b0b0
0540 MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x1b0b0
0541 MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x1b0b0
0542 MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x1b0b0
0543 MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x1b0b0
0544 MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x1b0b0
0545 MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
0546 MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x1b0b0
0547 MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x1b0b0
0548 MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x1b0b0
0549 >;
0550 };
0551
0552 pinctrl_j15: j15grp {
0553 fsl,pins = <
0554 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10
0555 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x10
0556 MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10
0557 MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10
0558 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10
0559 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10
0560 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10
0561 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10
0562 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10
0563 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10
0564 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10
0565 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10
0566 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10
0567 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10
0568 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10
0569 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10
0570 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10
0571 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10
0572 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10
0573 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10
0574 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10
0575 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10
0576 MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10
0577 MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10
0578 MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10
0579 MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10
0580 MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10
0581 MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10
0582 >;
0583 };
0584
0585 pinctrl_ov5640: ov5640grp {
0586 fsl,pins = <
0587 MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x000b0
0588 MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09 0x0b0b0
0589 >;
0590 };
0591
0592 pinctrl_ov5642: ov5642grp {
0593 fsl,pins = <
0594 MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x1b0b0
0595 MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x1b0b0
0596 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x130b0
0597 MX6QDL_PAD_GPIO_3__CCM_CLKO2 0x000b0
0598 >;
0599 };
0600
0601 pinctrl_pwm1: pwm1grp {
0602 fsl,pins = <
0603 MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x1b0b1
0604 >;
0605 };
0606
0607 pinctrl_pwm3: pwm3grp {
0608 fsl,pins = <
0609 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
0610 >;
0611 };
0612
0613 pinctrl_pwm4: pwm4grp {
0614 fsl,pins = <
0615 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
0616 >;
0617 };
0618
0619 pinctrl_uart1: uart1grp {
0620 fsl,pins = <
0621 MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
0622 MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
0623 >;
0624 };
0625
0626 pinctrl_uart2: uart2grp {
0627 fsl,pins = <
0628 MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
0629 MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
0630 >;
0631 };
0632
0633 pinctrl_usbh1: usbh1grp {
0634 fsl,pins = <
0635 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x030b0
0636 >;
0637 };
0638
0639 pinctrl_usbotg: usbotggrp {
0640 fsl,pins = <
0641 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
0642 MX6QDL_PAD_KEY_COL4__USB_OTG_OC 0x1b0b0
0643 /* power enable, high active */
0644 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x000b0
0645 >;
0646 };
0647
0648 pinctrl_usdhc3: usdhc3grp {
0649 fsl,pins = <
0650 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
0651 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
0652 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
0653 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
0654 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
0655 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
0656 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0 /* CD */
0657 MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 /* WP */
0658 >;
0659 };
0660
0661 pinctrl_usdhc4: usdhc4grp {
0662 fsl,pins = <
0663 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
0664 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
0665 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
0666 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
0667 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
0668 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
0669 MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x1b0b0 /* CD */
0670 >;
0671 };
0672 };
0673 };
0674
0675 &ipu1_di0_disp0 {
0676 remote-endpoint = <&lcd_display_in>;
0677 };
0678
0679 &ldb {
0680 status = "okay";
0681
0682 lvds-channel@0 {
0683 status = "okay";
0684
0685 port@4 {
0686 reg = <4>;
0687
0688 lvds0_out: endpoint {
0689 remote-endpoint = <&panel_in>;
0690 };
0691 };
0692 };
0693 };
0694
0695 &pcie {
0696 status = "okay";
0697 };
0698
0699 &pwm1 {
0700 #pwm-cells = <2>;
0701 pinctrl-names = "default";
0702 pinctrl-0 = <&pinctrl_pwm1>;
0703 status = "okay";
0704 };
0705
0706 &pwm3 {
0707 #pwm-cells = <2>;
0708 pinctrl-names = "default";
0709 pinctrl-0 = <&pinctrl_pwm3>;
0710 status = "okay";
0711 };
0712
0713 &pwm4 {
0714 #pwm-cells = <2>;
0715 pinctrl-names = "default";
0716 pinctrl-0 = <&pinctrl_pwm4>;
0717 status = "okay";
0718 };
0719
0720 &ssi1 {
0721 status = "okay";
0722 };
0723
0724 &uart1 {
0725 pinctrl-names = "default";
0726 pinctrl-0 = <&pinctrl_uart1>;
0727 status = "okay";
0728 };
0729
0730 &uart2 {
0731 pinctrl-names = "default";
0732 pinctrl-0 = <&pinctrl_uart2>;
0733 status = "okay";
0734 };
0735
0736 &usbh1 {
0737 vbus-supply = <®_usb_h1_vbus>;
0738 status = "okay";
0739 };
0740
0741 &usbotg {
0742 vbus-supply = <®_usb_otg_vbus>;
0743 pinctrl-names = "default";
0744 pinctrl-0 = <&pinctrl_usbotg>;
0745 disable-over-current;
0746 status = "okay";
0747 };
0748
0749 &usdhc3 {
0750 pinctrl-names = "default";
0751 pinctrl-0 = <&pinctrl_usdhc3>;
0752 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
0753 wp-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
0754 vmmc-supply = <®_3p3v>;
0755 status = "okay";
0756 };
0757
0758 &usdhc4 {
0759 pinctrl-names = "default";
0760 pinctrl-0 = <&pinctrl_usdhc4>;
0761 cd-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
0762 vmmc-supply = <®_3p3v>;
0763 status = "okay";
0764 };
0765
0766 &mipi_csi {
0767 status = "okay";
0768
0769 port@0 {
0770 reg = <0>;
0771
0772 mipi_csi2_in: endpoint {
0773 remote-endpoint = <&ov5640_to_mipi_csi2>;
0774 clock-lanes = <0>;
0775 data-lanes = <1 2>;
0776 };
0777 };
0778 };