Merge tag 'imx-dt-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo...
authorOlof Johansson <olof@lixom.net>
Wed, 6 Jul 2016 04:00:05 +0000 (21:00 -0700)
committerOlof Johansson <olof@lixom.net>
Wed, 6 Jul 2016 04:00:05 +0000 (21:00 -0700)
The i.MX device tree update for 4.8:
 - Add two i.MX23/STMP3780 based MP3 player device support, Creative
   X-Fi3 and SanDisk Sansa Fuze+
 - Add the support of Auvidea H100 device which is a SolidRun MicroSOM
   baseboard
 - Restructure i.MX7Dual DTS files to support i.MX7Solo and add Toradex
   Colibri iMX7S/iMX7D boards
 - Device additions and enabling for various boards: mmc device for
   utilite-pro, IRQ controller and CAN support for TS-4800, display and
   touchscreen support for imx7d-sdb, SAI audio and LCD support for
   imx6ul-14x14-evk, gpio power off support for imx6q-bx50v3, etc.
 - Update the boards from Freescale/NXP to use WDOG_B pin for reset
 - PCI reset polarity correction for imx6qdl-sabresd and imx6q-tbs2910
 - Update i.MX board dts files to use generic uart-has-rtscts DT
   property instead of vendor specific one
 - DTC warning fixing for a few boards which are mostly mismatch between
   unit-address and reg property
 - Remove SION setting from all mux modes on i.MX25

* tag 'imx-dt-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (47 commits)
  ARM: dts: imx7: add Toradex Colibri iMX7S/iMX7D support
  ARM: dts: imx7d: move input header into base device tree
  ARM: dts: imx7d: recreate imx7d.dtsi with i.MX 7Dual specifics
  ARM: dts: imx7d: use imx7s.dtsi as base device tree
  ARM: dts: imx7d-sdb: Add support for touchscreen
  ARM: dts: imx7d-sdb: Add display support
  ARM: dts: imx7d: Add SPI support
  ARM: dts: imx6q-bx50v3: Add gpio power off support
  ARM: dts: imx6ul-pico-hobbit: Fix Ethernet PHY reset GPIO
  ARM: dts: imx6q-tbs2910: fix pcie reset polarity
  ARM: dts: imx6sx-sdb: Use WDOG_B pin reset
  ARM: dts: imx6ul-evk: Use WDOG_B pin reset
  ARM: dts: imx7d-sdb: Use WDOG_B pin reset
  ARM: dts: imx6qdl-sabresd: Use WDOG_B pin reset
  ARM: dts: utilite-pro: add mmc card slot support
  ARM: dts: imx6q-cm-fx6: fix the operation points
  ARM: dts: imx6qdl.dtsi: add "arm,shared-override" for pl310
  ARM: imx25-pinfunc: remove SION from all modes
  ARM: imx25-pinfunc: document SION being important for MX25_PAD_SD1_CMD__SD1_CMD
  ARM: dts: ls1021a: Add dis_rxdet_inp3_quirk property to USB3 node
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
75 files changed:
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx1-ads.dts
arch/arm/boot/dts/imx1-apf9328.dts
arch/arm/boot/dts/imx23-sansa.dts [new file with mode: 0644]
arch/arm/boot/dts/imx23-xfi3.dts [new file with mode: 0644]
arch/arm/boot/dts/imx23.dtsi
arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
arch/arm/boot/dts/imx25-pdk.dts
arch/arm/boot/dts/imx25-pinfunc.h
arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi
arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts
arch/arm/boot/dts/imx27-pdk.dts
arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
arch/arm/boot/dts/imx28-apf28dev.dts
arch/arm/boot/dts/imx28-cfa10049.dts
arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi
arch/arm/boot/dts/imx28-evk.dts
arch/arm/boot/dts/imx28-tx28.dts
arch/arm/boot/dts/imx28.dtsi
arch/arm/boot/dts/imx31-bug.dts
arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts
arch/arm/boot/dts/imx35-pdk.dts
arch/arm/boot/dts/imx51-babbage.dts
arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
arch/arm/boot/dts/imx51-ts4800.dts
arch/arm/boot/dts/imx53-smd.dts
arch/arm/boot/dts/imx53-tqma53.dtsi
arch/arm/boot/dts/imx53-tx53.dtsi
arch/arm/boot/dts/imx6dl-riotboard.dts
arch/arm/boot/dts/imx6q-apalis-ixora.dts
arch/arm/boot/dts/imx6q-arm2.dts
arch/arm/boot/dts/imx6q-ba16.dtsi
arch/arm/boot/dts/imx6q-bx50v3.dtsi
arch/arm/boot/dts/imx6q-cm-fx6.dts
arch/arm/boot/dts/imx6q-h100.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-tbs2910.dts
arch/arm/boot/dts/imx6q-utilite-pro.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-apalis.dtsi
arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
arch/arm/boot/dts/imx6qdl-microsom.dtsi
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
arch/arm/boot/dts/imx6qdl-sabresd.dtsi
arch/arm/boot/dts/imx6qdl-tx6.dtsi
arch/arm/boot/dts/imx6qdl-wandboard.dtsi
arch/arm/boot/dts/imx6qdl.dtsi
arch/arm/boot/dts/imx6sl-warp.dts
arch/arm/boot/dts/imx6sl.dtsi
arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
arch/arm/boot/dts/imx6sx-sdb.dtsi
arch/arm/boot/dts/imx6sx.dtsi
arch/arm/boot/dts/imx6ul-14x14-evk.dts
arch/arm/boot/dts/imx6ul-pico-hobbit.dts
arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts
arch/arm/boot/dts/imx6ul-tx6ul.dtsi
arch/arm/boot/dts/imx6ul.dtsi
arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx7-colibri.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx7d-cl-som-imx7.dts
arch/arm/boot/dts/imx7d-colibri-eval-v3.dts [new file with mode: 0644]
arch/arm/boot/dts/imx7d-colibri.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx7d-nitrogen7.dts
arch/arm/boot/dts/imx7d-pinfunc.h
arch/arm/boot/dts/imx7d-sdb.dts
arch/arm/boot/dts/imx7d.dtsi
arch/arm/boot/dts/imx7s-colibri-eval-v3.dts [new file with mode: 0644]
arch/arm/boot/dts/imx7s-colibri.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx7s.dtsi [new file with mode: 0644]
arch/arm/boot/dts/ls1021a.dtsi

index 1739959..7bbda1e 100644 (file)
@@ -362,6 +362,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-gw54xx.dtb \
        imx6q-gw551x.dtb \
        imx6q-gw552x.dtb \
+       imx6q-h100.dtb \
        imx6q-hummingboard.dtb \
        imx6q-icore-rqs.dtb \
        imx6q-marsboard.dtb \
@@ -383,6 +384,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-tx6q-1110.dtb \
        imx6q-tx6q-11x0-mb7.dtb \
        imx6q-udoo.dtb \
+       imx6q-utilite-pro.dtb \
        imx6q-wandboard.dtb \
        imx6q-wandboard-revb1.dtb \
        imx6qp-nitrogen6_max.dtb \
@@ -405,9 +407,11 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ul-tx6ul-mainboard.dtb
 dtb-$(CONFIG_SOC_IMX7D) += \
        imx7d-cl-som-imx7.dtb \
+       imx7d-colibri-eval-v3.dtb \
        imx7d-nitrogen7.dtb \
        imx7d-sbc-imx7.dtb \
-       imx7d-sdb.dtb
+       imx7d-sdb.dtb \
+       imx7s-colibri-eval-v3.dtb
 dtb-$(CONFIG_SOC_LS1021A) += \
        ls1021a-qds.dtb \
        ls1021a-twr.dtb
@@ -422,7 +426,9 @@ dtb-$(CONFIG_SOC_VF610) += \
 dtb-$(CONFIG_ARCH_MXS) += \
        imx23-evk.dtb \
        imx23-olinuxino.dtb \
+       imx23-sansa.dtb \
        imx23-stmp378x_devb.dtb \
+       imx23-xfi3.dtb \
        imx28-apf28.dtb \
        imx28-apf28dev.dtb \
        imx28-apx4devkit.dtb \
index af4eee5..f504986 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 07d92fb..e8b4b52 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
diff --git a/arch/arm/boot/dts/imx23-sansa.dts b/arch/arm/boot/dts/imx23-sansa.dts
new file mode 100644 (file)
index 0000000..4ec32f4
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2013-2016 Marek Vasut <marek.vasut@gmail.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of
+ *     the License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/dts-v1/;
+#include "imx23.dtsi"
+
+/ {
+       model = "SanDisk Sansa Fuze+";
+       compatible = "sandisk,sansa_fuze_plus", "fsl,imx23";
+
+       memory {
+               reg = <0x40000000 0x04000000>;
+       };
+
+       apb@80000000 {
+               apbh@80000000 {
+                       ssp0: ssp@80010000 {
+                               compatible = "fsl,imx23-mmc";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
+                               bus-width = <4>;
+                               vmmc-supply = <&reg_vddio_sd0>;
+                               cd-inverted;
+                               status = "okay";
+                       };
+
+                       ssp1: ssp@80034000 {
+                               compatible = "fsl,imx23-mmc";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mmc1_8bit_pins_a>;
+                               bus-width = <8>;
+                               vmmc-supply = <&reg_vddio_sd1>;
+                               non-removable;
+                               status = "okay";
+                       };
+
+                       pinctrl@80018000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&hog_pins_a>;
+
+                               hog_pins_a: hog@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX23_PAD_GPMI_D08__GPIO_0_8
+                                               MX23_PAD_PWM3__GPIO_1_29
+                                               MX23_PAD_AUART1_RTS__GPIO_0_27
+                                               MX23_PAD_AUART1_CTS__GPIO_0_26
+                                               MX23_PAD_I2C_SCL__I2C_SCL
+                                               MX23_PAD_I2C_SDA__I2C_SDA
+                                               MX23_PAD_LCD_DOTCK__GPIO_1_22
+                                               MX23_PAD_LCD_HSYNC__GPIO_1_24
+                                               MX23_PAD_PWM3__GPIO_1_29
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+                       };
+               };
+
+               apbx@80040000 {
+                       pwm: pwm@80064000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwm2_pins_a>;
+                               status = "okay";
+                       };
+
+                       duart: serial@80070000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&duart_pins_a>;
+                               status = "okay";
+                       };
+
+                       usbphy0: usbphy@8007c000 {
+                               status = "okay";
+                       };
+
+                       lradc@80050000 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               usb0: usb@80080000 {
+                       dr_mode = "peripheral";
+                       status = "okay";
+               };
+       };
+
+       reg_vddio_sd0: regulator-vddio-sd0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vddio-sd0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio0 8 0>;
+       };
+
+       reg_vddio_sd1: regulator-vddio-sd1 {
+               compatible = "regulator-fixed";
+               regulator-name = "vddio-sd1";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 29 0>;
+       };
+
+       reg_vdd_touchpad: regulator-vdd-touchpad0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-touchpad0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio0 26 0>;
+               regulator-always-on;
+               enable-active-low;
+       };
+
+       reg_vdd_tuner: regulator-vdd-tuner0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-tuner0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio0 29 0>;
+               regulator-always-on;
+               enable-active-low;
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm 2 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+       };
+
+       i2c-0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "i2c-gpio";
+               gpios = <
+                       &gpio1 24 0             /* SDA */
+                       &gpio1 22 0             /* SCL */
+               >;
+               i2c-gpio,delay-us = <2>;        /* ~100 kHz */
+       };
+
+       i2c-1 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "i2c-gpio";
+               gpios = <
+                       &gpio0 31 0             /* SDA */
+                       &gpio0 30 0             /* SCL */
+               >;
+               i2c-gpio,delay-us = <2>;        /* ~100 kHz */
+
+               touch: touch@20 {
+                       compatible = "synaptics,synaptics_i2c";
+                       reg = <0x20>;
+               };
+
+               eeprom: eeprom@50 {
+                       compatible = "atmel,24c64";
+                       reg = <0x50>;
+                       pagesize = <32>;
+               };
+       };
+
+};
diff --git a/arch/arm/boot/dts/imx23-xfi3.dts b/arch/arm/boot/dts/imx23-xfi3.dts
new file mode 100644 (file)
index 0000000..025cf94
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2013-2016 Marek Vasut <marek.vasut@gmail.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of
+ *     the License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/dts-v1/;
+#include "imx23.dtsi"
+
+/ {
+       model = "Creative ZEN X-Fi3";
+       compatible = "creative,x-fi3", "fsl,imx23";
+
+       memory {
+               reg = <0x40000000 0x04000000>;
+       };
+
+       apb@80000000 {
+               apbh@80000000 {
+                       ssp0: ssp@80010000 {
+                               compatible = "fsl,imx23-mmc";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
+                               bus-width = <4>;
+                               vmmc-supply = <&reg_vddio_sd0>;
+                               cd-inverted;
+                               status = "okay";
+                       };
+
+                       ssp1: ssp@80034000 {
+                               compatible = "fsl,imx23-mmc";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mmc1_4bit_pins_a>;
+                               bus-width = <4>;
+                               non-removable;
+                               status = "okay";
+                       };
+
+                       pinctrl@80018000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&hog_pins_a>;
+
+                               hog_pins_a: hog@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX23_PAD_GPMI_D07__GPIO_0_7
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <0>;
+                               };
+
+                               key_pins_a: keys@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX23_PAD_ROTARYA__GPIO_2_7
+                                               MX23_PAD_ROTARYB__GPIO_2_8
+                                       >;
+                                       fsl,drive-strength = <0>;
+                                       fsl,voltage = <1>;
+                                       fsl,pull-up = <1>;
+                               };
+                       };
+               };
+
+               apbx@80040000 {
+                       i2c: i2c@80058000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&i2c_pins_a>;
+                               status = "okay";
+                       };
+
+                       pwm: pwm@80064000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pwm2_pins_a>;
+                               status = "okay";
+                       };
+
+                       duart: serial@80070000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&duart_pins_a>;
+                               status = "okay";
+                       };
+
+                       auart1: serial@8006e000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&auart1_2pins_a>;
+                               status = "okay";
+                       };
+
+                       usbphy0: usbphy@8007c000 {
+                               status = "okay";
+                       };
+
+                       lradc@80050000 {
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               usb0: usb@80080000 {
+                       dr_mode = "peripheral";
+                       status = "okay";
+               };
+       };
+
+       reg_vddio_sd0: regulator-vddio-sd0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vddio-sd0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio0 7 0>;
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm 2 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&key_pins_a>;
+
+               voldown {
+                       label = "volume-down";
+                       linux,code = <114>;
+                       gpios = <&gpio2 7 0>;
+                       debounce-interval = <20>;
+               };
+
+               volup {
+                       label = "volume-up";
+                       linux,code = <115>;
+                       gpios = <&gpio2 8 0>;
+                       debounce-interval = <20>;
+               };
+       };
+};
index 302d116..440ee9a 100644 (file)
 
                                gpio0: gpio@0 {
                                        compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
+                                       reg = <0>;
                                        interrupts = <16>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                gpio1: gpio@1 {
                                        compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
+                                       reg = <1>;
                                        interrupts = <17>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                gpio2: gpio@2 {
                                        compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
+                                       reg = <2>;
                                        interrupts = <18>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
                                        fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
+                               auart1_2pins_a: auart1-2pins@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX23_PAD_GPMI_D14__AUART2_RX
+                                               MX23_PAD_GPMI_D15__AUART2_TX
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
+
                                gpmi_pins_a: gpmi-nand@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
                                        fsl,pull-up = <MXS_PULL_DISABLE>;
                                };
 
+                               mmc1_4bit_pins_a: mmc1-4bit@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX23_PAD_GPMI_D00__SSP2_DATA0
+                                               MX23_PAD_GPMI_D01__SSP2_DATA1
+                                               MX23_PAD_GPMI_D02__SSP2_DATA2
+                                               MX23_PAD_GPMI_D03__SSP2_DATA3
+                                               MX23_PAD_GPMI_RDY1__SSP2_CMD
+                                               MX23_PAD_GPMI_WRN__SSP2_SCK
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
+                               };
+
+                               mmc1_8bit_pins_a: mmc1-8bit@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+                                               MX23_PAD_GPMI_D00__SSP2_DATA0
+                                               MX23_PAD_GPMI_D01__SSP2_DATA1
+                                               MX23_PAD_GPMI_D02__SSP2_DATA2
+                                               MX23_PAD_GPMI_D03__SSP2_DATA3
+                                               MX23_PAD_GPMI_D04__SSP2_DATA4
+                                               MX23_PAD_GPMI_D05__SSP2_DATA5
+                                               MX23_PAD_GPMI_D06__SSP2_DATA6
+                                               MX23_PAD_GPMI_D07__SSP2_DATA7
+                                               MX23_PAD_GPMI_RDY1__SSP2_CMD
+                                               MX23_PAD_GPMI_WRN__SSP2_SCK
+                                       >;
+                                       fsl,drive-strength = <MXS_DRIVE_8mA>;
+                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
+                                       fsl,pull-up = <MXS_PULL_ENABLE>;
+                               };
+
                                pwm2_pins_a: pwm2@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
index cda6907..9300711 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 9351296..7029210 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index f96fa2d..f840f03 100644 (file)
 #define MX25_PAD_A13__GPIO_4_1                 0x00c 0x22C 0x000 0x05 0x000
 #define MX25_PAD_A13__LCDC_CLS                 0x00c 0x22C 0x000 0x07 0x000
 
-#define MX25_PAD_A14__A14                      0x010 0x230 0x000 0x10 0x000
-#define MX25_PAD_A14__GPIO_2_0                 0x010 0x230 0x000 0x15 0x000
-#define MX25_PAD_A14__SIM1_CLK1                        0x010 0x230 0x000 0x16 0x000
-#define MX25_PAD_A14__LCDC_SPL                 0x010 0x230 0x000 0x17 0x000
-
-#define MX25_PAD_A15__A15                      0x014 0x234 0x000 0x10 0x000
-#define MX25_PAD_A15__GPIO_2_1                 0x014 0x234 0x000 0x15 0x000
-#define MX25_PAD_A15__SIM1_RST1                        0x014 0x234 0x000 0x16 0x000
-#define MX25_PAD_A15__LCDC_PS                  0x014 0x234 0x000 0x17 0x000
-
-#define MX25_PAD_A16__A16                      0x018 0x000 0x000 0x10 0x000
-#define MX25_PAD_A16__GPIO_2_2                 0x018 0x000 0x000 0x15 0x000
-#define MX25_PAD_A16__SIM1_VEN1                        0x018 0x000 0x000 0x16 0x000
-#define MX25_PAD_A16__LCDC_REV                 0x018 0x000 0x000 0x17 0x000
-
-#define MX25_PAD_A17__A17                      0x01c 0x238 0x000 0x10 0x000
-#define MX25_PAD_A17__GPIO_2_3                 0x01c 0x238 0x000 0x15 0x000
-#define MX25_PAD_A17__SIM1_TX                  0x01c 0x238 0x554 0x16 0x000
-#define MX25_PAD_A17__FEC_TX_ERR               0x01c 0x238 0x000 0x17 0x000
-
-#define MX25_PAD_A18__A18                      0x020 0x23c 0x000 0x10 0x000
-#define MX25_PAD_A18__GPIO_2_4                 0x020 0x23c 0x000 0x15 0x000
-#define MX25_PAD_A18__SIM1_PD1                 0x020 0x23c 0x550 0x16 0x000
-#define MX25_PAD_A18__FEC_COL                  0x020 0x23c 0x504 0x17 0x000
-
-#define MX25_PAD_A19__A19                      0x024 0x240 0x000 0x10 0x000
-#define MX25_PAD_A19__GPIO_2_5                 0x024 0x240 0x000 0x15 0x000
-#define MX25_PAD_A19__SIM1_RX1                 0x024 0x240 0x54c 0x16 0x000
-#define MX25_PAD_A19__FEC_RX_ERR               0x024 0x240 0x518 0x17 0x000
-
-#define MX25_PAD_A20__A20                      0x028 0x244 0x000 0x10 0x000
-#define MX25_PAD_A20__GPIO_2_6                 0x028 0x244 0x000 0x15 0x000
-#define MX25_PAD_A20__SIM2_CLK1                        0x028 0x244 0x000 0x16 0x000
-#define MX25_PAD_A20__FEC_RDATA2               0x028 0x244 0x50c 0x17 0x000
-
-#define MX25_PAD_A21__A21                      0x02c 0x248 0x000 0x10 0x000
-#define MX25_PAD_A21__GPIO_2_7                 0x02c 0x248 0x000 0x15 0x000
-#define MX25_PAD_A21__SIM2_RST1                        0x02c 0x248 0x000 0x16 0x000
-#define MX25_PAD_A21__FEC_RDATA3               0x02c 0x248 0x510 0x17 0x000
-
-#define MX25_PAD_A22__A22                      0x030 0x000 0x000 0x10 0x000
-#define MX25_PAD_A22__GPIO_2_8                 0x030 0x000 0x000 0x15 0x000
-#define MX25_PAD_A22__FEC_TDATA2               0x030 0x000 0x000 0x17 0x000
-#define MX25_PAD_A22__SIM2_VEN1                        0x030 0x000 0x000 0x16 0x000
-#define MX25_PAD_A22__FEC_TDATA2               0x030 0x000 0x000 0x17 0x000
-
-#define MX25_PAD_A23__A23                      0x034 0x24c 0x000 0x10 0x000
-#define MX25_PAD_A23__GPIO_2_9                 0x034 0x24c 0x000 0x15 0x000
-#define MX25_PAD_A23__SIM2_TX1                 0x034 0x24c 0x560 0x16 0x000
-#define MX25_PAD_A23__FEC_TDATA3               0x034 0x24c 0x000 0x17 0x000
-
-#define MX25_PAD_A24__A24                      0x038 0x250 0x000 0x10 0x000
-#define MX25_PAD_A24__GPIO_2_10                        0x038 0x250 0x000 0x15 0x000
-#define MX25_PAD_A24__SIM2_PD1                 0x038 0x250 0x55c 0x16 0x000
-#define MX25_PAD_A24__FEC_RX_CLK               0x038 0x250 0x514 0x17 0x000
-
-#define MX25_PAD_A25__A25                      0x03c 0x254 0x000 0x10 0x000
-#define MX25_PAD_A25__GPIO_2_11                        0x03c 0x254 0x000 0x15 0x000
-#define MX25_PAD_A25__FEC_CRS                  0x03c 0x254 0x508 0x17 0x000
-
-#define MX25_PAD_EB0__EB0                      0x040 0x258 0x000 0x10 0x000
-#define MX25_PAD_EB0__AUD4_TXD                 0x040 0x258 0x464 0x14 0x000
-#define MX25_PAD_EB0__GPIO_2_12                        0x040 0x258 0x000 0x15 0x000
-
-#define MX25_PAD_EB1__EB1                      0x044 0x25c 0x000 0x10 0x000
-#define MX25_PAD_EB1__AUD4_RXD                 0x044 0x25c 0x460 0x14 0x000
-#define MX25_PAD_EB1__GPIO_2_13                        0x044 0x25c 0x000 0x15 0x000
-
-#define MX25_PAD_OE__OE                                0x048 0x260 0x000 0x10 0x000
-#define MX25_PAD_OE__AUD4_TXC                  0x048 0x260 0x000 0x14 0x000
-#define MX25_PAD_OE__GPIO_2_14                 0x048 0x260 0x000 0x15 0x000
+#define MX25_PAD_A14__A14                      0x010 0x230 0x000 0x00 0x000
+#define MX25_PAD_A14__GPIO_2_0                 0x010 0x230 0x000 0x05 0x000
+#define MX25_PAD_A14__SIM1_CLK1                        0x010 0x230 0x000 0x06 0x000
+#define MX25_PAD_A14__LCDC_SPL                 0x010 0x230 0x000 0x07 0x000
+
+#define MX25_PAD_A15__A15                      0x014 0x234 0x000 0x00 0x000
+#define MX25_PAD_A15__GPIO_2_1                 0x014 0x234 0x000 0x05 0x000
+#define MX25_PAD_A15__SIM1_RST1                        0x014 0x234 0x000 0x06 0x000
+#define MX25_PAD_A15__LCDC_PS                  0x014 0x234 0x000 0x07 0x000
+
+#define MX25_PAD_A16__A16                      0x018 0x000 0x000 0x00 0x000
+#define MX25_PAD_A16__GPIO_2_2                 0x018 0x000 0x000 0x05 0x000
+#define MX25_PAD_A16__SIM1_VEN1                        0x018 0x000 0x000 0x06 0x000
+#define MX25_PAD_A16__LCDC_REV                 0x018 0x000 0x000 0x07 0x000
+
+#define MX25_PAD_A17__A17                      0x01c 0x238 0x000 0x00 0x000
+#define MX25_PAD_A17__GPIO_2_3                 0x01c 0x238 0x000 0x05 0x000
+#define MX25_PAD_A17__SIM1_TX                  0x01c 0x238 0x554 0x06 0x000
+#define MX25_PAD_A17__FEC_TX_ERR               0x01c 0x238 0x000 0x07 0x000
+
+#define MX25_PAD_A18__A18                      0x020 0x23c 0x000 0x00 0x000
+#define MX25_PAD_A18__GPIO_2_4                 0x020 0x23c 0x000 0x05 0x000
+#define MX25_PAD_A18__SIM1_PD1                 0x020 0x23c 0x550 0x06 0x000
+#define MX25_PAD_A18__FEC_COL                  0x020 0x23c 0x504 0x07 0x000
+
+#define MX25_PAD_A19__A19                      0x024 0x240 0x000 0x00 0x000
+#define MX25_PAD_A19__GPIO_2_5                 0x024 0x240 0x000 0x05 0x000
+#define MX25_PAD_A19__SIM1_RX1                 0x024 0x240 0x54c 0x06 0x000
+#define MX25_PAD_A19__FEC_RX_ERR               0x024 0x240 0x518 0x07 0x000
+
+#define MX25_PAD_A20__A20                      0x028 0x244 0x000 0x00 0x000
+#define MX25_PAD_A20__GPIO_2_6                 0x028 0x244 0x000 0x05 0x000
+#define MX25_PAD_A20__SIM2_CLK1                        0x028 0x244 0x000 0x06 0x000
+#define MX25_PAD_A20__FEC_RDATA2               0x028 0x244 0x50c 0x07 0x000
+
+#define MX25_PAD_A21__A21                      0x02c 0x248 0x000 0x00 0x000
+#define MX25_PAD_A21__GPIO_2_7                 0x02c 0x248 0x000 0x05 0x000
+#define MX25_PAD_A21__SIM2_RST1                        0x02c 0x248 0x000 0x06 0x000
+#define MX25_PAD_A21__FEC_RDATA3               0x02c 0x248 0x510 0x07 0x000
+
+#define MX25_PAD_A22__A22                      0x030 0x000 0x000 0x00 0x000
+#define MX25_PAD_A22__GPIO_2_8                 0x030 0x000 0x000 0x05 0x000
+#define MX25_PAD_A22__FEC_TDATA2               0x030 0x000 0x000 0x07 0x000
+#define MX25_PAD_A22__SIM2_VEN1                        0x030 0x000 0x000 0x06 0x000
+#define MX25_PAD_A22__FEC_TDATA2               0x030 0x000 0x000 0x07 0x000
+
+#define MX25_PAD_A23__A23                      0x034 0x24c 0x000 0x00 0x000
+#define MX25_PAD_A23__GPIO_2_9                 0x034 0x24c 0x000 0x05 0x000
+#define MX25_PAD_A23__SIM2_TX1                 0x034 0x24c 0x560 0x06 0x000
+#define MX25_PAD_A23__FEC_TDATA3               0x034 0x24c 0x000 0x07 0x000
+
+#define MX25_PAD_A24__A24                      0x038 0x250 0x000 0x00 0x000
+#define MX25_PAD_A24__GPIO_2_10                        0x038 0x250 0x000 0x05 0x000
+#define MX25_PAD_A24__SIM2_PD1                 0x038 0x250 0x55c 0x06 0x000
+#define MX25_PAD_A24__FEC_RX_CLK               0x038 0x250 0x514 0x07 0x000
+
+#define MX25_PAD_A25__A25                      0x03c 0x254 0x000 0x00 0x000
+#define MX25_PAD_A25__GPIO_2_11                        0x03c 0x254 0x000 0x05 0x000
+#define MX25_PAD_A25__FEC_CRS                  0x03c 0x254 0x508 0x07 0x000
+
+#define MX25_PAD_EB0__EB0                      0x040 0x258 0x000 0x00 0x000
+#define MX25_PAD_EB0__AUD4_TXD                 0x040 0x258 0x464 0x04 0x000
+#define MX25_PAD_EB0__GPIO_2_12                        0x040 0x258 0x000 0x05 0x000
+
+#define MX25_PAD_EB1__EB1                      0x044 0x25c 0x000 0x00 0x000
+#define MX25_PAD_EB1__AUD4_RXD                 0x044 0x25c 0x460 0x04 0x000
+#define MX25_PAD_EB1__GPIO_2_13                        0x044 0x25c 0x000 0x05 0x000
+
+#define MX25_PAD_OE__OE                                0x048 0x260 0x000 0x00 0x000
+#define MX25_PAD_OE__AUD4_TXC                  0x048 0x260 0x000 0x04 0x000
+#define MX25_PAD_OE__GPIO_2_14                 0x048 0x260 0x000 0x05 0x000
 
 #define MX25_PAD_CS0__CS0                      0x04c 0x000 0x000 0x00 0x000
 #define MX25_PAD_CS0__GPIO_4_2                 0x04c 0x000 0x000 0x05 0x000
 #define MX25_PAD_CS1__NF_CE3                   0x050 0x000 0x000 0x01 0x000
 #define MX25_PAD_CS1__GPIO_4_3                 0x050 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_CS4__CS4                      0x054 0x264 0x000 0x10 0x000
+#define MX25_PAD_CS4__CS4                      0x054 0x264 0x000 0x00 0x000
 #define MX25_PAD_CS4__NF_CE1                   0x054 0x264 0x000 0x01 0x000
-#define MX25_PAD_CS4__UART5_CTS                        0x054 0x264 0x000 0x13 0x000
-#define MX25_PAD_CS4__GPIO_3_20                        0x054 0x264 0x000 0x15 0x000
+#define MX25_PAD_CS4__UART5_CTS                        0x054 0x264 0x000 0x03 0x000
+#define MX25_PAD_CS4__GPIO_3_20                        0x054 0x264 0x000 0x05 0x000
 
 #define MX25_PAD_CS5__CS5                      0x058 0x268 0x000 0x00 0x000
 #define MX25_PAD_CS5__NF_CE2                   0x058 0x268 0x000 0x01 0x000
 #define MX25_PAD_CS5__UART5_RTS                        0x058 0x268 0x574 0x03 0x000
 #define MX25_PAD_CS5__GPIO_3_21                        0x058 0x268 0x000 0x05 0x000
 
-#define MX25_PAD_NF_CE0__NF_CE0                        0x05c 0x26c 0x000 0x10 0x000
-#define MX25_PAD_NF_CE0__GPIO_3_22             0x05c 0x26c 0x000 0x15 0x000
+#define MX25_PAD_NF_CE0__NF_CE0                        0x05c 0x26c 0x000 0x00 0x000
+#define MX25_PAD_NF_CE0__GPIO_3_22             0x05c 0x26c 0x000 0x05 0x000
 
-#define MX25_PAD_ECB__ECB                      0x060 0x270 0x000 0x10 0x000
-#define MX25_PAD_ECB__UART5_TXD                        0x060 0x270 0x000 0x13 0x000
-#define MX25_PAD_ECB__GPIO_3_23                        0x060 0x270 0x000 0x15 0x000
+#define MX25_PAD_ECB__ECB                      0x060 0x270 0x000 0x00 0x000
+#define MX25_PAD_ECB__UART5_TXD                        0x060 0x270 0x000 0x03 0x000
+#define MX25_PAD_ECB__GPIO_3_23                        0x060 0x270 0x000 0x05 0x000
 
-#define MX25_PAD_LBA__LBA                      0x064 0x274 0x000 0x10 0x000
-#define MX25_PAD_LBA__UART5_RXD                        0x064 0x274 0x578 0x13 0x000
-#define MX25_PAD_LBA__GPIO_3_24                        0x064 0x274 0x000 0x15 0x000
+#define MX25_PAD_LBA__LBA                      0x064 0x274 0x000 0x00 0x000
+#define MX25_PAD_LBA__UART5_RXD                        0x064 0x274 0x578 0x03 0x000
+#define MX25_PAD_LBA__GPIO_3_24                        0x064 0x274 0x000 0x05 0x000
 
 #define MX25_PAD_BCLK__BCLK                    0x068 0x000 0x000 0x00 0x000
 #define MX25_PAD_BCLK__GPIO_4_4                        0x068 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_RW__RW                                0x06c 0x278 0x000 0x10 0x000
-#define MX25_PAD_RW__AUD4_TXFS                 0x06c 0x278 0x474 0x14 0x000
-#define MX25_PAD_RW__GPIO_3_25                 0x06c 0x278 0x000 0x15 0x000
+#define MX25_PAD_RW__RW                                0x06c 0x278 0x000 0x00 0x000
+#define MX25_PAD_RW__AUD4_TXFS                 0x06c 0x278 0x474 0x04 0x000
+#define MX25_PAD_RW__GPIO_3_25                 0x06c 0x278 0x000 0x05 0x000
 
-#define MX25_PAD_NFWE_B__NFWE_B                        0x070 0x000 0x000 0x10 0x000
-#define MX25_PAD_NFWE_B__GPIO_3_26             0x070 0x000 0x000 0x15 0x000
+#define MX25_PAD_NFWE_B__NFWE_B                        0x070 0x000 0x000 0x00 0x000
+#define MX25_PAD_NFWE_B__GPIO_3_26             0x070 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_NFRE_B__NFRE_B                        0x074 0x000 0x000 0x10 0x000
-#define MX25_PAD_NFRE_B__GPIO_3_27             0x074 0x000 0x000 0x15 0x000
+#define MX25_PAD_NFRE_B__NFRE_B                        0x074 0x000 0x000 0x00 0x000
+#define MX25_PAD_NFRE_B__GPIO_3_27             0x074 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_NFALE__NFALE                  0x078 0x000 0x000 0x10 0x000
-#define MX25_PAD_NFALE__GPIO_3_28              0x078 0x000 0x000 0x15 0x000
+#define MX25_PAD_NFALE__NFALE                  0x078 0x000 0x000 0x00 0x000
+#define MX25_PAD_NFALE__GPIO_3_28              0x078 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_NFCLE__NFCLE                  0x07c 0x000 0x000 0x10 0x000
-#define MX25_PAD_NFCLE__GPIO_3_29              0x07c 0x000 0x000 0x15 0x000
+#define MX25_PAD_NFCLE__NFCLE                  0x07c 0x000 0x000 0x00 0x000
+#define MX25_PAD_NFCLE__GPIO_3_29              0x07c 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_NFWP_B__NFWP_B                        0x080 0x000 0x000 0x10 0x000
-#define MX25_PAD_NFWP_B__GPIO_3_30             0x080 0x000 0x000 0x15 0x000
+#define MX25_PAD_NFWP_B__NFWP_B                        0x080 0x000 0x000 0x00 0x000
+#define MX25_PAD_NFWP_B__GPIO_3_30             0x080 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_NFRB__NFRB                    0x084 0x27c 0x000 0x10 0x000
-#define MX25_PAD_NFRB__GPIO_3_31               0x084 0x27c 0x000 0x15 0x000
+#define MX25_PAD_NFRB__NFRB                    0x084 0x27c 0x000 0x00 0x000
+#define MX25_PAD_NFRB__GPIO_3_31               0x084 0x27c 0x000 0x05 0x000
 
 #define MX25_PAD_D15__D15                      0x088 0x280 0x000 0x00 0x000
 #define MX25_PAD_D15__LD16                     0x088 0x280 0x000 0x01 0x000
 #define MX25_PAD_D0__D0                                0x0c4 0x2bc 0x000 0x00 0x000
 #define MX25_PAD_D0__GPIO_4_20                 0x0c4 0x2bc 0x000 0x05 0x000
 
-#define MX25_PAD_LD0__LD0                      0x0c8 0x2c0 0x000 0x10 0x000
-#define MX25_PAD_LD0__CSI_D0                   0x0c8 0x2c0 0x488 0x12 0x000
-#define MX25_PAD_LD0__GPIO_2_15                        0x0c8 0x2c0 0x000 0x15 0x000
+#define MX25_PAD_LD0__LD0                      0x0c8 0x2c0 0x000 0x00 0x000
+#define MX25_PAD_LD0__CSI_D0                   0x0c8 0x2c0 0x488 0x02 0x000
+#define MX25_PAD_LD0__GPIO_2_15                        0x0c8 0x2c0 0x000 0x05 0x000
 
-#define MX25_PAD_LD1__LD1                      0x0cc 0x2c4 0x000 0x10 0x000
-#define MX25_PAD_LD1__CSI_D1                   0x0cc 0x2c4 0x48c 0x12 0x000
-#define MX25_PAD_LD1__GPIO_2_16                        0x0cc 0x2c4 0x000 0x15 0x000
+#define MX25_PAD_LD1__LD1                      0x0cc 0x2c4 0x000 0x00 0x000
+#define MX25_PAD_LD1__CSI_D1                   0x0cc 0x2c4 0x48c 0x02 0x000
+#define MX25_PAD_LD1__GPIO_2_16                        0x0cc 0x2c4 0x000 0x05 0x000
 
-#define MX25_PAD_LD2__LD2                      0x0d0 0x2c8 0x000 0x10 0x000
-#define MX25_PAD_LD2__GPIO_2_17                        0x0d0 0x2c8 0x000 0x15 0x000
+#define MX25_PAD_LD2__LD2                      0x0d0 0x2c8 0x000 0x00 0x000
+#define MX25_PAD_LD2__GPIO_2_17                        0x0d0 0x2c8 0x000 0x05 0x000
 
-#define MX25_PAD_LD3__LD3                      0x0d4 0x2cc 0x000 0x10 0x000
-#define MX25_PAD_LD3__GPIO_2_18                        0x0d4 0x2cc 0x000 0x15 0x000
+#define MX25_PAD_LD3__LD3                      0x0d4 0x2cc 0x000 0x00 0x000
+#define MX25_PAD_LD3__GPIO_2_18                        0x0d4 0x2cc 0x000 0x05 0x000
 
-#define MX25_PAD_LD4__LD4                      0x0d8 0x2d0 0x000 0x10 0x000
-#define MX25_PAD_LD4__GPIO_2_19                        0x0d8 0x2d0 0x000 0x15 0x000
+#define MX25_PAD_LD4__LD4                      0x0d8 0x2d0 0x000 0x00 0x000
+#define MX25_PAD_LD4__GPIO_2_19                        0x0d8 0x2d0 0x000 0x05 0x000
 
-#define MX25_PAD_LD5__LD5                      0x0dc 0x2d4 0x000 0x10 0x000
-#define MX25_PAD_LD5__GPIO_1_19                        0x0dc 0x2d4 0x000 0x15 0x000
+#define MX25_PAD_LD5__LD5                      0x0dc 0x2d4 0x000 0x00 0x000
+#define MX25_PAD_LD5__GPIO_1_19                        0x0dc 0x2d4 0x000 0x05 0x000
 
-#define MX25_PAD_LD6__LD6                      0x0e0 0x2d8 0x000 0x10 0x000
-#define MX25_PAD_LD6__GPIO_1_20                        0x0e0 0x2d8 0x000 0x15 0x000
+#define MX25_PAD_LD6__LD6                      0x0e0 0x2d8 0x000 0x00 0x000
+#define MX25_PAD_LD6__GPIO_1_20                        0x0e0 0x2d8 0x000 0x05 0x000
 
-#define MX25_PAD_LD7__LD7                      0x0e4 0x2dc 0x000 0x10 0x000
-#define MX25_PAD_LD7__GPIO_1_21                        0x0e4 0x2dc 0x000 0x15 0x000
+#define MX25_PAD_LD7__LD7                      0x0e4 0x2dc 0x000 0x00 0x000
+#define MX25_PAD_LD7__GPIO_1_21                        0x0e4 0x2dc 0x000 0x05 0x000
 
-#define MX25_PAD_LD8__LD8                      0x0e8 0x2e0 0x000 0x10 0x000
-#define MX25_PAD_LD8__UART4_RXD                        0x0e8 0x2e0 0x570 0x12 0x000
-#define MX25_PAD_LD8__FEC_TX_ERR               0x0e8 0x2e0 0x000 0x15 0x000
+#define MX25_PAD_LD8__LD8                      0x0e8 0x2e0 0x000 0x00 0x000
+#define MX25_PAD_LD8__UART4_RXD                        0x0e8 0x2e0 0x570 0x02 0x000
+#define MX25_PAD_LD8__FEC_TX_ERR               0x0e8 0x2e0 0x000 0x05 0x000
 #define MX25_PAD_LD8__SDHC2_CMD                        0x0e8 0x2e0 0x4e0 0x06 0x000
 
-#define MX25_PAD_LD9__LD9                      0x0ec 0x2e4 0x000 0x10 0x000
-#define MX25_PAD_LD9__UART4_TXD                        0x0ec 0x2e4 0x000 0x12 0x000
-#define MX25_PAD_LD9__FEC_COL                  0x0ec 0x2e4 0x504 0x15 0x001
+#define MX25_PAD_LD9__LD9                      0x0ec 0x2e4 0x000 0x00 0x000
+#define MX25_PAD_LD9__UART4_TXD                        0x0ec 0x2e4 0x000 0x02 0x000
+#define MX25_PAD_LD9__FEC_COL                  0x0ec 0x2e4 0x504 0x05 0x001
 #define MX25_PAD_LD9__SDHC2_CLK                        0x0ec 0x2e4 0x4dc 0x06 0x000
 
 #define MX25_PAD_LD10__LD10                    0x0f0 0x2e8 0x000 0x00 0x000
 #define MX25_PAD_LD10__UART4_RTS               0x0f0 0x2e8 0x56c 0x02 0x000
 #define MX25_PAD_LD10__FEC_RX_ERR              0x0f0 0x2e8 0x518 0x05 0x001
 
-#define MX25_PAD_LD11__LD11                    0x0f4 0x2ec 0x000 0x10 0x000
-#define MX25_PAD_LD11__UART4_CTS               0x0f4 0x2ec 0x000 0x12 0x000
-#define MX25_PAD_LD11__FEC_RDATA2              0x0f4 0x2ec 0x50c 0x15 0x001
+#define MX25_PAD_LD11__LD11                    0x0f4 0x2ec 0x000 0x00 0x000
+#define MX25_PAD_LD11__UART4_CTS               0x0f4 0x2ec 0x000 0x02 0x000
+#define MX25_PAD_LD11__FEC_RDATA2              0x0f4 0x2ec 0x50c 0x05 0x001
 #define MX25_PAD_LD11__SDHC2_DAT1              0x0f4 0x2ec 0x4e8 0x06 0x000
 
-#define MX25_PAD_LD12__LD12                    0x0f8 0x2f0 0x000 0x10 0x000
+#define MX25_PAD_LD12__LD12                    0x0f8 0x2f0 0x000 0x00 0x000
 #define MX25_PAD_LD12__CSPI2_MOSI              0x0f8 0x2f0 0x4a0 0x02 0x000
-#define MX25_PAD_LD12__FEC_RDATA3              0x0f8 0x2f0 0x510 0x15 0x001
+#define MX25_PAD_LD12__FEC_RDATA3              0x0f8 0x2f0 0x510 0x05 0x001
 
-#define MX25_PAD_LD13__LD13                    0x0fc 0x2f4 0x000 0x10 0x000
+#define MX25_PAD_LD13__LD13                    0x0fc 0x2f4 0x000 0x00 0x000
 #define MX25_PAD_LD13__CSPI2_MISO              0x0fc 0x2f4 0x49c 0x02 0x000
-#define MX25_PAD_LD13__FEC_TDATA2              0x0fc 0x2f4 0x000 0x15 0x000
+#define MX25_PAD_LD13__FEC_TDATA2              0x0fc 0x2f4 0x000 0x05 0x000
 
-#define MX25_PAD_LD14__LD14                    0x100 0x2f8 0x000 0x10 0x000
+#define MX25_PAD_LD14__LD14                    0x100 0x2f8 0x000 0x00 0x000
 #define MX25_PAD_LD14__CSPI2_SCLK              0x100 0x2f8 0x494 0x02 0x000
-#define MX25_PAD_LD14__FEC_TDATA3              0x100 0x2f8 0x000 0x15 0x000
+#define MX25_PAD_LD14__FEC_TDATA3              0x100 0x2f8 0x000 0x05 0x000
 
-#define MX25_PAD_LD15__LD15                    0x104 0x2fc 0x000 0x10 0x000
+#define MX25_PAD_LD15__LD15                    0x104 0x2fc 0x000 0x00 0x000
 #define MX25_PAD_LD15__CSPI2_RDY               0x104 0x2fc 0x498 0x02 0x000
-#define MX25_PAD_LD15__FEC_RX_CLK              0x104 0x2fc 0x514 0x15 0x001
+#define MX25_PAD_LD15__FEC_RX_CLK              0x104 0x2fc 0x514 0x05 0x001
 
-#define MX25_PAD_HSYNC__HSYNC                  0x108 0x300 0x000 0x10 0x000
-#define MX25_PAD_HSYNC__GPIO_1_22              0x108 0x300 0x000 0x15 0x000
+#define MX25_PAD_HSYNC__HSYNC                  0x108 0x300 0x000 0x00 0x000
+#define MX25_PAD_HSYNC__GPIO_1_22              0x108 0x300 0x000 0x05 0x000
 
-#define MX25_PAD_VSYNC__VSYNC                  0x10c 0x304 0x000 0x10 0x000
-#define MX25_PAD_VSYNC__GPIO_1_23              0x10c 0x304 0x000 0x15 0x000
+#define MX25_PAD_VSYNC__VSYNC                  0x10c 0x304 0x000 0x00 0x000
+#define MX25_PAD_VSYNC__GPIO_1_23              0x10c 0x304 0x000 0x05 0x000
 
-#define MX25_PAD_LSCLK__LSCLK                  0x110 0x308 0x000 0x10 0x000
-#define MX25_PAD_LSCLK__GPIO_1_24              0x110 0x308 0x000 0x15 0x000
+#define MX25_PAD_LSCLK__LSCLK                  0x110 0x308 0x000 0x00 0x000
+#define MX25_PAD_LSCLK__GPIO_1_24              0x110 0x308 0x000 0x05 0x000
 
-#define MX25_PAD_OE_ACD__OE_ACD                        0x114 0x30c 0x000 0x10 0x000
+#define MX25_PAD_OE_ACD__OE_ACD                        0x114 0x30c 0x000 0x00 0x000
 #define MX25_PAD_OE_ACD__CSPI2_SS0             0x114 0x30c 0x4a4 0x02 0x000
-#define MX25_PAD_OE_ACD__GPIO_1_25             0x114 0x30c 0x000 0x15 0x000
+#define MX25_PAD_OE_ACD__GPIO_1_25             0x114 0x30c 0x000 0x05 0x000
 
-#define MX25_PAD_CONTRAST__CONTRAST            0x118 0x310 0x000 0x10 0x000
-#define MX25_PAD_CONTRAST__CC4                 0x118 0x310 0x000 0x11 0x000
-#define MX25_PAD_CONTRAST__PWM4_PWMO           0x118 0x310 0x000 0x14 0x000
-#define MX25_PAD_CONTRAST__FEC_CRS             0x118 0x310 0x508 0x15 0x001
-#define MX25_PAD_CONTRAST__USBH2_PWR           0x118 0x310 0x000 0x16 0x000
+#define MX25_PAD_CONTRAST__CONTRAST            0x118 0x310 0x000 0x00 0x000
+#define MX25_PAD_CONTRAST__CC4                 0x118 0x310 0x000 0x01 0x000
+#define MX25_PAD_CONTRAST__PWM4_PWMO           0x118 0x310 0x000 0x04 0x000
+#define MX25_PAD_CONTRAST__FEC_CRS             0x118 0x310 0x508 0x05 0x001
+#define MX25_PAD_CONTRAST__USBH2_PWR           0x118 0x310 0x000 0x06 0x000
 
-#define MX25_PAD_PWM__PWM                      0x11c 0x314 0x000 0x10 0x000
-#define MX25_PAD_PWM__GPIO_1_26                        0x11c 0x314 0x000 0x15 0x000
-#define MX25_PAD_PWM__USBH2_OC                 0x11c 0x314 0x580 0x16 0x001
+#define MX25_PAD_PWM__PWM                      0x11c 0x314 0x000 0x00 0x000
+#define MX25_PAD_PWM__GPIO_1_26                        0x11c 0x314 0x000 0x05 0x000
+#define MX25_PAD_PWM__USBH2_OC                 0x11c 0x314 0x580 0x06 0x001
 
-#define MX25_PAD_CSI_D2__CSI_D2                        0x120 0x318 0x000 0x10 0x000
-#define MX25_PAD_CSI_D2__UART5_RXD             0x120 0x318 0x578 0x11 0x001
+#define MX25_PAD_CSI_D2__CSI_D2                        0x120 0x318 0x000 0x00 0x000
+#define MX25_PAD_CSI_D2__UART5_RXD             0x120 0x318 0x578 0x01 0x001
 #define MX25_PAD_CSI_D2__SIM1_CLK0             0x120 0x318 0x000 0x04 0x000
-#define MX25_PAD_CSI_D2__GPIO_1_27             0x120 0x318 0x000 0x15 0x000
-#define MX25_PAD_CSI_D2__CSPI3_MOSI            0x120 0x318 0x000 0x17 0x000
+#define MX25_PAD_CSI_D2__GPIO_1_27             0x120 0x318 0x000 0x05 0x000
+#define MX25_PAD_CSI_D2__CSPI3_MOSI            0x120 0x318 0x000 0x07 0x000
 
-#define MX25_PAD_CSI_D3__CSI_D3                        0x124 0x31c 0x000 0x10 0x000
-#define MX25_PAD_CSI_D3__UART5_TXD             0x124 0x31c 0x000 0x11 0x000
+#define MX25_PAD_CSI_D3__CSI_D3                        0x124 0x31c 0x000 0x00 0x000
+#define MX25_PAD_CSI_D3__UART5_TXD             0x124 0x31c 0x000 0x01 0x000
 #define MX25_PAD_CSI_D3__SIM1_RST0             0x124 0x31c 0x000 0x04 0x000
-#define MX25_PAD_CSI_D3__GPIO_1_28             0x124 0x31c 0x000 0x15 0x000
-#define MX25_PAD_CSI_D3__CSPI3_MISO            0x124 0x31c 0x4b4 0x17 0x001
+#define MX25_PAD_CSI_D3__GPIO_1_28             0x124 0x31c 0x000 0x05 0x000
+#define MX25_PAD_CSI_D3__CSPI3_MISO            0x124 0x31c 0x4b4 0x07 0x001
 
 #define MX25_PAD_CSI_D4__CSI_D4                        0x128 0x320 0x000 0x00 0x000
 #define MX25_PAD_CSI_D4__UART5_RTS             0x128 0x320 0x574 0x01 0x001
 #define MX25_PAD_CSI_D4__GPIO_1_29             0x128 0x320 0x000 0x05 0x000
 #define MX25_PAD_CSI_D4__CSPI3_SCLK            0x128 0x320 0x000 0x07 0x000
 
-#define MX25_PAD_CSI_D5__CSI_D5                        0x12c 0x324 0x000 0x10 0x000
-#define MX25_PAD_CSI_D5__UART5_CTS             0x12c 0x324 0x000 0x11 0x000
+#define MX25_PAD_CSI_D5__CSI_D5                        0x12c 0x324 0x000 0x00 0x000
+#define MX25_PAD_CSI_D5__UART5_CTS             0x12c 0x324 0x000 0x01 0x000
 #define MX25_PAD_CSI_D5__SIM1_TX0              0x12c 0x324 0x000 0x04 0x000
-#define MX25_PAD_CSI_D5__GPIO_1_30             0x12c 0x324 0x000 0x15 0x000
-#define MX25_PAD_CSI_D5__CSPI3_RDY             0x12c 0x324 0x000 0x17 0x000
+#define MX25_PAD_CSI_D5__GPIO_1_30             0x12c 0x324 0x000 0x05 0x000
+#define MX25_PAD_CSI_D5__CSPI3_RDY             0x12c 0x324 0x000 0x07 0x000
 
-#define MX25_PAD_CSI_D6__CSI_D6                        0x130 0x328 0x000 0x10 0x000
-#define MX25_PAD_CSI_D6__SDHC2_CMD             0x130 0x328 0x4e0 0x12 0x001
+#define MX25_PAD_CSI_D6__CSI_D6                        0x130 0x328 0x000 0x00 0x000
+#define MX25_PAD_CSI_D6__SDHC2_CMD             0x130 0x328 0x4e0 0x02 0x001
 #define MX25_PAD_CSI_D6__SIM1_PD0              0x130 0x328 0x000 0x04 0x000
-#define MX25_PAD_CSI_D6__GPIO_1_31             0x130 0x328 0x000 0x15 0x000
+#define MX25_PAD_CSI_D6__GPIO_1_31             0x130 0x328 0x000 0x05 0x000
 
-#define MX25_PAD_CSI_D7__CSI_D7                        0x134 0x32c 0x000 0x10 0x000
-#define MX25_PAD_CSI_D7__SDHC2_DAT_CLK         0x134 0x32C 0x4dc 0x12 0x001
-#define MX25_PAD_CSI_D7__GPIO_1_6              0x134 0x32c 0x000 0x15 0x000
+#define MX25_PAD_CSI_D7__CSI_D7                        0x134 0x32c 0x000 0x00 0x000
+#define MX25_PAD_CSI_D7__SDHC2_DAT_CLK         0x134 0x32C 0x4dc 0x02 0x001
+#define MX25_PAD_CSI_D7__GPIO_1_6              0x134 0x32c 0x000 0x05 0x000
 
-#define MX25_PAD_CSI_D8__CSI_D8                        0x138 0x330 0x000 0x10 0x000
-#define MX25_PAD_CSI_D8__AUD6_RXC              0x138 0x330 0x000 0x12 0x000
-#define MX25_PAD_CSI_D8__GPIO_1_7              0x138 0x330 0x000 0x15 0x000
-#define MX25_PAD_CSI_D8__CSPI3_SS2             0x138 0x330 0x4c4 0x17 0x000
+#define MX25_PAD_CSI_D8__CSI_D8                        0x138 0x330 0x000 0x00 0x000
+#define MX25_PAD_CSI_D8__AUD6_RXC              0x138 0x330 0x000 0x02 0x000
+#define MX25_PAD_CSI_D8__GPIO_1_7              0x138 0x330 0x000 0x05 0x000
+#define MX25_PAD_CSI_D8__CSPI3_SS2             0x138 0x330 0x4c4 0x07 0x000
 
-#define MX25_PAD_CSI_D9__CSI_D9                        0x13c 0x334 0x000 0x10 0x000
-#define MX25_PAD_CSI_D9__AUD6_RXFS             0x13c 0x334 0x000 0x12 0x000
-#define MX25_PAD_CSI_D9__GPIO_4_21             0x13c 0x334 0x000 0x15 0x000
-#define MX25_PAD_CSI_D9__CSPI3_SS3             0x13c 0x334 0x4c8 0x17 0x000
+#define MX25_PAD_CSI_D9__CSI_D9                        0x13c 0x334 0x000 0x00 0x000
+#define MX25_PAD_CSI_D9__AUD6_RXFS             0x13c 0x334 0x000 0x02 0x000
+#define MX25_PAD_CSI_D9__GPIO_4_21             0x13c 0x334 0x000 0x05 0x000
+#define MX25_PAD_CSI_D9__CSPI3_SS3             0x13c 0x334 0x4c8 0x07 0x000
 
-#define MX25_PAD_CSI_MCLK__CSI_MCLK            0x140 0x338 0x000 0x10 0x000
-#define MX25_PAD_CSI_MCLK__AUD6_TXD            0x140 0x338 0x000 0x11 0x000
-#define MX25_PAD_CSI_MCLK__SDHC2_DAT0          0x140 0x338 0x4e4 0x12 0x001
-#define MX25_PAD_CSI_MCLK__GPIO_1_8            0x140 0x338 0x000 0x15 0x000
+#define MX25_PAD_CSI_MCLK__CSI_MCLK            0x140 0x338 0x000 0x00 0x000
+#define MX25_PAD_CSI_MCLK__AUD6_TXD            0x140 0x338 0x000 0x01 0x000
+#define MX25_PAD_CSI_MCLK__SDHC2_DAT0          0x140 0x338 0x4e4 0x02 0x001
+#define MX25_PAD_CSI_MCLK__GPIO_1_8            0x140 0x338 0x000 0x05 0x000
 
-#define MX25_PAD_CSI_VSYNC__CSI_VSYNC          0x144 0x33c 0x000 0x10 0x000
-#define MX25_PAD_CSI_VSYNC__AUD6_RXD           0x144 0x33c 0x000 0x11 0x000
-#define MX25_PAD_CSI_VSYNC__SDHC2_DAT1         0x144 0x33c 0x4e8 0x12 0x001
-#define MX25_PAD_CSI_VSYNC__GPIO_1_9           0x144 0x33c 0x000 0x15 0x000
+#define MX25_PAD_CSI_VSYNC__CSI_VSYNC          0x144 0x33c 0x000 0x00 0x000
+#define MX25_PAD_CSI_VSYNC__AUD6_RXD           0x144 0x33c 0x000 0x01 0x000
+#define MX25_PAD_CSI_VSYNC__SDHC2_DAT1         0x144 0x33c 0x4e8 0x02 0x001
+#define MX25_PAD_CSI_VSYNC__GPIO_1_9           0x144 0x33c 0x000 0x05 0x000
 
-#define MX25_PAD_CSI_HSYNC__CSI_HSYNC          0x148 0x340 0x000 0x10 0x000
-#define MX25_PAD_CSI_HSYNC__AUD6_TXC           0x148 0x340 0x000 0x11 0x000
-#define MX25_PAD_CSI_HSYNC__SDHC2_DAT2         0x148 0x340 0x4ec 0x12 0x001
-#define MX25_PAD_CSI_HSYNC__GPIO_1_10          0x148 0x340 0x000 0x15 0x000
+#define MX25_PAD_CSI_HSYNC__CSI_HSYNC          0x148 0x340 0x000 0x00 0x000
+#define MX25_PAD_CSI_HSYNC__AUD6_TXC           0x148 0x340 0x000 0x01 0x000
+#define MX25_PAD_CSI_HSYNC__SDHC2_DAT2         0x148 0x340 0x4ec 0x02 0x001
+#define MX25_PAD_CSI_HSYNC__GPIO_1_10          0x148 0x340 0x000 0x05 0x000
 
-#define MX25_PAD_CSI_PIXCLK__CSI_PIXCLK                0x14c 0x344 0x000 0x10 0x000
-#define MX25_PAD_CSI_PIXCLK__AUD6_TXFS         0x14c 0x344 0x000 0x11 0x000
-#define MX25_PAD_CSI_PIXCLK__SDHC2_DAT3                0x14c 0x344 0x4f0 0x12 0x001
-#define MX25_PAD_CSI_PIXCLK__GPIO_1_11         0x14c 0x344 0x000 0x15 0x000
+#define MX25_PAD_CSI_PIXCLK__CSI_PIXCLK                0x14c 0x344 0x000 0x00 0x000
+#define MX25_PAD_CSI_PIXCLK__AUD6_TXFS         0x14c 0x344 0x000 0x01 0x000
+#define MX25_PAD_CSI_PIXCLK__SDHC2_DAT3                0x14c 0x344 0x4f0 0x02 0x001
+#define MX25_PAD_CSI_PIXCLK__GPIO_1_11         0x14c 0x344 0x000 0x05 0x000
 
-#define MX25_PAD_I2C1_CLK__I2C1_CLK            0x150 0x348 0x000 0x10 0x000
-#define MX25_PAD_I2C1_CLK__GPIO_1_12           0x150 0x348 0x000 0x15 0x000
+#define MX25_PAD_I2C1_CLK__I2C1_CLK            0x150 0x348 0x000 0x00 0x000
+#define MX25_PAD_I2C1_CLK__GPIO_1_12           0x150 0x348 0x000 0x05 0x000
 
-#define MX25_PAD_I2C1_DAT__I2C1_DAT            0x154 0x34c 0x000 0x10 0x000
-#define MX25_PAD_I2C1_DAT__GPIO_1_13           0x154 0x34c 0x000 0x15 0x000
+#define MX25_PAD_I2C1_DAT__I2C1_DAT            0x154 0x34c 0x000 0x00 0x000
+#define MX25_PAD_I2C1_DAT__GPIO_1_13           0x154 0x34c 0x000 0x05 0x000
 
-#define MX25_PAD_CSPI1_MOSI__CSPI1_MOSI                0x158 0x350 0x000 0x10 0x000
-#define MX25_PAD_CSPI1_MOSI__UART3_RXD         0x158 0x350 0x568 0x12 0x000
-#define MX25_PAD_CSPI1_MOSI__GPIO_1_14         0x158 0x350 0x000 0x15 0x000
+#define MX25_PAD_CSPI1_MOSI__CSPI1_MOSI                0x158 0x350 0x000 0x00 0x000
+#define MX25_PAD_CSPI1_MOSI__UART3_RXD         0x158 0x350 0x568 0x02 0x000
+#define MX25_PAD_CSPI1_MOSI__GPIO_1_14         0x158 0x350 0x000 0x05 0x000
 
-#define MX25_PAD_CSPI1_MISO__CSPI1_MISO                0x15c 0x354 0x000 0x10 0x000
-#define MX25_PAD_CSPI1_MISO__UART3_TXD         0x15c 0x354 0x000 0x12 0x000
-#define MX25_PAD_CSPI1_MISO__GPIO_1_15         0x15c 0x354 0x000 0x15 0x000
+#define MX25_PAD_CSPI1_MISO__CSPI1_MISO                0x15c 0x354 0x000 0x00 0x000
+#define MX25_PAD_CSPI1_MISO__UART3_TXD         0x15c 0x354 0x000 0x02 0x000
+#define MX25_PAD_CSPI1_MISO__GPIO_1_15         0x15c 0x354 0x000 0x05 0x000
 
-#define MX25_PAD_CSPI1_SS0__CSPI1_SS0          0x160 0x358 0x000 0x10 0x000
-#define MX25_PAD_CSPI1_SS0__PWM2_PWMO          0x160 0x358 0x000 0x12 0x000
-#define MX25_PAD_CSPI1_SS0__GPIO_1_16          0x160 0x358 0x000 0x15 0x000
+#define MX25_PAD_CSPI1_SS0__CSPI1_SS0          0x160 0x358 0x000 0x00 0x000
+#define MX25_PAD_CSPI1_SS0__PWM2_PWMO          0x160 0x358 0x000 0x02 0x000
+#define MX25_PAD_CSPI1_SS0__GPIO_1_16          0x160 0x358 0x000 0x05 0x000
 
 #define MX25_PAD_CSPI1_SS1__CSPI1_SS1          0x164 0x35c 0x000 0x00 0x000
 #define MX25_PAD_CSPI1_SS1__I2C3_DAT           0x164 0x35C 0x528 0x01 0x001
 #define MX25_PAD_CSPI1_SS1__UART3_RTS          0x164 0x35c 0x000 0x02 0x000
 #define MX25_PAD_CSPI1_SS1__GPIO_1_17          0x164 0x35c 0x000 0x05 0x000
 
-#define MX25_PAD_CSPI1_SCLK__CSPI1_SCLK                0x168 0x360 0x000 0x10 0x000
-#define MX25_PAD_CSPI1_SCLK__UART3_CTS         0x168 0x360 0x000 0x12 0x000
-#define MX25_PAD_CSPI1_SCLK__GPIO_1_18         0x168 0x360 0x000 0x15 0x000
+#define MX25_PAD_CSPI1_SCLK__CSPI1_SCLK                0x168 0x360 0x000 0x00 0x000
+#define MX25_PAD_CSPI1_SCLK__UART3_CTS         0x168 0x360 0x000 0x02 0x000
+#define MX25_PAD_CSPI1_SCLK__GPIO_1_18         0x168 0x360 0x000 0x05 0x000
 
-#define MX25_PAD_CSPI1_RDY__CSPI1_RDY          0x16c 0x364 0x000 0x10 0x000
-#define MX25_PAD_CSPI1_RDY__GPIO_2_22          0x16c 0x364 0x000 0x15 0x000
+#define MX25_PAD_CSPI1_RDY__CSPI1_RDY          0x16c 0x364 0x000 0x00 0x000
+#define MX25_PAD_CSPI1_RDY__GPIO_2_22          0x16c 0x364 0x000 0x05 0x000
 
 #define MX25_PAD_UART1_RXD__UART1_RXD          0x170 0x368 0x000 0x00 0x000
 #define MX25_PAD_UART1_RXD__UART2_DTR          0x170 0x368 0x000 0x03 0x000
 #define MX25_PAD_UART1_CTS__UART2_RI           0x17c 0x374 0x000 0x03 0x001
 #define MX25_PAD_UART1_CTS__GPIO_4_25          0x17c 0x374 0x000 0x05 0x000
 
-#define MX25_PAD_UART2_RXD__UART2_RXD          0x180 0x378 0x000 0x10 0x000
-#define MX25_PAD_UART2_RXD__GPIO_4_26          0x180 0x378 0x000 0x15 0x000
+#define MX25_PAD_UART2_RXD__UART2_RXD          0x180 0x378 0x000 0x00 0x000
+#define MX25_PAD_UART2_RXD__GPIO_4_26          0x180 0x378 0x000 0x05 0x000
 
-#define MX25_PAD_UART2_TXD__UART2_TXD          0x184 0x37c 0x000 0x10 0x000
-#define MX25_PAD_UART2_TXD__GPIO_4_27          0x184 0x37c 0x000 0x15 0x000
+#define MX25_PAD_UART2_TXD__UART2_TXD          0x184 0x37c 0x000 0x00 0x000
+#define MX25_PAD_UART2_TXD__GPIO_4_27          0x184 0x37c 0x000 0x05 0x000
 
 #define MX25_PAD_UART2_RTS__UART2_RTS          0x188 0x380 0x000 0x00 0x000
 #define MX25_PAD_UART2_RTS__FEC_COL            0x188 0x380 0x504 0x02 0x002
 #define MX25_PAD_UART2_RTS__CC1                        0x188 0x380 0x000 0x03 0x000
 #define MX25_PAD_UART2_RTS__GPIO_4_28          0x188 0x380 0x000 0x05 0x000
 
-#define MX25_PAD_UART2_CTS__UART2_CTS          0x18c 0x384 0x000 0x10 0x000
-#define MX25_PAD_UART2_CTS__FEC_RX_ERR         0x18c 0x384 0x518 0x12 0x002
-#define MX25_PAD_UART2_CTS__GPIO_4_29          0x18c 0x384 0x000 0x15 0x000
+#define MX25_PAD_UART2_CTS__UART2_CTS          0x18c 0x384 0x000 0x00 0x000
+#define MX25_PAD_UART2_CTS__FEC_RX_ERR         0x18c 0x384 0x518 0x02 0x002
+#define MX25_PAD_UART2_CTS__GPIO_4_29          0x18c 0x384 0x000 0x05 0x000
 
+/*
+ * Removing the SION bit from MX25_PAD_SD1_CMD__SD1_CMD breaks detecting an SD
+ * card. According to the i.MX25 reference manual (e.g. Figure 23-2 in IMX25RM
+ * Rev. 2 from 01/2011) this pin is bidirectional. So it seems to be a silicon
+ * bug that configuring the SD1_CMD function doesn't enable the input path for
+ * this pin.
+ * This might have side effects for other hardware units that are connected to
+ * that pin and use the respective function as input.
+ */
 #define MX25_PAD_SD1_CMD__SD1_CMD              0x190 0x388 0x000 0x10 0x000
-#define MX25_PAD_SD1_CMD__CSPI2_MOSI           0x190 0x388 0x4a0 0x11 0x001
-#define MX25_PAD_SD1_CMD__FEC_RDATA2           0x190 0x388 0x50c 0x12 0x002
-#define MX25_PAD_SD1_CMD__GPIO_2_23            0x190 0x388 0x000 0x15 0x000
+#define MX25_PAD_SD1_CMD__CSPI2_MOSI           0x190 0x388 0x4a0 0x01 0x001
+#define MX25_PAD_SD1_CMD__FEC_RDATA2           0x190 0x388 0x50c 0x02 0x002
+#define MX25_PAD_SD1_CMD__GPIO_2_23            0x190 0x388 0x000 0x05 0x000
 
-#define MX25_PAD_SD1_CLK__SD1_CLK              0x194 0x38c 0x000 0x10 0x000
-#define MX25_PAD_SD1_CLK__CSPI2_MISO           0x194 0x38c 0x49c 0x11 0x001
-#define MX25_PAD_SD1_CLK__FEC_RDATA3           0x194 0x38c 0x510 0x12 0x002
-#define MX25_PAD_SD1_CLK__GPIO_2_24            0x194 0x38c 0x000 0x15 0x000
+#define MX25_PAD_SD1_CLK__SD1_CLK              0x194 0x38c 0x000 0x00 0x000
+#define MX25_PAD_SD1_CLK__CSPI2_MISO           0x194 0x38c 0x49c 0x01 0x001
+#define MX25_PAD_SD1_CLK__FEC_RDATA3           0x194 0x38c 0x510 0x02 0x002
+#define MX25_PAD_SD1_CLK__GPIO_2_24            0x194 0x38c 0x000 0x05 0x000
 
-#define MX25_PAD_SD1_DATA0__SD1_DATA0          0x198 0x390 0x000 0x10 0x000
-#define MX25_PAD_SD1_DATA0__CSPI2_SCLK         0x198 0x390 0x494 0x11 0x001
-#define MX25_PAD_SD1_DATA0__GPIO_2_25          0x198 0x390 0x000 0x15 0x000
+#define MX25_PAD_SD1_DATA0__SD1_DATA0          0x198 0x390 0x000 0x00 0x000
+#define MX25_PAD_SD1_DATA0__CSPI2_SCLK         0x198 0x390 0x494 0x01 0x001
+#define MX25_PAD_SD1_DATA0__GPIO_2_25          0x198 0x390 0x000 0x05 0x000
 
-#define MX25_PAD_SD1_DATA1__SD1_DATA1          0x19c 0x394 0x000 0x10 0x000
-#define MX25_PAD_SD1_DATA1__AUD7_RXD           0x19c 0x394 0x478 0x13 0x000
-#define MX25_PAD_SD1_DATA1__GPIO_2_26          0x19c 0x394 0x000 0x15 0x000
+#define MX25_PAD_SD1_DATA1__SD1_DATA1          0x19c 0x394 0x000 0x00 0x000
+#define MX25_PAD_SD1_DATA1__AUD7_RXD           0x19c 0x394 0x478 0x03 0x000
+#define MX25_PAD_SD1_DATA1__GPIO_2_26          0x19c 0x394 0x000 0x05 0x000
 
-#define MX25_PAD_SD1_DATA2__SD1_DATA2          0x1a0 0x398 0x000 0x10 0x000
-#define MX25_PAD_SD1_DATA2__FEC_RX_CLK         0x1a0 0x398 0x514 0x12 0x002
-#define MX25_PAD_SD1_DATA2__GPIO_2_27          0x1a0 0x398 0x000 0x15 0x000
+#define MX25_PAD_SD1_DATA2__SD1_DATA2          0x1a0 0x398 0x000 0x00 0x000
+#define MX25_PAD_SD1_DATA2__FEC_RX_CLK         0x1a0 0x398 0x514 0x02 0x002
+#define MX25_PAD_SD1_DATA2__GPIO_2_27          0x1a0 0x398 0x000 0x05 0x000
 
-#define MX25_PAD_SD1_DATA3__SD1_DATA3          0x1a4 0x39c 0x000 0x10 0x000
-#define MX25_PAD_SD1_DATA3__FEC_CRS            0x1a4 0x39c 0x508 0x12 0x002
-#define MX25_PAD_SD1_DATA3__GPIO_2_28          0x1a4 0x39c 0x000 0x15 0x000
+#define MX25_PAD_SD1_DATA3__SD1_DATA3          0x1a4 0x39c 0x000 0x00 0x000
+#define MX25_PAD_SD1_DATA3__FEC_CRS            0x1a4 0x39c 0x508 0x02 0x002
+#define MX25_PAD_SD1_DATA3__GPIO_2_28          0x1a4 0x39c 0x000 0x05 0x000
 
 #define MX25_PAD_KPP_ROW0__KPP_ROW0            0x1a8 0x3a0 0x000 0x00 0x000
 #define MX25_PAD_KPP_ROW0__UART3_RXD           0x1a8 0x3a0 0x568 0x01 0x001
 #define MX25_PAD_KPP_ROW3__UART1_RI            0x1b4 0x3ac 0x000 0x04 0x000
 #define MX25_PAD_KPP_ROW3__GPIO_3_0            0x1b4 0x3ac 0x000 0x05 0x000
 
-#define MX25_PAD_KPP_COL0__KPP_COL0            0x1b8 0x3b0 0x000 0x10 0x000
-#define MX25_PAD_KPP_COL0__UART4_RXD           0x1b8 0x3b0 0x570 0x11 0x001
-#define MX25_PAD_KPP_COL0__AUD5_TXD            0x1b8 0x3b0 0x000 0x12 0x000
-#define MX25_PAD_KPP_COL0__GPIO_3_1            0x1b8 0x3b0 0x000 0x15 0x000
+#define MX25_PAD_KPP_COL0__KPP_COL0            0x1b8 0x3b0 0x000 0x00 0x000
+#define MX25_PAD_KPP_COL0__UART4_RXD           0x1b8 0x3b0 0x570 0x01 0x001
+#define MX25_PAD_KPP_COL0__AUD5_TXD            0x1b8 0x3b0 0x000 0x02 0x000
+#define MX25_PAD_KPP_COL0__GPIO_3_1            0x1b8 0x3b0 0x000 0x05 0x000
 
-#define MX25_PAD_KPP_COL1__KPP_COL1            0x1bc 0x3b4 0x000 0x10 0x000
-#define MX25_PAD_KPP_COL1__UART4_TXD           0x1bc 0x3b4 0x000 0x11 0x000
-#define MX25_PAD_KPP_COL1__AUD5_RXD            0x1bc 0x3b4 0x000 0x12 0x000
-#define MX25_PAD_KPP_COL1__GPIO_3_2            0x1bc 0x3b4 0x000 0x15 0x000
+#define MX25_PAD_KPP_COL1__KPP_COL1            0x1bc 0x3b4 0x000 0x00 0x000
+#define MX25_PAD_KPP_COL1__UART4_TXD           0x1bc 0x3b4 0x000 0x01 0x000
+#define MX25_PAD_KPP_COL1__AUD5_RXD            0x1bc 0x3b4 0x000 0x02 0x000
+#define MX25_PAD_KPP_COL1__GPIO_3_2            0x1bc 0x3b4 0x000 0x05 0x000
 
 #define MX25_PAD_KPP_COL2__KPP_COL2            0x1c0 0x3b8 0x000 0x00 0x000
 #define MX25_PAD_KPP_COL2__UART4_RTS           0x1c0 0x3b8 0x56c 0x01 0x001
 #define MX25_PAD_KPP_COL2__AUD5_TXC            0x1c0 0x3b8 0x000 0x02 0x000
 #define MX25_PAD_KPP_COL2__GPIO_3_3            0x1c0 0x3b8 0x000 0x05 0x000
 
-#define MX25_PAD_KPP_COL3__KPP_COL3            0x1c4 0x3bc 0x000 0x10 0x000
-#define MX25_PAD_KPP_COL3__UART4_CTS           0x1c4 0x3bc 0x000 0x11 0x000
-#define MX25_PAD_KPP_COL3__AUD5_TXFS           0x1c4 0x3bc 0x000 0x12 0x000
-#define MX25_PAD_KPP_COL3__GPIO_3_4            0x1c4 0x3bc 0x000 0x15 0x000
+#define MX25_PAD_KPP_COL3__KPP_COL3            0x1c4 0x3bc 0x000 0x00 0x000
+#define MX25_PAD_KPP_COL3__UART4_CTS           0x1c4 0x3bc 0x000 0x01 0x000
+#define MX25_PAD_KPP_COL3__AUD5_TXFS           0x1c4 0x3bc 0x000 0x02 0x000
+#define MX25_PAD_KPP_COL3__GPIO_3_4            0x1c4 0x3bc 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_MDC__FEC_MDC              0x1c8 0x3c0 0x000 0x10 0x000
-#define MX25_PAD_FEC_MDC__AUD4_TXD             0x1c8 0x3c0 0x464 0x12 0x001
-#define MX25_PAD_FEC_MDC__GPIO_3_5             0x1c8 0x3c0 0x000 0x15 0x000
+#define MX25_PAD_FEC_MDC__FEC_MDC              0x1c8 0x3c0 0x000 0x00 0x000
+#define MX25_PAD_FEC_MDC__AUD4_TXD             0x1c8 0x3c0 0x464 0x02 0x001
+#define MX25_PAD_FEC_MDC__GPIO_3_5             0x1c8 0x3c0 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_MDIO__FEC_MDIO            0x1cc 0x3c4 0x000 0x10 0x000
-#define MX25_PAD_FEC_MDIO__AUD4_RXD            0x1cc 0x3c4 0x460 0x12 0x001
-#define MX25_PAD_FEC_MDIO__GPIO_3_6            0x1cc 0x3c4 0x000 0x15 0x000
+#define MX25_PAD_FEC_MDIO__FEC_MDIO            0x1cc 0x3c4 0x000 0x00 0x000
+#define MX25_PAD_FEC_MDIO__AUD4_RXD            0x1cc 0x3c4 0x460 0x02 0x001
+#define MX25_PAD_FEC_MDIO__GPIO_3_6            0x1cc 0x3c4 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_TDATA0__FEC_TDATA0                0x1d0 0x3c8 0x000 0x10 0x000
-#define MX25_PAD_FEC_TDATA0__GPIO_3_7          0x1d0 0x3c8 0x000 0x15 0x000
+#define MX25_PAD_FEC_TDATA0__FEC_TDATA0                0x1d0 0x3c8 0x000 0x00 0x000
+#define MX25_PAD_FEC_TDATA0__GPIO_3_7          0x1d0 0x3c8 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_TDATA1__FEC_TDATA1                0x1d4 0x3cc 0x000 0x10 0x000
-#define MX25_PAD_FEC_TDATA1__AUD4_TXFS         0x1d4 0x3cc 0x474 0x12 0x001
-#define MX25_PAD_FEC_TDATA1__GPIO_3_8          0x1d4 0x3cc 0x000 0x15 0x000
+#define MX25_PAD_FEC_TDATA1__FEC_TDATA1                0x1d4 0x3cc 0x000 0x00 0x000
+#define MX25_PAD_FEC_TDATA1__AUD4_TXFS         0x1d4 0x3cc 0x474 0x02 0x001
+#define MX25_PAD_FEC_TDATA1__GPIO_3_8          0x1d4 0x3cc 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_TX_EN__FEC_TX_EN          0x1d8 0x3d0 0x000 0x10 0x000
-#define MX25_PAD_FEC_TX_EN__GPIO_3_9           0x1d8 0x3d0 0x000 0x15 0x000
+#define MX25_PAD_FEC_TX_EN__FEC_TX_EN          0x1d8 0x3d0 0x000 0x00 0x000
+#define MX25_PAD_FEC_TX_EN__GPIO_3_9           0x1d8 0x3d0 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_RDATA0__FEC_RDATA0                0x1dc 0x3d4 0x000 0x10 0x000
-#define MX25_PAD_FEC_RDATA0__GPIO_3_10         0x1dc 0x3d4 0x000 0x15 0x000
+#define MX25_PAD_FEC_RDATA0__FEC_RDATA0                0x1dc 0x3d4 0x000 0x00 0x000
+#define MX25_PAD_FEC_RDATA0__GPIO_3_10         0x1dc 0x3d4 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_RDATA1__FEC_RDATA1                0x1e0 0x3d8 0x000 0x10 0x000
+#define MX25_PAD_FEC_RDATA1__FEC_RDATA1                0x1e0 0x3d8 0x000 0x00 0x000
 /*
  * According to the i.MX25 Reference manual (IMX25RM, Rev. 2,
  * 01/2011) this is CAN1_TX but that's wrong.
  */
-#define MX25_PAD_FEC_RDATA1__CAN2_TX           0x1e0 0x3d8 0x000 0x14 0x000
-#define MX25_PAD_FEC_RDATA1__GPIO_3_11         0x1e0 0x3d8 0x000 0x15 0x000
+#define MX25_PAD_FEC_RDATA1__CAN2_TX           0x1e0 0x3d8 0x000 0x04 0x000
+#define MX25_PAD_FEC_RDATA1__GPIO_3_11         0x1e0 0x3d8 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_RX_DV__FEC_RX_DV          0x1e4 0x3dc 0x000 0x10 0x000
+#define MX25_PAD_FEC_RX_DV__FEC_RX_DV          0x1e4 0x3dc 0x000 0x00 0x000
 /*
  * According to the i.MX25 Reference manual (IMX25RM, Rev. 2,
  * 01/2011) this is CAN1_RX but that's wrong.
  */
-#define MX25_PAD_FEC_RX_DV__CAN2_RX            0x1e4 0x3dc 0x484 0x14 0x000
-#define MX25_PAD_FEC_RX_DV__GPIO_3_12          0x1e4 0x3dc 0x000 0x15 0x000
+#define MX25_PAD_FEC_RX_DV__CAN2_RX            0x1e4 0x3dc 0x484 0x04 0x000
+#define MX25_PAD_FEC_RX_DV__GPIO_3_12          0x1e4 0x3dc 0x000 0x05 0x000
 
-#define MX25_PAD_FEC_TX_CLK__FEC_TX_CLK                0x1e8 0x3e0 0x000 0x10 0x000
-#define MX25_PAD_FEC_TX_CLK__GPIO_3_13         0x1e8 0x3e0 0x000 0x15 0x000
+#define MX25_PAD_FEC_TX_CLK__FEC_TX_CLK                0x1e8 0x3e0 0x000 0x00 0x000
+#define MX25_PAD_FEC_TX_CLK__GPIO_3_13         0x1e8 0x3e0 0x000 0x05 0x000
 
-#define MX25_PAD_RTCK__RTCK                    0x1ec 0x3e4 0x000 0x10 0x000
-#define MX25_PAD_RTCK__OWIRE                   0x1ec 0x3e4 0x000 0x11 0x000
-#define MX25_PAD_RTCK__GPIO_3_14               0x1ec 0x3e4 0x000 0x15 0x000
+#define MX25_PAD_RTCK__RTCK                    0x1ec 0x3e4 0x000 0x00 0x000
+#define MX25_PAD_RTCK__OWIRE                   0x1ec 0x3e4 0x000 0x01 0x000
+#define MX25_PAD_RTCK__GPIO_3_14               0x1ec 0x3e4 0x000 0x05 0x000
 
-#define MX25_PAD_DE_B__DE_B                    0x1f0 0x3ec 0x000 0x10 0x000
-#define MX25_PAD_DE_B__GPIO_2_20               0x1f0 0x3ec 0x000 0x15 0x000
+#define MX25_PAD_DE_B__DE_B                    0x1f0 0x3ec 0x000 0x00 0x000
+#define MX25_PAD_DE_B__GPIO_2_20               0x1f0 0x3ec 0x000 0x05 0x000
 
-#define MX25_PAD_GPIO_A__GPIO_A                        0x1f4 0x3f0 0x000 0x10 0x000
-#define MX25_PAD_GPIO_A__CAN1_TX               0x1f4 0x3f0 0x000 0x16 0x000
-#define MX25_PAD_GPIO_A__USBOTG_PWR            0x1f4 0x3f0 0x000 0x12 0x000
+#define MX25_PAD_GPIO_A__GPIO_A                        0x1f4 0x3f0 0x000 0x00 0x000
+#define MX25_PAD_GPIO_A__CAN1_TX               0x1f4 0x3f0 0x000 0x06 0x000
+#define MX25_PAD_GPIO_A__USBOTG_PWR            0x1f4 0x3f0 0x000 0x02 0x000
 
-#define MX25_PAD_GPIO_B__GPIO_B                        0x1f8 0x3f4 0x000 0x10 0x000
-#define MX25_PAD_GPIO_B__USBOTG_OC             0x1f8 0x3f4 0x57c 0x12 0x001
-#define MX25_PAD_GPIO_B__CAN1_RX               0x1f8 0x3f4 0x480 0x16 0x001
+#define MX25_PAD_GPIO_B__GPIO_B                        0x1f8 0x3f4 0x000 0x00 0x000
+#define MX25_PAD_GPIO_B__USBOTG_OC             0x1f8 0x3f4 0x57c 0x02 0x001
+#define MX25_PAD_GPIO_B__CAN1_RX               0x1f8 0x3f4 0x480 0x06 0x001
 
-#define MX25_PAD_GPIO_C__GPIO_C                        0x1fc 0x3f8 0x000 0x10 0x000
-#define MX25_PAD_GPIO_C__PWM4_PWMO             0x1fc 0x3f8 0x000 0x11 0x000
-#define MX25_PAD_GPIO_C__I2C2_SCL              0x1fc 0x3f8 0x51c 0x12 0x001
-#define MX25_PAD_GPIO_C__KPP_COL4              0x1fc 0x3f8 0x52c 0x13 0x001
-#define MX25_PAD_GPIO_C__CAN2_TX               0x1fc 0x3f8 0x000 0x16 0x000
+#define MX25_PAD_GPIO_C__GPIO_C                        0x1fc 0x3f8 0x000 0x00 0x000
+#define MX25_PAD_GPIO_C__PWM4_PWMO             0x1fc 0x3f8 0x000 0x01 0x000
+#define MX25_PAD_GPIO_C__I2C2_SCL              0x1fc 0x3f8 0x51c 0x02 0x001
+#define MX25_PAD_GPIO_C__KPP_COL4              0x1fc 0x3f8 0x52c 0x03 0x001
+#define MX25_PAD_GPIO_C__CAN2_TX               0x1fc 0x3f8 0x000 0x06 0x000
 
-#define MX25_PAD_GPIO_D__GPIO_D                        0x200 0x3fc 0x000 0x10 0x000
-#define MX25_PAD_GPIO_D__I2C2_SDA              0x200 0x3fc 0x520 0x12 0x001
-#define MX25_PAD_GPIO_D__CAN2_RX               0x200 0x3fc 0x484 0x16 0x001
+#define MX25_PAD_GPIO_D__GPIO_D                        0x200 0x3fc 0x000 0x00 0x000
+#define MX25_PAD_GPIO_D__I2C2_SDA              0x200 0x3fc 0x520 0x02 0x001
+#define MX25_PAD_GPIO_D__CAN2_RX               0x200 0x3fc 0x484 0x06 0x001
 
-#define MX25_PAD_GPIO_E__GPIO_E                        0x204 0x400 0x000 0x10 0x000
-#define MX25_PAD_GPIO_E__I2C3_CLK              0x204 0x400 0x524 0x11 0x002
-#define MX25_PAD_GPIO_E__LD16                  0x204 0x400 0x000 0x12 0x000
-#define MX25_PAD_GPIO_E__AUD7_TXD              0x204 0x400 0x000 0x14 0x000
-#define MX25_PAD_GPIO_E__UART4_RXD             0x204 0x400 0x570 0x16 0x002
+#define MX25_PAD_GPIO_E__GPIO_E                        0x204 0x400 0x000 0x00 0x000
+#define MX25_PAD_GPIO_E__I2C3_CLK              0x204 0x400 0x524 0x01 0x002
+#define MX25_PAD_GPIO_E__LD16                  0x204 0x400 0x000 0x02 0x000
+#define MX25_PAD_GPIO_E__AUD7_TXD              0x204 0x400 0x000 0x04 0x000
+#define MX25_PAD_GPIO_E__UART4_RXD             0x204 0x400 0x570 0x06 0x002
 
-#define MX25_PAD_GPIO_F__GPIO_F                        0x208 0x404 0x000 0x10 0x000
-#define MX25_PAD_GPIO_F__LD17                  0x208 0x404 0x000 0x12 0x000
-#define MX25_PAD_GPIO_F__AUD7_TXC              0x208 0x404 0x000 0x14 0x000
-#define MX25_PAD_GPIO_F__UART4_TXD             0x208 0x404 0x000 0x16 0x000
+#define MX25_PAD_GPIO_F__GPIO_F                        0x208 0x404 0x000 0x00 0x000
+#define MX25_PAD_GPIO_F__LD17                  0x208 0x404 0x000 0x02 0x000
+#define MX25_PAD_GPIO_F__AUD7_TXC              0x208 0x404 0x000 0x04 0x000
+#define MX25_PAD_GPIO_F__UART4_TXD             0x208 0x404 0x000 0x06 0x000
 
-#define MX25_PAD_EXT_ARMCLK__EXT_ARMCLK                0x20c 0x000 0x000 0x10 0x000
-#define MX25_PAD_EXT_ARMCLK__GPIO_3_15         0x20c 0x000 0x000 0x15 0x000
+#define MX25_PAD_EXT_ARMCLK__EXT_ARMCLK                0x20c 0x000 0x000 0x00 0x000
+#define MX25_PAD_EXT_ARMCLK__GPIO_3_15         0x20c 0x000 0x000 0x05 0x000
 
-#define MX25_PAD_UPLL_BYPCLK__UPLL_BYPCLK      0x210 0x000 0x000 0x10 0x000
-#define MX25_PAD_UPLL_BYPCLK__GPIO_3_16                0x210 0x000 0x000 0x15 0x000
+#define MX25_PAD_UPLL_BYPCLK__UPLL_BYPCLK      0x210 0x000 0x000 0x00 0x000
+#define MX25_PAD_UPLL_BYPCLK__GPIO_3_16                0x210 0x000 0x000 0x05 0x000
 
 #define MX25_PAD_VSTBY_REQ__VSTBY_REQ          0x214 0x408 0x000 0x00 0x000
 #define MX25_PAD_VSTBY_REQ__AUD7_TXFS          0x214 0x408 0x000 0x04 0x000
 #define MX25_PAD_VSTBY_REQ__GPIO_3_17          0x214 0x408 0x000 0x05 0x000
 #define MX25_PAD_VSTBY_REQ__UART4_RTS          0x214 0x408 0x56c 0x06 0x002
 
-#define MX25_PAD_VSTBY_ACK__VSTBY_ACK          0x218 0x40c 0x000 0x10 0x000
-#define MX25_PAD_VSTBY_ACK__GPIO_3_18          0x218 0x40c 0x000 0x15 0x000
+#define MX25_PAD_VSTBY_ACK__VSTBY_ACK          0x218 0x40c 0x000 0x00 0x000
+#define MX25_PAD_VSTBY_ACK__GPIO_3_18          0x218 0x40c 0x000 0x05 0x000
 
-#define MX25_PAD_POWER_FAIL__POWER_FAIL                0x21c 0x410 0x000 0x10 0x000
-#define MX25_PAD_POWER_FAIL__AUD7_RXD          0x21c 0x410 0x478 0x14 0x001
-#define MX25_PAD_POWER_FAIL__GPIO_3_19         0x21c 0x410 0x000 0x15 0x000
-#define MX25_PAD_POWER_FAIL__UART4_CTS         0x21c 0x410 0x000 0x16 0x000
+#define MX25_PAD_POWER_FAIL__POWER_FAIL                0x21c 0x410 0x000 0x00 0x000
+#define MX25_PAD_POWER_FAIL__AUD7_RXD          0x21c 0x410 0x478 0x04 0x001
+#define MX25_PAD_POWER_FAIL__GPIO_3_19         0x21c 0x410 0x000 0x05 0x000
+#define MX25_PAD_POWER_FAIL__UART4_CTS         0x21c 0x410 0x000 0x06 0x000
 
-#define MX25_PAD_CLKO__CLKO                    0x220 0x414 0x000 0x10 0x000
-#define MX25_PAD_CLKO__GPIO_2_21               0x220 0x414 0x000 0x15 0x000
+#define MX25_PAD_CLKO__CLKO                    0x220 0x414 0x000 0x00 0x000
+#define MX25_PAD_CLKO__GPIO_2_21               0x220 0x414 0x000 0x05 0x000
 
 #define MX25_PAD_BOOT_MODE0__BOOT_MODE0                0x224 0x000 0x000 0x00 0x000
 #define MX25_PAD_BOOT_MODE0__GPIO_4_30         0x224 0x000 0x000 0x05 0x000
index e224263..2cf896c 100644 (file)
@@ -77,7 +77,7 @@
 &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart4>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 2ab65fc..27846ff 100644 (file)
 };
 
 &uart1 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
        status = "okay";
 };
 
 &uart2 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
        status = "okay";
 };
 
 &uart3 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
        status = "okay";
index 49450db..d0ef496 100644 (file)
 };
 
 &uart1 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
        status = "okay";
index 7c869fe..bfd4946 100644 (file)
 };
 
 &uart1 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
        status = "okay";
 };
 
 &uart2 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
        status = "okay";
 };
 
 &uart3 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
        status = "okay";
index 538568b..cf09e72 100644 (file)
 };
 
 &uart1 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
        status = "okay";
 };
 
 &uart2 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
        status = "okay";
index 1eaa131..c4fadbc 100644 (file)
                        auart0: serial@8006a000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&auart0_pins_a>;
-                               fsl,uart-has-rtscts;
+                               uart-has-rtscts;
                                status = "okay";
                        };
 
index ef944b6..a9c347e 100644 (file)
 
        };
 
-       onewire@0 {
+       onewire {
                compatible = "w1-gpio";
                pinctrl-names = "default";
                pinctrl-0 = <&w1_gpio_pins>;
index 8859474..581e85f 100644 (file)
@@ -84,6 +84,7 @@
 
                reg_3p3v: regulator@0 {
                        compatible = "regulator-fixed";
+                       reg = <0>;
                        regulator-name = "3P3V";
                        regulator-min-microvolt = <3300000>;
                        regulator-max-microvolt = <3300000>;
@@ -92,6 +93,7 @@
 
                reg_lcd_3v3: regulator@1 {
                        compatible = "regulator-fixed";
+                       reg = <1>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&reg_lcd_3v3_pins_mbmx28lc>;
                        regulator-name = "lcd-3v3";
 
                reg_usb0_vbus: regulator@2 {
                        compatible = "regulator-fixed";
+                       reg = <2>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&reg_usb0_vbus_pins_mbmx28lc>;
                        regulator-name = "usb0_vbus";
 
                reg_usb1_vbus: regulator@3 {
                        compatible = "regulator-fixed";
+                       reg = <3>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&reg_usb1_vbus_pins_mbmx28lc>;
                        regulator-name = "usb1_vbus";
index e3ef94a..a5ba669 100644 (file)
                        auart0: serial@8006a000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&auart0_pins_a>;
-                               fsl,uart-has-rtscts;
+                               uart-has-rtscts;
                                status = "okay";
                        };
 
index fd20e99..0ebbc83 100644 (file)
                default-brightness-level = <50>;
        };
 
-       matrix_keypad: matrix-keypad@0 {
+       matrix_keypad: matrix-keypad {
                compatible = "gpio-matrix-keypad";
                col-gpios = <
                        &gpio5 0 GPIO_ACTIVE_HIGH
index 74aa151..0ad893b 100644 (file)
 
                                gpio0: gpio@0 {
                                        compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       reg = <0>;
                                        interrupts = <127>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                gpio1: gpio@1 {
                                        compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       reg = <1>;
                                        interrupts = <126>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                gpio2: gpio@2 {
                                        compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       reg = <2>;
                                        interrupts = <125>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                gpio3: gpio@3 {
                                        compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       reg = <3>;
                                        interrupts = <124>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
 
                                gpio4: gpio@4 {
                                        compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
+                                       reg = <4>;
                                        interrupts = <123>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
index 2424abf..ae6cebb 100644 (file)
@@ -22,6 +22,6 @@
 };
 
 &uart5 {
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
index 4727bbb..e935713 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 8d71552..9bb628f 100644 (file)
@@ -63,6 +63,6 @@
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
index 018d24e..f097b4f 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index d270df3..7282128 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 0ff76a1..984c71b 100644 (file)
                        reg = <0x12000 0x1000>;
                        syscon = <&syscon 0x10 6>;
                };
+
+               fpga_irqc: fpga-irqc@15000 {
+                       compatible = "technologic,ts4800-irqc";
+                       reg = <0x15000 0x1000>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_interrupt_fpga>;
+                       interrupt-parent = <&gpio2>;
+                       interrupts= <9 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
+
+               can@1a000 {
+                       compatible = "technologic,sja1000";
+                       reg = <0x1a000 0x100>;
+                       interrupt-parent = <&fpga_irqc>;
+                       interrupts = <1>;
+                       reg-io-width = <2>;
+                       nxp,tx-output-config = <0x06>;
+                       nxp,external-clock-frequency = <24000000>;
+               };
        };
 };
 
                >;
        };
 
+       pinctrl_interrupt_fpga: fpgaicgrp {
+               fsl,pins = <
+                       MX51_PAD_EIM_D27__GPIO2_9               0xe5
+               >;
+       };
+
        pinctrl_lcd: lcdgrp {
                fsl,pins = <
                        MX51_PAD_DISP1_DAT0__DISP1_DAT0         0x5
index 542ab9e..9f51900 100644 (file)
@@ -56,7 +56,7 @@
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index e03373a..91a6a9f 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "disabled";
 };
 
index bd3dfef..57e75f1 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index bfbed52..2becd7c 100644 (file)
@@ -97,6 +97,7 @@
        phy-reset-gpios = <&gpio3 31 0>;
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
index 8e67ca2..207b85b 100644 (file)
@@ -93,7 +93,7 @@
                        reg = <0>;
 
                        lcd_display_in: endpoint {
-                               remote-endpoint = <&ipu1_di0_disp1>;
+                               remote-endpoint = <&ipu1_di1_disp1>;
                        };
                };
 
        };
 };
 
-&ipu1_di0_disp1 {
+&ipu1_di1_disp1 {
        remote-endpoint = <&lcd_display_in>;
 };
 
index d6515f7..d8acf15 100644 (file)
        phy-mode = "rgmii";
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
        fsl,dte-mode;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index f7e17e2..f2adc60 100644 (file)
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index bb66dfd..cf3fd31 100644 (file)
                };
        };
 
+       gpio-poweroff {
+               compatible = "gpio-poweroff";
+               gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
+               status = "okay";
+       };
+
        reg_wl18xx_vmmc: regulator-wl18xx {
                compatible = "regulator-fixed";
                regulator-name = "vwl1807";
index 99b46f8..b5de7e6 100644 (file)
@@ -3,15 +3,46 @@
  *
  * Author: Valentin Raevsky <valentin@compulab.co.il>
  *
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
  *
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
 #include "imx6q.dtsi"
 
 / {
                        linux,default-trigger = "heartbeat";
                };
        };
+
+       reg_pcie_power_on_gpio: regulator-pcie-power-on-gpio {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-pcie-power-on-gpio";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usb_h1_vbus: usb_h1_vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_h1_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usb_otg_vbus: usb_otg_vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&cpu0 {
+       /*
+        * Although the imx6q fuse indicates that 1.2GHz operation is possible,
+        * the module behaves unstable at this frequency. Hence, remove the
+        * 1.2GHz operation point here.
+        */
+       operating-points = <
+               /* kHz  uV */
+               996000  1250000
+               852000  1250000
+               792000  1175000
+               396000  975000
+       >;
+       fsl,soc-operating-points = <
+               /* ARM kHz      SOC-PU uV */
+               996000          1250000
+               852000          1250000
+               792000          1175000
+               396000          1175000
+       >;
+};
+
+&ecspi1 {
+       fsl,spi-num-chipselects = <2>;
+       cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>, <&gpio3 19 GPIO_ACTIVE_HIGH>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       status = "okay";
+
+       m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p", "jedec,spi-nor";
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+       };
 };
 
 &fec {
        status = "okay";
 };
 
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+       clock-frequency = <100000>;
+
+       eeprom@50 {
+               compatible = "at24,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+};
+
 &iomuxc {
-       imx6q-cm-fx6 {
-               pinctrl_enet: enetgrp {
-                       fsl,pins = <
-                               MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
-                               MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
-                               MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
-                               MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
-                               MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
-                               MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
-                               MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
-                               MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
-                       >;
-               };
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
+                       MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
+                       MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
+                       MX6QDL_PAD_EIM_EB2__GPIO2_IO30  0x100b1
+                       MX6QDL_PAD_EIM_D19__GPIO3_IO19  0x100b1
+               >;
+       };
 
-               pinctrl_gpmi_nand: gpminandgrp {
-                       fsl,pins = <
-                               MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
-                               MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
-                               MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
-                               MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
-                               MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
-                               MX6QDL_PAD_NANDF_CS1__NAND_CE1_B        0xb0b1
-                               MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
-                               MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
-                               MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
-                               MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
-                               MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
-                               MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
-                               MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
-                               MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
-                               MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
-                               MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
-                               MX6QDL_PAD_SD4_DAT0__NAND_DQS           0x00b1
-                       >;
-               };
+       pinctrl_enet: enetgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b0b0
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b0b0
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b0b0
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b0b0
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b0b0
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+                       MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x1b0b0
+                       MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
+                       MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
+                       MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
+               >;
+       };
 
-               pinctrl_uart4: uart4grp {
-                       fsl,pins = <
-                               MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
-                               MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA      0x1b0b1
-                       >;
-               };
+       pinctrl_gpmi_nand: gpminandgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
+                       MX6QDL_PAD_NANDF_ALE__NAND_ALE          0xb0b1
+                       MX6QDL_PAD_NANDF_WP_B__NAND_WP_B        0xb0b1
+                       MX6QDL_PAD_NANDF_RB0__NAND_READY_B      0xb000
+                       MX6QDL_PAD_NANDF_CS0__NAND_CE0_B        0xb0b1
+                       MX6QDL_PAD_NANDF_CS1__NAND_CE1_B        0xb0b1
+                       MX6QDL_PAD_SD4_CMD__NAND_RE_B           0xb0b1
+                       MX6QDL_PAD_SD4_CLK__NAND_WE_B           0xb0b1
+                       MX6QDL_PAD_NANDF_D0__NAND_DATA00        0xb0b1
+                       MX6QDL_PAD_NANDF_D1__NAND_DATA01        0xb0b1
+                       MX6QDL_PAD_NANDF_D2__NAND_DATA02        0xb0b1
+                       MX6QDL_PAD_NANDF_D3__NAND_DATA03        0xb0b1
+                       MX6QDL_PAD_NANDF_D4__NAND_DATA04        0xb0b1
+                       MX6QDL_PAD_NANDF_D5__NAND_DATA05        0xb0b1
+                       MX6QDL_PAD_NANDF_D6__NAND_DATA06        0xb0b1
+                       MX6QDL_PAD_NANDF_D7__NAND_DATA07        0xb0b1
+                       MX6QDL_PAD_SD4_DAT0__NAND_DQS           0x00b1
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_3__I2C3_SCL     0x4001b8b1
+                       MX6QDL_PAD_GPIO_6__I2C3_SDA     0x4001b8b1
+               >;
+       };
+
+       pinctrl_pcie: pciegrp {
+               fsl,pins = <
+                       MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b1
+                       MX6QDL_PAD_EIM_CS1__GPIO2_IO24  0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL0__UART4_TX_DATA      0x1b0b1
+                       MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA      0x1b0b1
+               >;
        };
+
+       pinctrl_usbh1: usbh1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_RST__GPIO7_IO08  0x1b0b1
+               >;
+       };
+
+       pinctrl_usbotg: usbotggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID       0x17059
+                       MX6QDL_PAD_EIM_D22__GPIO3_IO22  0x130b0
+               >;
+       };
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie>;
+       reset-gpio = <&gpio1 26 GPIO_ACTIVE_LOW>;
+       vdd-supply = <&reg_pcie_power_on_gpio>;
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&snvs_poweroff {
+       status = "okay";
 };
 
 &uart4 {
        pinctrl-0 = <&pinctrl_uart4>;
        status = "okay";
 };
+
+&usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbh1>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       dr_mode = "otg";
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6q-h100.dts b/arch/arm/boot/dts/imx6q-h100.dts
new file mode 100644 (file)
index 0000000..65e66f9
--- /dev/null
@@ -0,0 +1,395 @@
+/*
+ * Copyright (C) 2015 Lucas Stach <kernel@pengutronix.de>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-microsom.dtsi"
+#include "imx6qdl-microsom-ar8035.dtsi"
+
+/ {
+       model = "Auvidea H100";
+       compatible = "auvidea,h100", "fsl,imx6q";
+
+       aliases {
+               rtc0 = &rtc;
+               rtc1 = &snvs_rtc;
+       };
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       hdmi_osc: hdmi-osc {
+               compatible = "fixed-clock";
+               clock-output-names = "hdmi-osc";
+               clock-frequency = <27000000>;
+               #clock-cells = <0>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_h100_leds>;
+
+               led0: power {
+                       label = "power";
+                       gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+
+               led1: stream {
+                       label = "stream";
+                       gpios = <&gpio2 29 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led2: rec {
+                       label = "rec";
+                       gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_hdmi: regulator-hdmi {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_h100_reg_hdmi>;
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+               regulator-name = "V_HDMI";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       reg_nvcc_sd2: regulator-nvcc-sd2 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_h100_reg_nvcc_sd2>;
+               compatible = "regulator-gpio";
+               regulator-name = "NVCC_SD2";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-type = "voltage";
+               regulator-boot-on;
+               regulator-always-on;
+               gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x1
+                         3300000 0x0>;
+       };
+
+       reg_usbh1_vbus: regulator-usb-h1-vbus {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_h100_usbh1_vbus>;
+               regulator-name = "USB_H1_VBUS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_usbotg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_h100_usbotg_vbus>;
+               regulator-name = "USB_OTG_VBUS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       sound-sgtl5000 {
+               compatible = "fsl,imx-audio-sgtl5000";
+               model = "H100 on-board codec";
+               audio-codec = <&sgtl5000>;
+               audio-routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+               mux-ext-port = <5>;
+               mux-int-port = <1>;
+               ssi-controller = <&ssi1>;
+       };
+};
+
+&audmux {
+       status = "okay";
+};
+
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_h100_hdmi>;
+       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_h100_i2c1>;
+       status = "okay";
+
+       eeprom: 24c02@51 {
+               compatible = "microchip,24c02", "at24";
+               reg = <0x51>;
+       };
+
+       rtc: pcf8523@68 {
+               compatible = "nxp,pcf8523";
+               reg = <0x68>;
+       };
+
+       sgtl5000: sgtl5000@0a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_h100_sgtl5000>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               VDDA-supply = <&reg_3p3v>;
+               VDDIO-supply = <&reg_3p3v>;
+       };
+
+       tc358743: tc358743@0f {
+               compatible = "toshiba,tc358743";
+               reg = <0x0f>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_h100_tc358743>;
+               clocks = <&hdmi_osc>;
+               clock-names = "refclk";
+               reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
+               /* IRQ has a wrong pull resistor which renders it useless  */
+
+               port@0 {
+                       tc358743_out: endpoint {
+                               remote-endpoint = <&mipi_csi2_in>;
+                               data-lanes = <1 2 3 4>;
+                               clock-lanes = <0>;
+                               clock-noncontinuous;
+                               link-frequencies = /bits/ 64 <297000000>;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_h100_i2c2>;
+       status = "okay";
+};
+
+&iomuxc {
+       h100 {
+               pinctrl_h100_hdmi: h100-hdmi {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE   0x1f8b0
+                       >;
+               };
+
+               pinctrl_h100_i2c1: h100-i2c1 {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D21__I2C1_SCL            0x4001b8b1
+                               MX6QDL_PAD_EIM_D28__I2C1_SDA            0x4001b8b1
+                       >;
+               };
+
+               pinctrl_h100_i2c2: h100-i2c2 {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_COL3__I2C2_SCL           0x4001b8b1
+                               MX6QDL_PAD_KEY_ROW3__I2C2_SDA           0x4001b8b1
+                       >;
+               };
+
+               pinctrl_h100_leds: pinctrl-h100-leds {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_DA0__GPIO3_IO00          0x1b0b0
+                               MX6QDL_PAD_EIM_EB1__GPIO2_IO29          0x1b0b0
+                               MX6QDL_PAD_EIM_EB0__GPIO2_IO28          0x1b0b0
+                       >;
+               };
+
+               pinctrl_h100_reg_hdmi: h100-reg-hdmi {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_A18__GPIO2_IO20          0x1b0b0
+                       >;
+               };
+
+               pinctrl_h100_reg_nvcc_sd2: h100-reg-nvcc-sd2 {
+                       fsl,pins = <
+                               MX6QDL_PAD_KEY_ROW1__GPIO4_IO09         0x1b0b0
+                       >;
+               };
+
+               pinctrl_h100_sgtl5000: h100-sgtl5000 {
+                       fsl,pins = <
+                               MX6QDL_PAD_DISP0_DAT19__AUD5_RXD        0x130b0
+                               MX6QDL_PAD_KEY_COL0__AUD5_TXC           0x130b0
+                               MX6QDL_PAD_KEY_ROW0__AUD5_TXD           0x110b0
+                               MX6QDL_PAD_KEY_COL1__AUD5_TXFS          0x130b0
+                               MX6QDL_PAD_GPIO_5__CCM_CLKO1            0x130b0
+                       >;
+               };
+
+               pinctrl_h100_tc358743: h100-tc358743 {
+                       fsl,pins = <
+                               MX6QDL_PAD_NANDF_CS2__GPIO6_IO15        0x1b0b0
+                       >;
+               };
+
+               pinctrl_h100_uart2: h100-uart2 {
+                       fsl,pins = <
+                               MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA      0x1b0b1
+                               MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA      0x1b0b1
+                       >;
+               };
+
+               pinctrl_h100_usbh1_vbus: hummingboard-usbh1-vbus {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_0__GPIO1_IO00           0x1b0b0
+                       >;
+               };
+
+               pinctrl_h100_usbotg_id: hummingboard-usbotg-id {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x13059
+                       >;
+               };
+
+               pinctrl_h100_usbotg_vbus: hummingboard-usbotg-vbus {
+                       fsl,pins = <
+                               MX6QDL_PAD_EIM_D22__GPIO3_IO22          0x1b0b0
+                       >;
+               };
+
+               pinctrl_h100_usdhc2: h100-usdhc2 {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1f071
+                               MX6QDL_PAD_SD2_CMD__SD2_CMD             0x17059
+                               MX6QDL_PAD_SD2_CLK__SD2_CLK             0x10059
+                               MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x17059
+                               MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x17059
+                               MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x17059
+                               MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x13059
+                       >;
+               };
+
+               pinctrl_h100_usdhc2_100mhz: h100-usdhc2-100mhz {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1f071
+                               MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170b9
+                               MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100b9
+                               MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x170b9
+                               MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x170b9
+                               MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x170b9
+                               MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x170b9
+                       >;
+               };
+
+               pinctrl_h100_usdhc2_200mhz: h100-usdhc2-200mhz {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1f071
+                               MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170f9
+                               MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100f9
+                               MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x170f9
+                               MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x170f9
+                               MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x170f9
+                               MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x170f9
+                       >;
+               };
+       };
+};
+
+&mipi_csi {
+       status = "okay";
+
+       port@0 {
+               mipi_csi2_in: endpoint {
+                       remote-endpoint = <&tc358743_out>;
+                       data-lanes = <1 2 3 4>;
+                       clock-lanes = <0>;
+                       clock-noncontinuous;
+                       link-frequencies = /bits/ 64 <297000000>;
+               };
+       };
+};
+
+&ssi1 {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_h100_uart2>;
+       status = "okay";
+};
+
+&usbh1 {
+       disable-over-current;
+       vbus-supply = <&reg_usbh1_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       disable-over-current;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_h100_usbotg_id>;
+       vbus-supply = <&reg_usbotg_vbus>;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_h100_usdhc2>;
+       pinctrl-1 = <&pinctrl_h100_usdhc2_100mhz>;
+       pinctrl-2 = <&pinctrl_h100_usdhc2_200mhz>;
+       vmmc-supply = <&reg_3p3v>;
+       vqmmc-supply = <&reg_nvcc_sd2>;
+       cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
index 1926b13..d7c8ccb 100644 (file)
 &pcie {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie>;
-       reset-gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
+       reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
        status = "okay";
 };
 
diff --git a/arch/arm/boot/dts/imx6q-utilite-pro.dts b/arch/arm/boot/dts/imx6q-utilite-pro.dts
new file mode 100644 (file)
index 0000000..6199063
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+ * Copyright 2013 CompuLab Ltd.
+ * Copyright 2016 Christopher Spinrath
+ *
+ * Based on the devicetree distributed with the vendor kernel for the
+ * Utilite Pro:
+ *     Copyright 2013 CompuLab Ltd.
+ *     Author: Valentin Raevsky <valentin@compulab.co.il>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/input/input.h>
+#include "imx6q-cm-fx6.dts"
+
+/ {
+       model = "CompuLab Utilite Pro";
+       compatible = "compulab,utilite-pro", "compulab,cm-fx6", "fsl,imx6q";
+
+       aliases {
+               ethernet1 = &eth1;
+               rtc0 = &em3027;
+               rtc1 = &snvs_rtc;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               power {
+                       label = "Power Button";
+                       gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       gpio-key,wakeup;
+               };
+       };
+};
+
+&hdmi {
+       ddc-i2c-bus = <&i2c2>;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "at24,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       em3027: rtc@56 {
+               compatible = "emmicro,em3027";
+               reg = <0x56>;
+       };
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_gpio_keys: gpio_keysgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
+                       MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
+                       MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_GPIO_8__UART2_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x1b0b1
+                       MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x1b0b1
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD     0x17059
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK     0x10059
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0  0x17059
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1  0x17059
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2  0x17059
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3  0x17059
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD     0x170B9
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK     0x100B9
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0  0x170B9
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1  0x170B9
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2  0x170B9
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3  0x170B9
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD     0x170F9
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK     0x100F9
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0  0x170F9
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1  0x170F9
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2  0x170F9
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3  0x170F9
+               >;
+       };
+};
+
+&pcie {
+       pcie@0,0 {
+               reg = <0x000000 0 0 0 0>;
+               #address-cells = <3>;
+               #size-cells = <2>;
+
+               /* non-removable i211 ethernet card */
+               eth1: intel,i211@pcie0,0 {
+                       reg = <0x010000 0 0 0 0>;
+               };
+       };
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       no-1-8-v;
+       broken-cd;
+       keep-power-in-suspend;
+       status = "okay";
+};
index 922b1dd..315e033 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>;
        fsl,dte-mode;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "disabled";
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2_dte>;
        fsl,dte-mode;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "disabled";
 };
 
index 865c9a2..edbce22 100644 (file)
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3 &pinctrl_gsm>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index ecbc6eb..54f4f01 100644 (file)
 &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart4>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart5 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart5>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 7d81100..7fff02c 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 86460e4..3d62401 100644 (file)
 &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index e456b5c..cfd50ea 100644 (file)
        txd3-skew-ps = <0>;
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 657da6b..9677bf3 100644 (file)
        txd3-skew-ps = <0>;
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
index 73915db..97d9c33 100644 (file)
        txd3-skew-ps = <0>;
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
index d354d40..6aa193f 100644 (file)
        phy-mode = "rgmii";
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
index c47fe6c..f65fdfc 100644 (file)
        txd3-skew-ps = <0>;
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
index 5248e7b..d77ea94 100644 (file)
                                MX6QDL_PAD_SD4_DAT7__SD4_DATA7          0x17059
                        >;
                };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_1__WDOG2_B              0x1b0b0
+                       >;
+               };
        };
 
        gpio_leds {
 &pcie {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie>;
-       reset-gpio = <&gpio7 12 0>;
+       reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
        status = "okay";
 };
 
        no-1-8-v;
        status = "okay";
 };
+
+&wdog1 {
+       status = "disabled";
+};
+
+&wdog2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
index 39b85ae..ac9529f 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 8e7c40e..3ffe00c 100644 (file)
        phy-reset-gpios = <&gpio3 29 0>;
        interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
                              <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
        status = "okay";
 };
 
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index ed613eb..b620ac8 100644 (file)
                        cache-level = <2>;
                        arm,tag-latency = <4 2 3>;
                        arm,data-latency = <4 2 3>;
+                       arm,shared-override;
                };
 
                pcie: pcie@0x01000000 {
                        ocotp: ocotp@021bc000 {
                                compatible = "fsl,imx6q-ocotp", "syscon";
                                reg = <0x021bc000 0x4000>;
+                               clocks = <&clks IMX6QDL_CLK_IIM>;
                        };
 
                        tzasc@021d0000 { /* TZASC1 */
                                #size-cells = <0>;
                                reg = <3>;
 
-                               ipu1_di0_disp1: disp1-endpoint {
+                               ipu1_di1_disp1: disp1-endpoint {
                                };
 
                                ipu1_di1_hdmi: hdmi-endpoint {
index 058bcdc..72c7745 100644 (file)
@@ -84,7 +84,7 @@
 &uart5 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart5>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index d12b250..5425150 100644 (file)
                                             <0 54 IRQ_TYPE_LEVEL_HIGH>,
                                             <0 127 IRQ_TYPE_LEVEL_HIGH>;
 
-                               regulator-1p1@110 {
+                               regulator-1p1 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd1p1";
                                        regulator-min-microvolt = <800000>;
                                        anatop-max-voltage = <1375000>;
                                };
 
-                               regulator-3p0@120 {
+                               regulator-3p0 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd3p0";
                                        regulator-min-microvolt = <2800000>;
                                        anatop-max-voltage = <3400000>;
                                };
 
-                               regulator-2p5@130 {
+                               regulator-2p5 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd2p5";
                                        regulator-min-microvolt = <2100000>;
                                        anatop-max-voltage = <2850000>;
                                };
 
-                               reg_arm: regulator-vddcore@140 {
+                               reg_arm: regulator-vddcore {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddarm";
                                        regulator-min-microvolt = <725000>;
                                        anatop-max-voltage = <1450000>;
                                };
 
-                               reg_pu: regulator-vddpu@140 {
+                               reg_pu: regulator-vddpu {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddpu";
                                        regulator-min-microvolt = <725000>;
                                        anatop-max-voltage = <1450000>;
                                };
 
-                               reg_soc: regulator-vddsoc@140 {
+                               reg_soc: regulator-vddsoc {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddsoc";
                                        regulator-min-microvolt = <725000>;
                        ocotp: ocotp@021bc000 {
                                compatible = "fsl,imx6sl-ocotp", "syscon";
                                reg = <0x021bc000 0x4000>;
+                               clocks = <&clks IMX6SL_CLK_OCOTP>;
                        };
 
                        audmux: audmux@021d8000 {
index ba62348..9b817f3 100644 (file)
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index e5eafe4..9d70cfd 100644 (file)
 &uart5 { /* for bluetooth */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart5>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        imx6x-sdb {
                pinctrl_audmux: audmuxgrp {
                                MX6SX_PAD_SD4_DATA6__GPIO6_IO_20        0x17059 /* WP */
                        >;
                };
+
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX6SX_PAD_GPIO1_IO13__WDOG1_WDOG_ANY 0x30b0
+                       >;
+               };
        };
 };
index 6a993bf..2863c52 100644 (file)
                                             <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
 
-                               regulator-1p1@110 {
+                               regulator-1p1 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd1p1";
                                        regulator-min-microvolt = <800000>;
                                        anatop-max-voltage = <1375000>;
                                };
 
-                               regulator-3p0@120 {
+                               regulator-3p0 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd3p0";
                                        regulator-min-microvolt = <2800000>;
                                        anatop-max-voltage = <3400000>;
                                };
 
-                               regulator-2p5@130 {
+                               regulator-2p5 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd2p5";
                                        regulator-min-microvolt = <2100000>;
                                        anatop-max-voltage = <2875000>;
                                };
 
-                               reg_arm: regulator-vddcore@140 {
+                               reg_arm: regulator-vddcore {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddarm";
                                        regulator-min-microvolt = <725000>;
                                        anatop-max-voltage = <1450000>;
                                };
 
-                               reg_pcie: regulator-vddpcie@140 {
+                               reg_pcie: regulator-vddpcie {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddpcie";
                                        regulator-min-microvolt = <725000>;
                                        anatop-max-voltage = <1450000>;
                                };
 
-                               reg_soc: regulator-vddsoc@140 {
+                               reg_soc: regulator-vddsoc {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddsoc";
                                        regulator-min-microvolt = <725000>;
index 668a729..e281d50 100644 (file)
                reg = <0x80000000 0x20000000>;
        };
 
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 5000000>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               status = "okay";
+       };
+
        regulators {
                compatible = "simple-bus";
                #address-cells = <1>;
        };
 };
 
+
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif_dat
+                    &pinctrl_lcdif_ctrl>;
+       display = <&display0>;
+       status = "okay";
+
+       display0: display {
+               bits-per-pixel = <16>;
+               bus-width = <24>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+
+                       timing0: timing0 {
+                               clock-frequency = <9200000>;
+                               hactive = <480>;
+                               vactive = <272>;
+                               hfront-porch = <8>;
+                               hback-porch = <4>;
+                               hsync-len = <41>;
+                               vback-porch = <2>;
+                               vfront-porch = <4>;
+                               vsync-len = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+};
+
 &qspi {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_qspi>;
                          <&clks IMX6UL_CLK_SAI2>;
        assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
        assigned-clock-rates = <0>, <12288000>;
+       fsl,sai-mclk-direction-output;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        pinctrl-names = "default";
 
                        MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
                >;
        };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY    0x30b0
+               >;
+       };
 };
index 8ce1fec..86f68fa 100644 (file)
        phy-mode = "rmii";
        phy-handle = <&ethphy1>;
        status = "okay";
-       phy-reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
-       phy-reset-duration = <11>;
+       phy-reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
+       phy-reset-duration = <1>;
 
        mdio {
                #address-cells = <1>;
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index d25899b..7c5dd1b 100644 (file)
 
 &uart1 {
        pinctrl-0 = <&pinctrl_uart1>;
-       /delete-property/ fsl,uart-has-rtscts;
+       /delete-property/ uart-has-rtscts;
 };
 
 &uart2 {
        pinctrl-0 = <&pinctrl_uart2>;
-       /delete-property/ fsl,uart-has-rtscts;
+       /delete-property/ uart-has-rtscts;
        status = "okay";
 };
 
index 437e9aa..530e9ca 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
 &uart5 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart5 &pinctrl_uart5_rtscts>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 4356b65..33b95d7 100644 (file)
@@ -36,6 +36,9 @@
                serial5 = &uart6;
                serial6 = &uart7;
                serial7 = &uart8;
+               sai1 = &sai1;
+               sai2 = &sai2;
+               sai3 = &sai3;
                spi0 = &ecspi1;
                spi1 = &ecspi2;
                spi2 = &ecspi3;
                                             <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
 
-                               reg_3p0: regulator-3p0@120 {
+                               reg_3p0: regulator-3p0 {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vdd3p0";
                                        regulator-min-microvolt = <2625000>;
                                        anatop-enable-bit = <0>;
                                };
 
-                               reg_arm: regulator-vddcore@140 {
+                               reg_arm: regulator-vddcore {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "cpu";
                                        regulator-min-microvolt = <725000>;
                                        anatop-max-voltage = <1450000>;
                                };
 
-                               reg_soc: regulator-vddsoc@140 {
+                               reg_soc: regulator-vddsoc {
                                        compatible = "fsl,anatop-regulator";
                                        regulator-name = "vddsoc";
                                        regulator-min-microvolt = <725000>;
diff --git a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
new file mode 100644 (file)
index 0000000..1545661
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2016 Toradex AG
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/ {
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&bl {
+       brightness-levels = <0 4 8 16 32 64 128 255>;
+       default-brightness-level = <6>;
+       status = "okay";
+};
+
+&adc1 {
+       status = "okay";
+};
+
+&adc2 {
+       status = "okay";
+};
+
+&fec1 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+
+       /* M41T0M6 real time clock on carrier board */
+       rtc: m41t0m6@68 {
+               compatible = "st,m41t00";
+               reg = <0x68>;
+       };
+};
+
+&lcdif {
+       display = <&display0>;
+       status = "okay";
+
+       display0: lcd-display {
+               bits-per-pixel = <16>;
+               bus-width = <18>;
+
+               display-timings {
+                       native-mode = <&timing_vga>;
+
+                       /* Standard VGA timing */
+                       timing_vga: 640x480 {
+                               clock-frequency = <25175000>;
+                               hactive = <640>;
+                               vactive = <480>;
+                               hback-porch = <40>;
+                               hfront-porch = <24>;
+                               vback-porch = <32>;
+                               vfront-porch = <11>;
+                               hsync-len = <96>;
+                               vsync-len = <2>;
+                               de-active = <1>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm3 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>;
+       no-1-8-v;
+       cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+       keep-power-in-suspend;
+       wakeup-source;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
new file mode 100644 (file)
index 0000000..0a9d3a8
--- /dev/null
@@ -0,0 +1,571 @@
+/*
+ * Copyright 2016 Toradex AG
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/ {
+       bl: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 5000000>;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_vref_1v8: regulator-vref-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vref-1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+};
+
+&adc1 {
+       vref-supply = <&reg_vref_1v8>;
+};
+
+&adc2 {
+       vref-supply = <&reg_vref_1v8>;
+};
+
+&cpu0 {
+       arm-supply = <&reg_DCDC2>;
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+               <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+               <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
+               <&clks IMX7D_PLL_ENET_MAIN_50M_CLK>;
+       clock-names = "ipg", "ahb", "ptp", "enet_clk_ref";
+       assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <100000000>;
+       phy-mode = "rmii";
+       phy-supply = <&reg_LDO1>;
+       fsl,magic-packet;
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1 &pinctrl_i2c1_int>;
+       status = "okay";
+
+       ad7879@2c {
+               compatible = "adi,ad7879-1";
+               reg = <0x2c>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+               touchscreen-max-pressure = <4096>;
+               adi,resistance-plate-x = <120>;
+               adi,first-conversion-delay = /bits/ 8 <3>;
+               adi,acquisition-time = /bits/ 8 <1>;
+               adi,median-filter-size = /bits/ 8 <2>;
+               adi,averaging = /bits/ 8 <1>;
+               adi,conversion-interval = /bits/ 8 <255>;
+       };
+
+       pmic@33 {
+               compatible = "ricoh,rn5t567";
+               reg = <0x33>;
+
+               regulators {
+                       reg_DCDC1: DCDC1 {  /* V1.0_SOC */
+                               regulator-min-microvolt =  <975000>;
+                               regulator-max-microvolt = <1125000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_DCDC2: DCDC2 { /* V1.1_ARM */
+                               regulator-min-microvolt =  <975000>;
+                               regulator-max-microvolt = <1125000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_DCDC3: DCDC3 { /* V1.8 */
+                               regulator-min-microvolt = <1775000>;
+                               regulator-max-microvolt = <1825000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_DCDC4: DCDC4 { /* V1.35_DRAM */
+                               regulator-min-microvolt = <1325000>;
+                               regulator-max-microvolt = <1375000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_LDO1: LDO1 { /* PWR_EN_+V3.3_ETH */
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       reg_LDO2: LDO2 { /* +V1.8_SD */
+                               regulator-min-microvolt = <1775000>;
+                               regulator-max-microvolt = <3325000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_LDO3: LDO3 { /* PWR_EN_+V3.3_LPSR */
+                               regulator-min-microvolt = <3275000>;
+                               regulator-max-microvolt = <3325000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_LDO4: LDO4 { /* V1.8_LPSR */
+                               regulator-min-microvolt = <1775000>;
+                               regulator-max-microvolt = <1825000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_LDO5: LDO5 { /* PWR_EN_+V3.3 */
+                               regulator-min-microvolt = <1775000>;
+                               regulator-max-microvolt = <1825000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c4 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+};
+
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif_dat
+                    &pinctrl_lcdif_ctrl>;
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+};
+
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm2>;
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+};
+
+&reg_1p0d {
+       vin-supply = <&reg_DCDC3>;
+};
+
+&snvs_pwrkey {
+       status = "disabled";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_ctrl1 &pinctrl_uart1_ctrl2>;
+       assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+       uart-has-rtscts;
+       fsl,dte-mode;
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       assigned-clocks = <&clks IMX7D_UART2_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+       uart-has-rtscts;
+       fsl,dte-mode;
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       assigned-clocks = <&clks IMX7D_UART3_ROOT_SRC>;
+       assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+       fsl,dte-mode;
+};
+
+&usbotg1 {
+       dr_mode = "host";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4>;
+
+       pinctrl_gpio1: gpio1-grp {
+               fsl,pins = <
+                       MX7D_PAD_ENET1_RGMII_RD3__GPIO7_IO3     0x14 /* SODIMM 55 */
+                       MX7D_PAD_ENET1_RGMII_RD2__GPIO7_IO2     0x14 /* SODIMM 63 */
+                       MX7D_PAD_SD1_RESET_B__GPIO5_IO2         0X14 /* SODIMM 73 */
+                       MX7D_PAD_SAI1_RX_SYNC__GPIO6_IO16       0X14 /* SODIMM 77 */
+                       MX7D_PAD_EPDC_DATA09__GPIO2_IO9         0x14 /* SODIMM 89 */
+                       MX7D_PAD_EPDC_DATA08__GPIO2_IO8         0x14 /* SODIMM 91 */
+                       MX7D_PAD_LCD_RESET__GPIO3_IO4           0x14 /* SODIMM 93 */
+                       MX7D_PAD_EPDC_DATA13__GPIO2_IO13        0x14 /* SODIMM 95 */
+                       MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11    0x14 /* SODIMM 99 */
+                       MX7D_PAD_EPDC_DATA10__GPIO2_IO10        0x14 /* SODIMM 105 */
+                       MX7D_PAD_EPDC_DATA15__GPIO2_IO15        0x14 /* SODIMM 107 */
+                       MX7D_PAD_EPDC_DATA00__GPIO2_IO0         0x14 /* SODIMM 111 */
+                       MX7D_PAD_EPDC_DATA01__GPIO2_IO1         0x14 /* SODIMM 113 */
+                       MX7D_PAD_EPDC_DATA02__GPIO2_IO2         0x14 /* SODIMM 115 */
+                       MX7D_PAD_EPDC_DATA03__GPIO2_IO3         0x14 /* SODIMM 117 */
+                       MX7D_PAD_EPDC_DATA04__GPIO2_IO4         0x14 /* SODIMM 119 */
+                       MX7D_PAD_EPDC_DATA05__GPIO2_IO5         0x14 /* SODIMM 121 */
+                       MX7D_PAD_EPDC_DATA06__GPIO2_IO6         0x14 /* SODIMM 123 */
+                       MX7D_PAD_EPDC_DATA07__GPIO2_IO7         0x14 /* SODIMM 125 */
+                       MX7D_PAD_EPDC_SDCE2__GPIO2_IO22         0x14 /* SODIMM 127 */
+                       MX7D_PAD_UART3_RTS_B__GPIO4_IO6         0x14 /* SODIMM 131 */
+                       MX7D_PAD_EPDC_GDRL__GPIO2_IO26          0x14 /* SODIMM 133 */
+                       MX7D_PAD_SAI1_RX_BCLK__GPIO6_IO17       0x14 /* SODIMM 24 */
+                       MX7D_PAD_SD2_DATA2__GPIO5_IO16          0x14 /* SODIMM 100 */
+                       MX7D_PAD_SD2_DATA3__GPIO5_IO17          0x14 /* SODIMM 102 */
+                       MX7D_PAD_EPDC_GDSP__GPIO2_IO27          0x14 /* SODIMM 104 */
+                       MX7D_PAD_EPDC_BDR0__GPIO2_IO28          0x14 /* SODIMM 106 */
+                       MX7D_PAD_EPDC_BDR1__GPIO2_IO29          0x14 /* SODIMM 110 */
+                       MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30       0x14 /* SODIMM 112 */
+                       MX7D_PAD_EPDC_SDCLK__GPIO2_IO16         0x14 /* SODIMM 114 */
+                       MX7D_PAD_EPDC_SDLE__GPIO2_IO17          0x14 /* SODIMM 116 */
+                       MX7D_PAD_EPDC_SDOE__GPIO2_IO18          0x14 /* SODIMM 118 */
+                       MX7D_PAD_EPDC_SDSHR__GPIO2_IO19         0x14 /* SODIMM 120 */
+                       MX7D_PAD_EPDC_SDCE0__GPIO2_IO20         0x14 /* SODIMM 122 */
+                       MX7D_PAD_EPDC_SDCE1__GPIO2_IO21         0x14 /* SODIMM 124 */
+                       MX7D_PAD_EPDC_DATA14__GPIO2_IO14        0x14 /* SODIMM 126 */
+                       MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31      0x14 /* SODIMM 128 */
+                       MX7D_PAD_EPDC_SDCE3__GPIO2_IO23         0x14 /* SODIMM 130 */
+                       MX7D_PAD_EPDC_GDCLK__GPIO2_IO24         0x14 /* SODIMM 132 */
+                       MX7D_PAD_EPDC_GDOE__GPIO2_IO25          0x14 /* SODIMM 134 */
+                       MX7D_PAD_EPDC_DATA12__GPIO2_IO12        0x14 /* SODIMM 150 */
+                       MX7D_PAD_EPDC_DATA11__GPIO2_IO11        0x14 /* SODIMM 152 */
+                       MX7D_PAD_SD2_CLK__GPIO5_IO12            0x14 /* SODIMM 184 */
+                       MX7D_PAD_SD2_CMD__GPIO5_IO13            0x14 /* SODIMM 186 */
+               >;
+       };
+
+       pinctrl_gpio2: gpio2-grp { /* On X22 Camera interface */
+               fsl,pins = <
+                       MX7D_PAD_ECSPI2_SS0__GPIO4_IO23         0x14 /* SODIMM 65 */
+                       MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x14 /* SODIMM 69 */
+                       MX7D_PAD_SD1_WP__GPIO5_IO1              0x14 /* SODIMM 71 */
+                       MX7D_PAD_I2C4_SDA__GPIO4_IO15           0x14 /* SODIMM 75 */
+                       MX7D_PAD_ECSPI1_MISO__GPIO4_IO18        0x14 /* SODIMM 79 */
+                       MX7D_PAD_I2C3_SCL__GPIO4_IO12           0x14 /* SODIMM 81 */
+                       MX7D_PAD_ECSPI2_MISO__GPIO4_IO22        0x14 /* SODIMM 85 */
+                       MX7D_PAD_ECSPI1_SS0__GPIO4_IO19         0x14 /* SODIMM 97 */
+                       MX7D_PAD_ECSPI1_SCLK__GPIO4_IO16        0x14 /* SODIMM 101 */
+                       MX7D_PAD_ECSPI1_MOSI__GPIO4_IO17        0x14 /* SODIMM 103 */
+                       MX7D_PAD_I2C3_SDA__GPIO4_IO13           0x14 /* SODIMM 94 */
+                       MX7D_PAD_I2C4_SCL__GPIO4_IO14           0x14 /* SODIMM 96 */
+                       MX7D_PAD_SD2_RESET_B__GPIO5_IO11        0x14 /* SODIMM 98 */
+               >;
+       };
+
+       pinctrl_gpio3: gpio3-grp { /* LCD 18-23 */
+               fsl,pins = <
+                       MX7D_PAD_LCD_DATA18__GPIO3_IO23         0x14 /* SODIMM 136 */
+                       MX7D_PAD_LCD_DATA19__GPIO3_IO24         0x14 /* SODIMM 138 */
+                       MX7D_PAD_LCD_DATA20__GPIO3_IO25         0x14 /* SODIMM 140 */
+                       MX7D_PAD_LCD_DATA21__GPIO3_IO26         0x14 /* SODIMM 142 */
+                       MX7D_PAD_LCD_DATA22__GPIO3_IO27         0x14 /* SODIMM 146 */
+                       MX7D_PAD_LCD_DATA23__GPIO3_IO28         0x14 /* SODIMM 148 */
+               >;
+       };
+
+       pinctrl_gpio4: gpio4-grp { /* Alternatively CAN2 */
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO15__GPIO1_IO15         0x14 /* SODIMM 178 */
+                       MX7D_PAD_GPIO1_IO14__GPIO1_IO14         0x14 /* SODIMM 188 */
+               >;
+       };
+
+       pinctrl_i2c1_int: i2c1-int-grp { /* PMIC / TOUCH */
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x79
+               >;
+       };
+
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX7D_PAD_ENET1_CRS__GPIO7_IO14                  0x14
+                       MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x73
+                       MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0       0x73
+                       MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1       0x73
+                       MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER           0x73
+
+                       MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x73
+                       MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0       0x73
+                       MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1       0x73
+                       MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1          0x73
+                       MX7D_PAD_SD2_CD_B__ENET1_MDIO                   0x3
+                       MX7D_PAD_SD2_WP__ENET1_MDC                      0x3
+               >;
+       };
+
+       pinctrl_ecspi3_cs: ecspi3-cs-grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C2_SDA__GPIO4_IO11           0x14
+               >;
+       };
+
+       pinctrl_ecspi3: ecspi3-grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C1_SCL__ECSPI3_MISO          0x2
+                       MX7D_PAD_I2C1_SDA__ECSPI3_MOSI          0x2
+                       MX7D_PAD_I2C2_SCL__ECSPI3_SCLK          0x2
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX        0x59
+                       MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX        0x59
+               >;
+       };
+
+       pinctrl_gpmi_nand: gpmi-nand-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CLK__NAND_CLE              0x71
+                       MX7D_PAD_SD3_CMD__NAND_ALE              0x71
+                       MX7D_PAD_SAI1_TX_BCLK__NAND_CE0_B       0x71
+                       MX7D_PAD_SAI1_RX_DATA__NAND_CE1_B       0x71
+                       MX7D_PAD_SAI1_TX_DATA__NAND_READY_B     0x74
+                       MX7D_PAD_SD3_STROBE__NAND_RE_B          0x71
+                       MX7D_PAD_SD3_RESET_B__NAND_WE_B         0x71
+                       MX7D_PAD_SD3_DATA0__NAND_DATA00         0x71
+                       MX7D_PAD_SD3_DATA1__NAND_DATA01         0x71
+                       MX7D_PAD_SD3_DATA2__NAND_DATA02         0x71
+                       MX7D_PAD_SD3_DATA3__NAND_DATA03         0x71
+                       MX7D_PAD_SD3_DATA4__NAND_DATA04         0x71
+                       MX7D_PAD_SD3_DATA5__NAND_DATA05         0x71
+                       MX7D_PAD_SD3_DATA6__NAND_DATA06         0x71
+                       MX7D_PAD_SD3_DATA7__NAND_DATA07         0x71
+               >;
+       };
+
+       pinctrl_i2c4: i2c4-grp {
+               fsl,pins = <
+                       MX7D_PAD_ENET1_RGMII_TD3__I2C4_SDA      0x4000007f
+                       MX7D_PAD_ENET1_RGMII_TD2__I2C4_SCL      0x4000007f
+               >;
+       };
+
+       pinctrl_lcdif_dat: lcdif-dat-grp {
+               fsl,pins = <
+                       MX7D_PAD_LCD_DATA00__LCD_DATA0          0x79
+                       MX7D_PAD_LCD_DATA01__LCD_DATA1          0x79
+                       MX7D_PAD_LCD_DATA02__LCD_DATA2          0x79
+                       MX7D_PAD_LCD_DATA03__LCD_DATA3          0x79
+                       MX7D_PAD_LCD_DATA04__LCD_DATA4          0x79
+                       MX7D_PAD_LCD_DATA05__LCD_DATA5          0x79
+                       MX7D_PAD_LCD_DATA06__LCD_DATA6          0x79
+                       MX7D_PAD_LCD_DATA07__LCD_DATA7          0x79
+                       MX7D_PAD_LCD_DATA08__LCD_DATA8          0x79
+                       MX7D_PAD_LCD_DATA09__LCD_DATA9          0x79
+                       MX7D_PAD_LCD_DATA10__LCD_DATA10         0x79
+                       MX7D_PAD_LCD_DATA11__LCD_DATA11         0x79
+                       MX7D_PAD_LCD_DATA12__LCD_DATA12         0x79
+                       MX7D_PAD_LCD_DATA13__LCD_DATA13         0x79
+                       MX7D_PAD_LCD_DATA14__LCD_DATA14         0x79
+                       MX7D_PAD_LCD_DATA15__LCD_DATA15         0x79
+                       MX7D_PAD_LCD_DATA16__LCD_DATA16         0x79
+                       MX7D_PAD_LCD_DATA17__LCD_DATA17         0x79
+               >;
+       };
+
+       pinctrl_lcdif_dat_24: lcdif-dat-24-grp {
+               fsl,pins = <
+                       MX7D_PAD_LCD_DATA18__LCD_DATA18         0x79
+                       MX7D_PAD_LCD_DATA19__LCD_DATA19         0x79
+                       MX7D_PAD_LCD_DATA20__LCD_DATA20         0x79
+                       MX7D_PAD_LCD_DATA21__LCD_DATA21         0x79
+                       MX7D_PAD_LCD_DATA22__LCD_DATA22         0x79
+                       MX7D_PAD_LCD_DATA23__LCD_DATA23         0x79
+               >;
+       };
+
+       pinctrl_lcdif_ctrl: lcdif-ctrl-grp {
+               fsl,pins = <
+                       MX7D_PAD_LCD_CLK__LCD_CLK               0x79
+                       MX7D_PAD_LCD_ENABLE__LCD_ENABLE         0x79
+                       MX7D_PAD_LCD_VSYNC__LCD_VSYNC           0x79
+                       MX7D_PAD_LCD_HSYNC__LCD_HSYNC           0x79
+               >;
+       };
+
+       pinctrl_pwm1: pwm1-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO08__PWM1_OUT           0x79
+               >;
+       };
+
+       pinctrl_pwm2: pwm2-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO09__PWM2_OUT           0x79
+               >;
+       };
+
+       pinctrl_pwm3: pwm3-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO10__PWM3_OUT           0x79
+               >;
+       };
+
+       pinctrl_pwm4: pwm4-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO11__PWM4_OUT           0x79
+               >;
+       };
+
+       pinctrl_uart1: uart1-grp {
+               fsl,pins = <
+                       MX7D_PAD_UART1_TX_DATA__UART1_DTE_RX    0x79
+                       MX7D_PAD_UART1_RX_DATA__UART1_DTE_TX    0x79
+                       MX7D_PAD_SAI2_TX_BCLK__UART1_DTE_CTS    0x79
+                       MX7D_PAD_SAI2_TX_SYNC__UART1_DTE_RTS    0x79
+               >;
+       };
+
+       pinctrl_uart1_ctrl1: uart1-ctrl1-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_DATA1__GPIO5_IO15          0x14 /* DCD */
+                       MX7D_PAD_SD2_DATA0__GPIO5_IO14          0x14 /* DTR */
+               >;
+       };
+
+       pinctrl_uart2: uart2-grp {
+               fsl,pins = <
+                       MX7D_PAD_UART2_TX_DATA__UART2_DTE_RX 0x79
+                       MX7D_PAD_UART2_RX_DATA__UART2_DTE_TX 0x79
+                       MX7D_PAD_SAI2_RX_DATA__UART2_DTE_RTS 0x79
+                       MX7D_PAD_SAI2_TX_DATA__UART2_DTE_CTS 0x79
+               >;
+       };
+       pinctrl_uart3: uart3-grp {
+               fsl,pins = <
+                       MX7D_PAD_UART3_TX_DATA__UART3_DTE_RX 0x79
+                       MX7D_PAD_UART3_RX_DATA__UART3_DTE_TX 0x79
+               >;
+       };
+
+       pinctrl_usbotg2_reg: gpio-usbotg2-vbus {
+               fsl,pins = <
+                       MX7D_PAD_UART3_CTS_B__GPIO4_IO7 0x14 /* SODIMM 129 USBH PEN */
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1-grp {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CMD__SD1_CMD       0x59
+                       MX7D_PAD_SD1_CLK__SD1_CLK       0x19
+                       MX7D_PAD_SD1_DATA0__SD1_DATA0   0x59
+                       MX7D_PAD_SD1_DATA1__SD1_DATA1   0x59
+                       MX7D_PAD_SD1_DATA2__SD1_DATA2   0x59
+                       MX7D_PAD_SD1_DATA3__SD1_DATA3   0x59
+               >;
+       };
+
+       pinctrl_sai1: sai1-grp {
+               fsl,pins = <
+                       MX7D_PAD_SAI1_MCLK__SAI1_MCLK           0x1f
+                       MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK     0x1f
+                       MX7D_PAD_SAI1_TX_SYNC__SAI1_TX_SYNC     0x1f
+                       MX7D_PAD_ENET1_COL__SAI1_TX_DATA0       0x30
+                       MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0    0x1f
+               >;
+       };
+};
+
+&iomuxc_lpsr {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_lpsr>;
+
+       pinctrl_gpio_lpsr: gpio1-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO01__GPIO1_IO1  0x59
+                       MX7D_PAD_GPIO1_IO02__GPIO1_IO2  0x59
+                       MX7D_PAD_GPIO1_IO03__GPIO1_IO3  0x59
+               >;
+       };
+
+       pinctrl_i2c1: i2c1-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO05__I2C1_SDA   0x4000007f
+                       MX7D_PAD_GPIO1_IO04__I2C1_SCL   0x4000007f
+               >;
+       };
+
+       pinctrl_cd_usdhc1: usdhc1-cd-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO00__GPIO1_IO0  0x59 /* CD */
+               >;
+       };
+
+       pinctrl_uart1_ctrl2: uart1-ctrl2-grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO07__GPIO1_IO7  0x14 /* DSR */
+                       MX7D_PAD_GPIO1_IO06__GPIO1_IO6  0x14 /* RI */
+               >;
+       };
+};
index 4863451..58b09bf 100644 (file)
@@ -12,7 +12,6 @@
 
 /dts-v1/;
 
-#include <dt-bindings/input/input.h>
 #include "imx7d.dtsi"
 
 / {
diff --git a/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts b/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts
new file mode 100644 (file)
index 0000000..bd01d2c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2016 Toradex AG
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "imx7d-colibri.dtsi"
+#include "imx7-colibri-eval-v3.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX7D on Colibri Evaluation Board V3";
+       compatible = "toradex,colibri-imx7d-eval-v3", "toradex,colibri-imx7d",
+                    "fsl,imx7d";
+
+       reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbotg2_reg>;
+               regulator-name = "VCC_USB[1-4]";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&usbotg2 {
+       vbus-supply = <&reg_usb_otg2_vbus>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx7d-colibri.dtsi b/arch/arm/boot/dts/imx7d-colibri.dtsi
new file mode 100644 (file)
index 0000000..3c2cb50
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2016 Toradex AG
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "imx7d.dtsi"
+#include "imx7-colibri.dtsi"
+
+/ {
+       memory {
+               reg = <0x80000000 0x20000000>;
+       };
+};
+
+&usbotg2 {
+       dr_mode = "host";
+};
index 1ce9780..ce08f18 100644 (file)
@@ -42,7 +42,6 @@
 
 /dts-v1/;
 
-#include <dt-bindings/input/input.h>
 #include "imx7d.dtsi"
 
 / {
        pinctrl-0 = <&pinctrl_uart6>;
        assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
        assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index eeda783..3f9f0d9 100644 (file)
 #define MX7D_PAD_UART2_RX_DATA__GPIO4_IO2                         0x0130 0x03A0 0x0000 0x5 0x0
 #define MX7D_PAD_UART2_RX_DATA__ENET2_MDIO                        0x0130 0x03A0 0x0000 0x6 0x0
 #define MX7D_PAD_UART2_TX_DATA__UART2_DCE_TX                      0x0134 0x03A4 0x0000 0x0 0x0
-#define MX7D_PAD_UART2_TX_DATA__UART2_DTE_RX                      0x0134 0x03A4 0x0000 0x0 0x0
+#define MX7D_PAD_UART2_TX_DATA__UART2_DTE_RX                      0x0134 0x03A4 0x06FC 0x0 0x3
 #define MX7D_PAD_UART2_TX_DATA__I2C2_SDA                          0x0134 0x03A4 0x05E0 0x1 0x0
 #define MX7D_PAD_UART2_TX_DATA__SAI3_RX_DATA0                     0x0134 0x03A4 0x06C8 0x2 0x0
 #define MX7D_PAD_UART2_TX_DATA__ECSPI1_RDY                        0x0134 0x03A4 0x0000 0x3 0x0
index b267f79..95ee268 100644 (file)
@@ -42,7 +42,6 @@
 
 /dts-v1/;
 
-#include <dt-bindings/input/input.h>
 #include "imx7d.dtsi"
 
 / {
        arm-supply = <&sw1a_reg>;
 };
 
+&ecspi3 {
+       fsl,spi-num-chipselects = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi3>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       tsc2046@0 {
+               compatible = "ti,tsc2046";
+               reg = <0>;
+               spi-max-frequency = <1000000>;
+               pinctrl-names ="default";
+               pinctrl-0 = <&pinctrl_tsc2046_pendown>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <29 0>;
+               pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+               ti,x-min = /bits/ 16 <0>;
+               ti,x-max = /bits/ 16 <0>;
+               ti,y-min = /bits/ 16 <0>;
+               ti,y-max = /bits/ 16 <0>;
+               ti,pressure-max = /bits/ 16 <0>;
+               ti,x-plat-ohms = /bits/ 16 <400>;
+               wakeup-source;
+       };
+};
+
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet1>;
        };
 };
 
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif>;
+       display = <&display0>;
+       status = "okay";
+
+       display0: display {
+               bits-per-pixel = <16>;
+               bus-width = <24>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+
+                       timing0: timing0 {
+                               clock-frequency = <9200000>;
+                               hactive = <480>;
+                               vactive = <272>;
+                               hfront-porch = <8>;
+                               hback-porch = <4>;
+                               hsync-len = <41>;
+                               vback-porch = <2>;
+                               vfront-porch = <4>;
+                               vsync-len = <10>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+};
+
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
        status = "okay";
 };
 
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+};
+
 &iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog>;
 
        imx7d-sdb {
+               pinctrl_ecspi3: ecspi3grp {
+                       fsl,pins = <
+                               MX7D_PAD_SAI2_TX_SYNC__ECSPI3_MISO      0x2
+                               MX7D_PAD_SAI2_TX_BCLK__ECSPI3_MOSI      0x2
+                               MX7D_PAD_SAI2_RX_DATA__ECSPI3_SCLK      0x2
+                               MX7D_PAD_SD2_CD_B__GPIO5_IO9            0x59
+                       >;
+               };
+
                pinctrl_enet1: enet1grp {
                        fsl,pins = <
                                MX7D_PAD_GPIO1_IO10__ENET1_MDIO                 0x3
                        >;
                };
 
+               pinctrl_lcdif: lcdifgrp {
+                       fsl,pins = <
+                               MX7D_PAD_LCD_DATA00__LCD_DATA0          0x79
+                               MX7D_PAD_LCD_DATA01__LCD_DATA1          0x79
+                               MX7D_PAD_LCD_DATA02__LCD_DATA2          0x79
+                               MX7D_PAD_LCD_DATA03__LCD_DATA3          0x79
+                               MX7D_PAD_LCD_DATA04__LCD_DATA4          0x79
+                               MX7D_PAD_LCD_DATA05__LCD_DATA5          0x79
+                               MX7D_PAD_LCD_DATA06__LCD_DATA6          0x79
+                               MX7D_PAD_LCD_DATA07__LCD_DATA7          0x79
+                               MX7D_PAD_LCD_DATA08__LCD_DATA8          0x79
+                               MX7D_PAD_LCD_DATA09__LCD_DATA9          0x79
+                               MX7D_PAD_LCD_DATA10__LCD_DATA10         0x79
+                               MX7D_PAD_LCD_DATA11__LCD_DATA11         0x79
+                               MX7D_PAD_LCD_DATA12__LCD_DATA12         0x79
+                               MX7D_PAD_LCD_DATA13__LCD_DATA13         0x79
+                               MX7D_PAD_LCD_DATA14__LCD_DATA14         0x79
+                               MX7D_PAD_LCD_DATA15__LCD_DATA15         0x79
+                               MX7D_PAD_LCD_DATA16__LCD_DATA16         0x79
+                               MX7D_PAD_LCD_DATA17__LCD_DATA17         0x79
+                               MX7D_PAD_LCD_DATA18__LCD_DATA18         0x79
+                               MX7D_PAD_LCD_DATA19__LCD_DATA19         0x79
+                               MX7D_PAD_LCD_DATA20__LCD_DATA20         0x79
+                               MX7D_PAD_LCD_DATA21__LCD_DATA21         0x79
+                               MX7D_PAD_LCD_DATA22__LCD_DATA22         0x79
+                               MX7D_PAD_LCD_DATA23__LCD_DATA23         0x79
+                               MX7D_PAD_LCD_CLK__LCD_CLK               0x79
+                               MX7D_PAD_LCD_ENABLE__LCD_ENABLE         0x79
+                               MX7D_PAD_LCD_VSYNC__LCD_VSYNC           0x79
+                               MX7D_PAD_LCD_HSYNC__LCD_HSYNC           0x79
+                               MX7D_PAD_LCD_RESET__LCD_RESET           0x79
+                       >;
+               };
+
+               pinctrl_pwm1: pwm1grp {
+                       fsl,pins = <
+                               MX7D_PAD_GPIO1_IO01__PWM1_OUT           0x110b0
+                       >;
+               };
+
+               pinctrl_tsc2046_pendown: tsc2046_pendown {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_BDR1__GPIO2_IO29          0x59
+                       >;
+               };
+
                pinctrl_uart1: uart1grp {
                        fsl,pins = <
                                MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
                        >;
                };
 
+               pinctrl_wdog: wdoggrp {
+                       fsl,pins = <
+                               MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B       0x74
+                       >;
+               };
        };
 };
index 6b3faa2..51c13cb 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright 2015 Freescale Semiconductor, Inc.
+ * Copyright 2016 Toradex AG
  *
  * This file is dual-licensed: you can use it either under the terms
  * of the GPL or the X11 license, at your option. Note that this dual
  *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
-#include <dt-bindings/clock/imx7d-clock.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include "imx7d-pinfunc.h"
-#include "skeleton.dtsi"
+#include "imx7s.dtsi"
 
 / {
-       aliases {
-               gpio0 = &gpio1;
-               gpio1 = &gpio2;
-               gpio2 = &gpio3;
-               gpio3 = &gpio4;
-               gpio4 = &gpio5;
-               gpio5 = &gpio6;
-               gpio6 = &gpio7;
-               i2c0 = &i2c1;
-               i2c1 = &i2c2;
-               i2c2 = &i2c3;
-               i2c3 = &i2c4;
-               mmc0 = &usdhc1;
-               mmc1 = &usdhc2;
-               mmc2 = &usdhc3;
-               serial0 = &uart1;
-               serial1 = &uart2;
-               serial2 = &uart3;
-               serial3 = &uart4;
-               serial4 = &uart5;
-               serial5 = &uart6;
-               serial6 = &uart7;
-       };
-
        cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: cpu@0 {
-                       compatible = "arm,cortex-a7";
-                       device_type = "cpu";
-                       reg = <0>;
-                       operating-points = <
-                               /* KHz  uV */
-                               996000  1075000
-                               792000  975000
-                       >;
-                       clock-latency = <61036>; /* two CLK32 periods */
-                       clocks = <&clks IMX7D_CLK_ARM>;
-               };
-
                cpu1: cpu@1 {
                        compatible = "arm,cortex-a7";
                        device_type = "cpu";
                };
        };
 
-       intc: interrupt-controller@31001000 {
-               compatible = "arm,cortex-a7-gic";
-               #interrupt-cells = <3>;
-               interrupt-controller;
-               reg = <0x31001000 0x1000>,
-                     <0x31002000 0x1000>,
-                     <0x31004000 0x2000>,
-                     <0x31006000 0x2000>;
-       };
-
-       ckil: clock-cki {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <32768>;
-               clock-output-names = "ckil";
-       };
-
-       osc: clock-osc {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <24000000>;
-               clock-output-names = "osc";
-       };
-
-       timer {
-               compatible = "arm,armv7-timer";
-               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-               interrupt-parent = <&intc>;
-       };
-
-       etr@30086000 {
-               compatible = "arm,coresight-tmc", "arm,primecell";
-               reg = <0x30086000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
-
-               port {
-                       etr_in_port: endpoint {
-                               slave-mode;
-                               remote-endpoint = <&replicator_out_port1>;
-                       };
-               };
-       };
-
-       tpiu@30087000 {
-               compatible = "arm,coresight-tpiu", "arm,primecell";
-               reg = <0x30087000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
-
-               port {
-                       tpiu_in_port: endpoint {
-                               slave-mode;
-                               remote-endpoint = <&replicator_out_port1>;
-                       };
-               };
-       };
-
-       replicator {
-               /*
-                * non-configurable replicators don't show up on the
-                * AMBA bus.  As such no need to add "arm,primecell"
-                */
-               compatible = "arm,coresight-replicator";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       /* replicator output ports */
-                       port@0 {
-                               reg = <0>;
-                               replicator_out_port0: endpoint {
-                                       remote-endpoint = <&tpiu_in_port>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <1>;
-                               replicator_out_port1: endpoint {
-                                       remote-endpoint = <&etr_in_port>;
-                               };
-                       };
-
-                       /* replicator input port */
-                       port@2 {
-                               reg = <0>;
-                               replicator_in_port0: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&etf_out_port>;
-                               };
-                       };
-               };
-       };
-
-       etf@30084000 {
-               compatible = "arm,coresight-tmc", "arm,primecell";
-               reg = <0x30084000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-                               etf_in_port: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&hugo_funnel_out_port0>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <0>;
-                               etf_out_port: endpoint {
-                                       remote-endpoint = <&replicator_in_port0>;
-                               };
-                       };
-               };
-       };
-
-       funnel@30083000 {
-               compatible = "arm,coresight-funnel", "arm,primecell";
-               reg = <0x30083000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       /* funnel input ports */
-                       port@0 {
-                               reg = <0>;
-                               hugo_funnel_in_port0: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&ca_funnel_out_port0>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <1>;
-                               hugo_funnel_in_port1: endpoint {
-                                       slave-mode; /* M4 input */
-                               };
-                       };
-
-                       port@2 {
-                               reg = <0>;
-                               hugo_funnel_out_port0: endpoint {
-                                       remote-endpoint = <&etf_in_port>;
-                               };
-                       };
-
-                       /* the other input ports are not connect to anything */
-               };
-       };
-
-       funnel@30041000 {
-               compatible = "arm,coresight-funnel", "arm,primecell";
-               reg = <0x30041000 0x1000>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       /* funnel input ports */
-                       port@0 {
-                               reg = <0>;
-                               ca_funnel_in_port0: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&etm0_out_port>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <1>;
-                               ca_funnel_in_port1: endpoint {
-                                       slave-mode;
-                                       remote-endpoint = <&etm1_out_port>;
-                               };
-                       };
-
-                       /* funnel output port */
-                       port@2 {
-                               reg = <0>;
-                               ca_funnel_out_port0: endpoint {
-                                       remote-endpoint = <&hugo_funnel_in_port0>;
-                               };
-                       };
-
-                       /* the other input ports are not connect to anything */
-               };
-       };
-
-       etm@3007c000 {
-               compatible = "arm,coresight-etm3x", "arm,primecell";
-               reg = <0x3007c000 0x1000>;
-               cpu = <&cpu0>;
-               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
-               clock-names = "apb_pclk";
-
-               port {
-                       etm0_out_port: endpoint {
-                               remote-endpoint = <&ca_funnel_in_port0>;
-                       };
-               };
-       };
-
        etm@3007d000 {
                compatible = "arm,coresight-etm3x", "arm,primecell";
                reg = <0x3007d000 0x1000>;
                        };
                };
        };
+};
 
-       soc {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "simple-bus";
-               interrupt-parent = <&intc>;
-               ranges;
-
-               aips1: aips-bus@30000000 {
-                       compatible = "fsl,aips-bus", "simple-bus";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x30000000 0x400000>;
-                       ranges;
-
-                       gpio1: gpio@30200000 {
-                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
-                               reg = <0x30200000 0x10000>;
-                               interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* GPIO1_INT15_0 */
-                                            <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; /* GPIO1_INT31_16 */
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                       };
-
-                       gpio2: gpio@30210000 {
-                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
-                               reg = <0x30210000 0x10000>;
-                               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                       };
-
-                       gpio3: gpio@30220000 {
-                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
-                               reg = <0x30220000 0x10000>;
-                               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                       };
-
-                       gpio4: gpio@30230000 {
-                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
-                               reg = <0x30230000 0x10000>;
-                               interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                       };
-
-                       gpio5: gpio@30240000 {
-                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
-                               reg = <0x30240000 0x10000>;
-                               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                       };
-
-                       gpio6: gpio@30250000 {
-                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
-                               reg = <0x30250000 0x10000>;
-                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                       };
-
-                       gpio7: gpio@30260000 {
-                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
-                               reg = <0x30260000 0x10000>;
-                               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
-                               gpio-controller;
-                               #gpio-cells = <2>;
-                               interrupt-controller;
-                               #interrupt-cells = <2>;
-                       };
-
-                       wdog1: wdog@30280000 {
-                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
-                               reg = <0x30280000 0x10000>;
-                               interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
-                       };
-
-                       wdog2: wdog@30290000 {
-                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
-                               reg = <0x30290000 0x10000>;
-                               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_WDOG2_ROOT_CLK>;
-                               status = "disabled";
-                       };
-
-                       wdog3: wdog@302a0000 {
-                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
-                               reg = <0x302a0000 0x10000>;
-                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_WDOG3_ROOT_CLK>;
-                               status = "disabled";
-                       };
-
-                       wdog4: wdog@302b0000 {
-                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
-                               reg = <0x302b0000 0x10000>;
-                               interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_WDOG4_ROOT_CLK>;
-                               status = "disabled";
-                       };
-
-                       iomuxc_lpsr: iomuxc-lpsr@302c0000 {
-                               compatible = "fsl,imx7d-iomuxc-lpsr";
-                               reg = <0x302c0000 0x10000>;
-                               fsl,input-sel = <&iomuxc>;
-                       };
-
-                       gpt1: gpt@302d0000 {
-                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
-                               reg = <0x302d0000 0x10000>;
-                               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                        <&clks IMX7D_GPT1_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                       };
-
-                       gpt2: gpt@302e0000 {
-                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
-                               reg = <0x302e0000 0x10000>;
-                               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                        <&clks IMX7D_GPT2_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       gpt3: gpt@302f0000 {
-                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
-                               reg = <0x302f0000 0x10000>;
-                               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                        <&clks IMX7D_GPT3_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       gpt4: gpt@30300000 {
-                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
-                               reg = <0x30300000 0x10000>;
-                               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                        <&clks IMX7D_GPT4_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       iomuxc: iomuxc@30330000 {
-                               compatible = "fsl,imx7d-iomuxc";
-                               reg = <0x30330000 0x10000>;
-                       };
-
-                       gpr: iomuxc-gpr@30340000 {
-                               compatible = "fsl,imx7d-iomuxc-gpr", "syscon";
-                               reg = <0x30340000 0x10000>;
-                       };
-
-                       ocotp: ocotp-ctrl@30350000 {
-                               compatible = "syscon";
-                               reg = <0x30350000 0x10000>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>;
-                               status = "disabled";
-                       };
-
-                       anatop: anatop@30360000 {
-                               compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop",
-                                       "syscon", "simple-bus";
-                               reg = <0x30360000 0x10000>;
-                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
-
-                               reg_1p0d: regulator-vdd1p0d@210 {
-                                       compatible = "fsl,anatop-regulator";
-                                       regulator-name = "vdd1p0d";
-                                       regulator-min-microvolt = <800000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       anatop-reg-offset = <0x210>;
-                                       anatop-vol-bit-shift = <8>;
-                                       anatop-vol-bit-width = <5>;
-                                       anatop-min-bit-val = <8>;
-                                       anatop-min-voltage = <800000>;
-                                       anatop-max-voltage = <1200000>;
-                                       anatop-enable-bit = <31>;
-                               };
-                       };
-
-                       snvs: snvs@30370000 {
-                               compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
-                               reg = <0x30370000 0x10000>;
-
-                               snvs_rtc: snvs-rtc-lp {
-                                       compatible = "fsl,sec-v4.0-mon-rtc-lp";
-                                       regmap = <&snvs>;
-                                       offset = <0x34>;
-                                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
-                                                    <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
-                               };
-
-                               snvs_poweroff: snvs-poweroff {
-                                       compatible = "syscon-poweroff";
-                                       regmap = <&snvs>;
-                                       offset = <0x38>;
-                                       mask = <0x60>;
-                               };
-
-                               snvs_pwrkey: snvs-powerkey {
-                                       compatible = "fsl,sec-v4.0-pwrkey";
-                                       regmap = <&snvs>;
-                                       interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
-                                       linux,keycode = <KEY_POWER>;
-                                       wakeup-source;
-                               };
-                       };
-
-                       clks: ccm@30380000 {
-                               compatible = "fsl,imx7d-ccm";
-                               reg = <0x30380000 0x10000>;
-                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-                               #clock-cells = <1>;
-                               clocks = <&ckil>, <&osc>;
-                               clock-names = "ckil", "osc";
-                       };
-
-                       src: src@30390000 {
-                               compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon";
-                               reg = <0x30390000 0x10000>;
-                               interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
-                               #reset-cells = <1>;
-                       };
-               };
-
-               aips2: aips-bus@30400000 {
-                       compatible = "fsl,aips-bus", "simple-bus";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x30400000 0x400000>;
-                       ranges;
-
-                       adc1: adc@30610000 {
-                               compatible = "fsl,imx7d-adc";
-                               reg = <0x30610000 0x10000>;
-                               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_ADC_ROOT_CLK>;
-                               clock-names = "adc";
-                               status = "disabled";
-                       };
-
-                       adc2: adc@30620000 {
-                               compatible = "fsl,imx7d-adc";
-                               reg = <0x30620000 0x10000>;
-                               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_ADC_ROOT_CLK>;
-                               clock-names = "adc";
-                               status = "disabled";
-                       };
-
-                       pwm1: pwm@30660000 {
-                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
-                               reg = <0x30660000 0x10000>;
-                               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_PWM1_ROOT_CLK>,
-                                        <&clks IMX7D_PWM1_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
-                               status = "disabled";
-                       };
-
-                       pwm2: pwm@30670000 {
-                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
-                               reg = <0x30670000 0x10000>;
-                               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_PWM2_ROOT_CLK>,
-                                        <&clks IMX7D_PWM2_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
-                               status = "disabled";
-                       };
-
-                       pwm3: pwm@30680000 {
-                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
-                               reg = <0x30680000 0x10000>;
-                               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_PWM3_ROOT_CLK>,
-                                        <&clks IMX7D_PWM3_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
-                               status = "disabled";
-                       };
-
-                       pwm4: pwm@30690000 {
-                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
-                               reg = <0x30690000 0x10000>;
-                               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_PWM4_ROOT_CLK>,
-                                        <&clks IMX7D_PWM4_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
-                               status = "disabled";
-                       };
-
-                       lcdif: lcdif@30730000 {
-                               compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
-                               reg = <0x30730000 0x10000>;
-                               interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
-                                       <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_CLK_DUMMY>;
-                               clock-names = "pix", "axi", "disp_axi";
-                               status = "disabled";
-                       };
-               };
-
-               aips3: aips-bus@30800000 {
-                       compatible = "fsl,aips-bus", "simple-bus";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x30800000 0x400000>;
-                       ranges;
-
-                       uart1: serial@30860000 {
-                               compatible = "fsl,imx7d-uart",
-                                            "fsl,imx6q-uart";
-                               reg = <0x30860000 0x10000>;
-                               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_UART1_ROOT_CLK>,
-                                       <&clks IMX7D_UART1_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       uart2: serial@30890000 {
-                               compatible = "fsl,imx7d-uart",
-                                            "fsl,imx6q-uart";
-                               reg = <0x30890000 0x10000>;
-                               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_UART2_ROOT_CLK>,
-                                       <&clks IMX7D_UART2_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       uart3: serial@30880000 {
-                               compatible = "fsl,imx7d-uart",
-                                            "fsl,imx6q-uart";
-                               reg = <0x30880000 0x10000>;
-                               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_UART3_ROOT_CLK>,
-                                       <&clks IMX7D_UART3_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       flexcan1: can@30a00000 {
-                               compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
-                               reg = <0x30a00000 0x10000>;
-                               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_CAN1_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       flexcan2: can@30a10000 {
-                               compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
-                               reg = <0x30a10000 0x10000>;
-                               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_CAN2_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       i2c1: i2c@30a20000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
-                               reg = <0x30a20000 0x10000>;
-                               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_I2C1_ROOT_CLK>;
-                               status = "disabled";
-                       };
-
-                       i2c2: i2c@30a30000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
-                               reg = <0x30a30000 0x10000>;
-                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_I2C2_ROOT_CLK>;
-                               status = "disabled";
-                       };
-
-                       i2c3: i2c@30a40000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
-                               reg = <0x30a40000 0x10000>;
-                               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_I2C3_ROOT_CLK>;
-                               status = "disabled";
-                       };
-
-                       i2c4: i2c@30a50000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
-                               reg = <0x30a50000 0x10000>;
-                               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_I2C4_ROOT_CLK>;
-                               status = "disabled";
-                       };
-
-                       uart4: serial@30a60000 {
-                               compatible = "fsl,imx7d-uart",
-                                            "fsl,imx6q-uart";
-                               reg = <0x30a60000 0x10000>;
-                               interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_UART4_ROOT_CLK>,
-                                       <&clks IMX7D_UART4_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       uart5: serial@30a70000 {
-                               compatible = "fsl,imx7d-uart",
-                                            "fsl,imx6q-uart";
-                               reg = <0x30a70000 0x10000>;
-                               interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_UART5_ROOT_CLK>,
-                                       <&clks IMX7D_UART5_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       uart6: serial@30a80000 {
-                               compatible = "fsl,imx7d-uart",
-                                            "fsl,imx6q-uart";
-                               reg = <0x30a80000 0x10000>;
-                               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_UART6_ROOT_CLK>,
-                                       <&clks IMX7D_UART6_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       uart7: serial@30a90000 {
-                               compatible = "fsl,imx7d-uart",
-                                            "fsl,imx6q-uart";
-                               reg = <0x30a90000 0x10000>;
-                               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_UART7_ROOT_CLK>,
-                                       <&clks IMX7D_UART7_ROOT_CLK>;
-                               clock-names = "ipg", "per";
-                               status = "disabled";
-                       };
-
-                       usbotg1: usb@30b10000 {
-                               compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
-                               reg = <0x30b10000 0x200>;
-                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_USB_CTRL_CLK>;
-                               fsl,usbphy = <&usbphynop1>;
-                               fsl,usbmisc = <&usbmisc1 0>;
-                               phy-clkgate-delay-us = <400>;
-                               status = "disabled";
-                       };
-
-                       usbotg2: usb@30b20000 {
-                               compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
-                               reg = <0x30b20000 0x200>;
-                               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_USB_CTRL_CLK>;
-                               fsl,usbphy = <&usbphynop2>;
-                               fsl,usbmisc = <&usbmisc2 0>;
-                               phy-clkgate-delay-us = <400>;
-                               status = "disabled";
-                       };
-
-                       usbh: usb@30b30000 {
-                               compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
-                               reg = <0x30b30000 0x200>;
-                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_USB_CTRL_CLK>;
-                               fsl,usbphy = <&usbphynop3>;
-                               fsl,usbmisc = <&usbmisc3 0>;
-                               phy_type = "hsic";
-                               dr_mode = "host";
-                               phy-clkgate-delay-us = <400>;
-                               status = "disabled";
-                       };
-
-                       usbmisc1: usbmisc@30b10200 {
-                               #index-cells = <1>;
-                               compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
-                               reg = <0x30b10200 0x200>;
-                       };
-
-                       usbmisc2: usbmisc@30b20200 {
-                               #index-cells = <1>;
-                               compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
-                               reg = <0x30b20200 0x200>;
-                       };
-
-                       usbmisc3: usbmisc@30b30200 {
-                               #index-cells = <1>;
-                               compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
-                               reg = <0x30b30200 0x200>;
-                       };
-
-                       usbphynop1: usbphynop1 {
-                               compatible = "usb-nop-xceiv";
-                               clocks = <&clks IMX7D_USB_PHY1_CLK>;
-                               clock-names = "main_clk";
-                       };
-
-                       usbphynop2: usbphynop2 {
-                               compatible = "usb-nop-xceiv";
-                               clocks = <&clks IMX7D_USB_PHY2_CLK>;
-                               clock-names = "main_clk";
-                       };
-
-                       usbphynop3: usbphynop3 {
-                               compatible = "usb-nop-xceiv";
-                               clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>;
-                               clock-names = "main_clk";
-                       };
-
-                       usdhc1: usdhc@30b40000 {
-                               compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
-                               reg = <0x30b40000 0x10000>;
-                               interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_USDHC1_ROOT_CLK>;
-                               clock-names = "ipg", "ahb", "per";
-                               bus-width = <4>;
-                               status = "disabled";
-                       };
+&aips3 {
+       usbotg2: usb@30b20000 {
+               compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
+               reg = <0x30b20000 0x200>;
+               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_USB_CTRL_CLK>;
+               fsl,usbphy = <&usbphynop2>;
+               fsl,usbmisc = <&usbmisc2 0>;
+               phy-clkgate-delay-us = <400>;
+               status = "disabled";
+       };
 
-                       usdhc2: usdhc@30b50000 {
-                               compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
-                               reg = <0x30b50000 0x10000>;
-                               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_USDHC2_ROOT_CLK>;
-                               clock-names = "ipg", "ahb", "per";
-                               bus-width = <4>;
-                               status = "disabled";
-                       };
+       usbmisc2: usbmisc@30b20200 {
+               #index-cells = <1>;
+               compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
+               reg = <0x30b20200 0x200>;
+       };
 
-                       usdhc3: usdhc@30b60000 {
-                               compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
-                               reg = <0x30b60000 0x10000>;
-                               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_CLK_DUMMY>,
-                                       <&clks IMX7D_USDHC3_ROOT_CLK>;
-                               clock-names = "ipg", "ahb", "per";
-                               bus-width = <4>;
-                               status = "disabled";
-                       };
+       usbphynop2: usbphynop2 {
+               compatible = "usb-nop-xceiv";
+               clocks = <&clks IMX7D_USB_PHY2_CLK>;
+               clock-names = "main_clk";
+       };
 
-                       fec1: ethernet@30be0000 {
-                               compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
-                               reg = <0x30be0000 0x10000>;
-                               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
-                                       <&clks IMX7D_ENET_AXI_ROOT_CLK>,
-                                       <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
-                                       <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
-                                       <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
-                               clock-names = "ipg", "ahb", "ptp",
-                                       "enet_clk_ref", "enet_out";
-                               fsl,num-tx-queues=<3>;
-                               fsl,num-rx-queues=<3>;
-                               status = "disabled";
-                       };
+       fec2: ethernet@30bf0000 {
+               compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
+               reg = <0x30bf0000 0x10000>;
+               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+                       <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+                       <&clks IMX7D_ENET2_TIME_ROOT_CLK>,
+                       <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
+                       <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
+               clock-names = "ipg", "ahb", "ptp",
+                       "enet_clk_ref", "enet_out";
+               fsl,num-tx-queues=<3>;
+               fsl,num-rx-queues=<3>;
+               status = "disabled";
+       };
+};
 
-                       fec2: ethernet@30bf0000 {
-                               compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
-                               reg = <0x30bf0000 0x10000>;
-                               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
-                                       <&clks IMX7D_ENET_AXI_ROOT_CLK>,
-                                       <&clks IMX7D_ENET2_TIME_ROOT_CLK>,
-                                       <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
-                                       <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
-                               clock-names = "ipg", "ahb", "ptp",
-                                       "enet_clk_ref", "enet_out";
-                               fsl,num-tx-queues=<3>;
-                               fsl,num-rx-queues=<3>;
-                               status = "disabled";
-                       };
+&ca_funnel_ports {
+       port@1 {
+               reg = <1>;
+               ca_funnel_in_port1: endpoint {
+                       slave-mode;
+                       remote-endpoint = <&etm1_out_port>;
                };
        };
 };
diff --git a/arch/arm/boot/dts/imx7s-colibri-eval-v3.dts b/arch/arm/boot/dts/imx7s-colibri-eval-v3.dts
new file mode 100644 (file)
index 0000000..bd2a49c
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016 Toradex AG
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "imx7s-colibri.dtsi"
+#include "imx7-colibri-eval-v3.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX7S on Colibri Evaluation Board V3";
+       compatible = "toradex,colibri-imx7s-eval-v3", "toradex,colibri-imx7s",
+                    "fsl,imx7s";
+};
diff --git a/arch/arm/boot/dts/imx7s-colibri.dtsi b/arch/arm/boot/dts/imx7s-colibri.dtsi
new file mode 100644 (file)
index 0000000..b810134
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2016 Toradex AG
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "imx7s.dtsi"
+#include "imx7-colibri.dtsi"
+
+/ {
+       memory {
+               reg = <0x80000000 0x10000000>;
+       };
+};
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
new file mode 100644 (file)
index 0000000..1e90bdb
--- /dev/null
@@ -0,0 +1,933 @@
+/*
+ * Copyright 2015 Freescale Semiconductor, Inc.
+ * Copyright 2016 Toradex AG
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/clock/imx7d-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "imx7d-pinfunc.h"
+#include "skeleton.dtsi"
+
+/ {
+       aliases {
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &gpio5;
+               gpio5 = &gpio6;
+               gpio6 = &gpio7;
+               i2c0 = &i2c1;
+               i2c1 = &i2c2;
+               i2c2 = &i2c3;
+               i2c3 = &i2c4;
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc2;
+               mmc2 = &usdhc3;
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart5;
+               serial5 = &uart6;
+               serial6 = &uart7;
+               spi0 = &ecspi1;
+               spi1 = &ecspi2;
+               spi2 = &ecspi3;
+               spi3 = &ecspi4;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a7";
+                       device_type = "cpu";
+                       reg = <0>;
+                       operating-points = <
+                               /* KHz  uV */
+                               996000  1075000
+                               792000  975000
+                       >;
+                       clock-latency = <61036>; /* two CLK32 periods */
+                       clocks = <&clks IMX7D_CLK_ARM>;
+               };
+       };
+
+       intc: interrupt-controller@31001000 {
+               compatible = "arm,cortex-a7-gic";
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               reg = <0x31001000 0x1000>,
+                     <0x31002000 0x1000>,
+                     <0x31004000 0x2000>,
+                     <0x31006000 0x2000>;
+       };
+
+       ckil: clock-cki {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "ckil";
+       };
+
+       osc: clock-osc {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+               clock-output-names = "osc";
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-parent = <&intc>;
+       };
+
+       etr@30086000 {
+               compatible = "arm,coresight-tmc", "arm,primecell";
+               reg = <0x30086000 0x1000>;
+               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+               clock-names = "apb_pclk";
+
+               port {
+                       etr_in_port: endpoint {
+                               slave-mode;
+                               remote-endpoint = <&replicator_out_port1>;
+                       };
+               };
+       };
+
+       tpiu@30087000 {
+               compatible = "arm,coresight-tpiu", "arm,primecell";
+               reg = <0x30087000 0x1000>;
+               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+               clock-names = "apb_pclk";
+
+               port {
+                       tpiu_in_port: endpoint {
+                               slave-mode;
+                               remote-endpoint = <&replicator_out_port1>;
+                       };
+               };
+       };
+
+       replicator {
+               /*
+                * non-configurable replicators don't show up on the
+                * AMBA bus.  As such no need to add "arm,primecell"
+                */
+               compatible = "arm,coresight-replicator";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* replicator output ports */
+                       port@0 {
+                               reg = <0>;
+                               replicator_out_port0: endpoint {
+                                       remote-endpoint = <&tpiu_in_port>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               replicator_out_port1: endpoint {
+                                       remote-endpoint = <&etr_in_port>;
+                               };
+                       };
+
+                       /* replicator input port */
+                       port@2 {
+                               reg = <0>;
+                               replicator_in_port0: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&etf_out_port>;
+                               };
+                       };
+               };
+       };
+
+       etf@30084000 {
+               compatible = "arm,coresight-tmc", "arm,primecell";
+               reg = <0x30084000 0x1000>;
+               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+               clock-names = "apb_pclk";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               etf_in_port: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&hugo_funnel_out_port0>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <0>;
+                               etf_out_port: endpoint {
+                                       remote-endpoint = <&replicator_in_port0>;
+                               };
+                       };
+               };
+       };
+
+       funnel@30083000 {
+               compatible = "arm,coresight-funnel", "arm,primecell";
+               reg = <0x30083000 0x1000>;
+               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+               clock-names = "apb_pclk";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* funnel input ports */
+                       port@0 {
+                               reg = <0>;
+                               hugo_funnel_in_port0: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&ca_funnel_out_port0>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               hugo_funnel_in_port1: endpoint {
+                                       slave-mode; /* M4 input */
+                               };
+                       };
+
+                       port@2 {
+                               reg = <0>;
+                               hugo_funnel_out_port0: endpoint {
+                                       remote-endpoint = <&etf_in_port>;
+                               };
+                       };
+
+                       /* the other input ports are not connect to anything */
+               };
+       };
+
+       funnel@30041000 {
+               compatible = "arm,coresight-funnel", "arm,primecell";
+               reg = <0x30041000 0x1000>;
+               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+               clock-names = "apb_pclk";
+
+               ca_funnel_ports: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* funnel input ports */
+                       port@0 {
+                               reg = <0>;
+                               ca_funnel_in_port0: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&etm0_out_port>;
+                               };
+                       };
+
+                       /* funnel output port */
+                       port@2 {
+                               reg = <0>;
+                               ca_funnel_out_port0: endpoint {
+                                       remote-endpoint = <&hugo_funnel_in_port0>;
+                               };
+                       };
+
+                       /* the other input ports are not connect to anything */
+               };
+       };
+
+       etm@3007c000 {
+               compatible = "arm,coresight-etm3x", "arm,primecell";
+               reg = <0x3007c000 0x1000>;
+               cpu = <&cpu0>;
+               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+               clock-names = "apb_pclk";
+
+               port {
+                       etm0_out_port: endpoint {
+                               remote-endpoint = <&ca_funnel_in_port0>;
+                       };
+               };
+       };
+
+       soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               interrupt-parent = <&intc>;
+               ranges;
+
+               aips1: aips-bus@30000000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x30000000 0x400000>;
+                       ranges;
+
+                       gpio1: gpio@30200000 {
+                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
+                               reg = <0x30200000 0x10000>;
+                               interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* GPIO1_INT15_0 */
+                                            <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; /* GPIO1_INT31_16 */
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio2: gpio@30210000 {
+                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
+                               reg = <0x30210000 0x10000>;
+                               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio3: gpio@30220000 {
+                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
+                               reg = <0x30220000 0x10000>;
+                               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio4: gpio@30230000 {
+                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
+                               reg = <0x30230000 0x10000>;
+                               interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio5: gpio@30240000 {
+                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
+                               reg = <0x30240000 0x10000>;
+                               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio6: gpio@30250000 {
+                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
+                               reg = <0x30250000 0x10000>;
+                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       gpio7: gpio@30260000 {
+                               compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
+                               reg = <0x30260000 0x10000>;
+                               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
+
+                       wdog1: wdog@30280000 {
+                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
+                               reg = <0x30280000 0x10000>;
+                               interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
+                       };
+
+                       wdog2: wdog@30290000 {
+                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
+                               reg = <0x30290000 0x10000>;
+                               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_WDOG2_ROOT_CLK>;
+                               status = "disabled";
+                       };
+
+                       wdog3: wdog@302a0000 {
+                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
+                               reg = <0x302a0000 0x10000>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_WDOG3_ROOT_CLK>;
+                               status = "disabled";
+                       };
+
+                       wdog4: wdog@302b0000 {
+                               compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
+                               reg = <0x302b0000 0x10000>;
+                               interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_WDOG4_ROOT_CLK>;
+                               status = "disabled";
+                       };
+
+                       iomuxc_lpsr: iomuxc-lpsr@302c0000 {
+                               compatible = "fsl,imx7d-iomuxc-lpsr";
+                               reg = <0x302c0000 0x10000>;
+                               fsl,input-sel = <&iomuxc>;
+                       };
+
+                       gpt1: gpt@302d0000 {
+                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
+                               reg = <0x302d0000 0x10000>;
+                               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_GPT1_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                       };
+
+                       gpt2: gpt@302e0000 {
+                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
+                               reg = <0x302e0000 0x10000>;
+                               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_GPT2_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       gpt3: gpt@302f0000 {
+                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
+                               reg = <0x302f0000 0x10000>;
+                               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_GPT3_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       gpt4: gpt@30300000 {
+                               compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
+                               reg = <0x30300000 0x10000>;
+                               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                        <&clks IMX7D_GPT4_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       iomuxc: iomuxc@30330000 {
+                               compatible = "fsl,imx7d-iomuxc";
+                               reg = <0x30330000 0x10000>;
+                       };
+
+                       gpr: iomuxc-gpr@30340000 {
+                               compatible = "fsl,imx7d-iomuxc-gpr", "syscon";
+                               reg = <0x30340000 0x10000>;
+                       };
+
+                       ocotp: ocotp-ctrl@30350000 {
+                               compatible = "syscon";
+                               reg = <0x30350000 0x10000>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>;
+                               status = "disabled";
+                       };
+
+                       anatop: anatop@30360000 {
+                               compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop",
+                                       "syscon", "simple-bus";
+                               reg = <0x30360000 0x10000>;
+                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+
+                               reg_1p0d: regulator-vdd1p0d {
+                                       compatible = "fsl,anatop-regulator";
+                                       regulator-name = "vdd1p0d";
+                                       regulator-min-microvolt = <800000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       anatop-reg-offset = <0x210>;
+                                       anatop-vol-bit-shift = <8>;
+                                       anatop-vol-bit-width = <5>;
+                                       anatop-min-bit-val = <8>;
+                                       anatop-min-voltage = <800000>;
+                                       anatop-max-voltage = <1200000>;
+                                       anatop-enable-bit = <31>;
+                               };
+                       };
+
+                       snvs: snvs@30370000 {
+                               compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
+                               reg = <0x30370000 0x10000>;
+
+                               snvs_rtc: snvs-rtc-lp {
+                                       compatible = "fsl,sec-v4.0-mon-rtc-lp";
+                                       regmap = <&snvs>;
+                                       offset = <0x34>;
+                                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               snvs_poweroff: snvs-poweroff {
+                                       compatible = "syscon-poweroff";
+                                       regmap = <&snvs>;
+                                       offset = <0x38>;
+                                       mask = <0x60>;
+                               };
+
+                               snvs_pwrkey: snvs-powerkey {
+                                       compatible = "fsl,sec-v4.0-pwrkey";
+                                       regmap = <&snvs>;
+                                       interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+                                       linux,keycode = <KEY_POWER>;
+                                       wakeup-source;
+                               };
+                       };
+
+                       clks: ccm@30380000 {
+                               compatible = "fsl,imx7d-ccm";
+                               reg = <0x30380000 0x10000>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               #clock-cells = <1>;
+                               clocks = <&ckil>, <&osc>;
+                               clock-names = "ckil", "osc";
+                       };
+
+                       src: src@30390000 {
+                               compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon";
+                               reg = <0x30390000 0x10000>;
+                               interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+                               #reset-cells = <1>;
+                       };
+               };
+
+               aips2: aips-bus@30400000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x30400000 0x400000>;
+                       ranges;
+
+                       adc1: adc@30610000 {
+                               compatible = "fsl,imx7d-adc";
+                               reg = <0x30610000 0x10000>;
+                               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_ADC_ROOT_CLK>;
+                               clock-names = "adc";
+                               status = "disabled";
+                       };
+
+                       adc2: adc@30620000 {
+                               compatible = "fsl,imx7d-adc";
+                               reg = <0x30620000 0x10000>;
+                               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_ADC_ROOT_CLK>;
+                               clock-names = "adc";
+                               status = "disabled";
+                       };
+
+                       ecspi4: ecspi@30630000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
+                               reg = <0x30630000 0x10000>;
+                               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_ECSPI4_ROOT_CLK>,
+                                       <&clks IMX7D_ECSPI4_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       pwm1: pwm@30660000 {
+                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
+                               reg = <0x30660000 0x10000>;
+                               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_PWM1_ROOT_CLK>,
+                                        <&clks IMX7D_PWM1_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               #pwm-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       pwm2: pwm@30670000 {
+                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
+                               reg = <0x30670000 0x10000>;
+                               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_PWM2_ROOT_CLK>,
+                                        <&clks IMX7D_PWM2_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               #pwm-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       pwm3: pwm@30680000 {
+                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
+                               reg = <0x30680000 0x10000>;
+                               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_PWM3_ROOT_CLK>,
+                                        <&clks IMX7D_PWM3_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               #pwm-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       pwm4: pwm@30690000 {
+                               compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
+                               reg = <0x30690000 0x10000>;
+                               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_PWM4_ROOT_CLK>,
+                                        <&clks IMX7D_PWM4_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               #pwm-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       lcdif: lcdif@30730000 {
+                               compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
+                               reg = <0x30730000 0x10000>;
+                               interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
+                                       <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_CLK_DUMMY>;
+                               clock-names = "pix", "axi", "disp_axi";
+                               status = "disabled";
+                       };
+               };
+
+               aips3: aips-bus@30800000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x30800000 0x400000>;
+                       ranges;
+
+                       ecspi1: ecspi@30820000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
+                               reg = <0x30820000 0x10000>;
+                               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_ECSPI1_ROOT_CLK>,
+                                       <&clks IMX7D_ECSPI1_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       ecspi2: ecspi@30830000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
+                               reg = <0x30830000 0x10000>;
+                               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_ECSPI2_ROOT_CLK>,
+                                       <&clks IMX7D_ECSPI2_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       ecspi3: ecspi@30840000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
+                               reg = <0x30840000 0x10000>;
+                               interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_ECSPI3_ROOT_CLK>,
+                                       <&clks IMX7D_ECSPI3_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       uart1: serial@30860000 {
+                               compatible = "fsl,imx7d-uart",
+                                            "fsl,imx6q-uart";
+                               reg = <0x30860000 0x10000>;
+                               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_UART1_ROOT_CLK>,
+                                       <&clks IMX7D_UART1_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       uart2: serial@30890000 {
+                               compatible = "fsl,imx7d-uart",
+                                            "fsl,imx6q-uart";
+                               reg = <0x30890000 0x10000>;
+                               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_UART2_ROOT_CLK>,
+                                       <&clks IMX7D_UART2_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       uart3: serial@30880000 {
+                               compatible = "fsl,imx7d-uart",
+                                            "fsl,imx6q-uart";
+                               reg = <0x30880000 0x10000>;
+                               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_UART3_ROOT_CLK>,
+                                       <&clks IMX7D_UART3_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       flexcan1: can@30a00000 {
+                               compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
+                               reg = <0x30a00000 0x10000>;
+                               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_CAN1_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       flexcan2: can@30a10000 {
+                               compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
+                               reg = <0x30a10000 0x10000>;
+                               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_CAN2_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@30a20000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
+                               reg = <0x30a20000 0x10000>;
+                               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_I2C1_ROOT_CLK>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@30a30000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
+                               reg = <0x30a30000 0x10000>;
+                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_I2C2_ROOT_CLK>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@30a40000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
+                               reg = <0x30a40000 0x10000>;
+                               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_I2C3_ROOT_CLK>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@30a50000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
+                               reg = <0x30a50000 0x10000>;
+                               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_I2C4_ROOT_CLK>;
+                               status = "disabled";
+                       };
+
+                       uart4: serial@30a60000 {
+                               compatible = "fsl,imx7d-uart",
+                                            "fsl,imx6q-uart";
+                               reg = <0x30a60000 0x10000>;
+                               interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_UART4_ROOT_CLK>,
+                                       <&clks IMX7D_UART4_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       uart5: serial@30a70000 {
+                               compatible = "fsl,imx7d-uart",
+                                            "fsl,imx6q-uart";
+                               reg = <0x30a70000 0x10000>;
+                               interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_UART5_ROOT_CLK>,
+                                       <&clks IMX7D_UART5_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       uart6: serial@30a80000 {
+                               compatible = "fsl,imx7d-uart",
+                                            "fsl,imx6q-uart";
+                               reg = <0x30a80000 0x10000>;
+                               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_UART6_ROOT_CLK>,
+                                       <&clks IMX7D_UART6_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       uart7: serial@30a90000 {
+                               compatible = "fsl,imx7d-uart",
+                                            "fsl,imx6q-uart";
+                               reg = <0x30a90000 0x10000>;
+                               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_UART7_ROOT_CLK>,
+                                       <&clks IMX7D_UART7_ROOT_CLK>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       usbotg1: usb@30b10000 {
+                               compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
+                               reg = <0x30b10000 0x200>;
+                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_USB_CTRL_CLK>;
+                               fsl,usbphy = <&usbphynop1>;
+                               fsl,usbmisc = <&usbmisc1 0>;
+                               phy-clkgate-delay-us = <400>;
+                               status = "disabled";
+                       };
+
+                       usbh: usb@30b30000 {
+                               compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
+                               reg = <0x30b30000 0x200>;
+                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_USB_CTRL_CLK>;
+                               fsl,usbphy = <&usbphynop3>;
+                               fsl,usbmisc = <&usbmisc3 0>;
+                               phy_type = "hsic";
+                               dr_mode = "host";
+                               phy-clkgate-delay-us = <400>;
+                               status = "disabled";
+                       };
+
+                       usbmisc1: usbmisc@30b10200 {
+                               #index-cells = <1>;
+                               compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
+                               reg = <0x30b10200 0x200>;
+                       };
+
+                       usbmisc3: usbmisc@30b30200 {
+                               #index-cells = <1>;
+                               compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
+                               reg = <0x30b30200 0x200>;
+                       };
+
+                       usbphynop1: usbphynop1 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks IMX7D_USB_PHY1_CLK>;
+                               clock-names = "main_clk";
+                       };
+
+                       usbphynop3: usbphynop3 {
+                               compatible = "usb-nop-xceiv";
+                               clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>;
+                               clock-names = "main_clk";
+                       };
+
+                       usdhc1: usdhc@30b40000 {
+                               compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
+                               reg = <0x30b40000 0x10000>;
+                               interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_USDHC1_ROOT_CLK>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       usdhc2: usdhc@30b50000 {
+                               compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
+                               reg = <0x30b50000 0x10000>;
+                               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_USDHC2_ROOT_CLK>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       usdhc3: usdhc@30b60000 {
+                               compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
+                               reg = <0x30b60000 0x10000>;
+                               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_CLK_DUMMY>,
+                                       <&clks IMX7D_USDHC3_ROOT_CLK>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       fec1: ethernet@30be0000 {
+                               compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
+                               reg = <0x30be0000 0x10000>;
+                               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+                                       <&clks IMX7D_ENET_AXI_ROOT_CLK>,
+                                       <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
+                                       <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
+                                       <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
+                               clock-names = "ipg", "ahb", "ptp",
+                                       "enet_clk_ref", "enet_out";
+                               fsl,num-tx-queues=<3>;
+                               fsl,num-rx-queues=<3>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
index 5ae8e92..368e219 100644 (file)
                        interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
+                       snps,dis_rxdet_inp3_quirk;
                };
 
                pcie@3400000 {