summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts30
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-eval.dts114
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi76
-rw-r--r--arch/arm/boot/dts/imx6qdl-colibri.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi8
-rw-r--r--arch/arm/boot/dts/imx6ull-colibri.dtsi8
-rw-r--r--arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi25
-rw-r--r--arch/arm/boot/dts/imx7-colibri.dtsi2
-rw-r--r--arch/arm/boot/dts/imx7s.dtsi8
-rw-r--r--arch/arm/boot/dts/overlays/README33
-rw-r--r--arch/arm/boot/dts/overlays/display_10.1_lvds_cap_touch.dts32
-rw-r--r--arch/arm/boot/dts/overlays/display_7_parallel_cap_touch.dts26
-rw-r--r--arch/arm/boot/dts/overlays/display_EDT5.7_parallel_res_touch.dts24
-rw-r--r--arch/arm/boot/dts/overlays/display_EDT7_parallel_res_touch.dts24
-rw-r--r--arch/arm/boot/dts/overlays/enable_lvds_display_apalis_imx6.dts12
-rw-r--r--arch/arm/boot/dts/overlays/enable_parallel_display_apalis_imx6.dts12
-rw-r--r--arch/arm/boot/dts/overlays/touch_cap_apalis_evb.dts20
-rw-r--r--arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_aster.dts37
-rw-r--r--arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_evb.dts31
-rw-r--r--arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_aster.dts18
-rw-r--r--arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_evb.dts50
-rw-r--r--arch/arm/mach-imx/Makefile2
22 files changed, 563 insertions, 33 deletions
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
index d08e0402793b..5ee2ddedd038 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
@@ -98,7 +98,6 @@
compatible = "fsl,imx-parallel-display";
#address-cells = <1>;
#size-cells = <0>;
- interface-pix-fmt = "bgr666";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu1_lcdif>;
status = "okay";
@@ -120,13 +119,25 @@
};
};
- panel: panel {
- /*
- * edt,et057090dhu: EDT 5.7" LCD TFT
- * edt,et070080dh6: EDT 7.0" LCD TFT
- */
- compatible = "edt,et057090dhu";
+ panel_dpi: panel-dpi {
+ compatible = "panel-dpi";
backlight = <&backlight>;
+ width-mm = <115>;
+ height-mm = <86>;
+
+ data-mapping = "bgr666";
+
+ panel-timing {
+ clock-frequency = <25175000>;
+ hactive = <640>;
+ vactive = <480>;
+ hsync-len = <30>;
+ hfront-porch = <16>;
+ hback-porch = <114>;
+ vsync-len = <3>;
+ vfront-porch = <10>;
+ vback-porch = <32>;
+ };
port {
lcd_panel_in: endpoint {
@@ -227,10 +238,11 @@
&weim {
status = "okay";
- /* weim memory map: 32MB on CS0, 32MB on CS1, 32MB on CS2 */
+ /* weim memory map: 32MB on CS0, CS1, CS2 and CS3 */
ranges = <0 0 0x08000000 0x02000000
1 0 0x0a000000 0x02000000
- 2 0 0x0c000000 0x02000000>;
+ 2 0 0x0c000000 0x02000000
+ 3 0 0x0e000000 0x02000000>;
/* SRAM on Colibri nEXT_CS0 */
sram@0,0 {
diff --git a/arch/arm/boot/dts/imx6q-apalis-eval.dts b/arch/arm/boot/dts/imx6q-apalis-eval.dts
index 0edd3043d9c1..db6818c61e43 100644
--- a/arch/arm/boot/dts/imx6q-apalis-eval.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-eval.dts
@@ -84,10 +84,9 @@
compatible = "fsl,imx-parallel-display";
#address-cells = <1>;
#size-cells = <0>;
- interface-pix-fmt = "rgb24";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu1_lcdif>;
- status = "okay";
+ status = "disabled";
port@0 {
reg = <0>;
@@ -106,14 +105,28 @@
};
};
- panel: panel {
- /*
- * edt,et057090dhu: EDT 5.7" LCD TFT
- * edt,et070080dh6: EDT 7.0" LCD TFT
- */
- compatible = "edt,et057090dhu";
+ panel_dpi: panel-dpi {
+ compatible = "panel-dpi";
+
backlight = <&backlight>;
- power-supply = <&reg_3v3_sw>;
+
+ width-mm = <115>;
+ height-mm = <86>;
+
+ data-mapping = "rgb24";
+ status = "disabled";
+
+ panel-timing {
+ clock-frequency = <25175000>;
+ hactive = <640>;
+ vactive = <480>;
+ hsync-len = <30>;
+ hfront-porch = <16>;
+ hback-porch = <114>;
+ vsync-len = <3>;
+ vfront-porch = <10>;
+ vback-porch = <32>;
+ };
port {
lcd_panel_in: endpoint {
@@ -122,6 +135,39 @@
};
};
+ panel_lvds: panel-lvds {
+ compatible = "panel-lvds";
+
+ backlight = <&backlight>;
+
+ width-mm = <218>;
+ height-mm = <137>;
+
+ data-mapping = "vesa-24";
+ status = "disabled";
+
+ panel-timing {
+ clock-frequency = <68930000>;
+ hactive = <1280>;
+ vactive = <800>;
+ hback-porch = <64>;
+ hfront-porch = <64>;
+ vback-porch = <5>;
+ vfront-porch = <5>;
+ hsync-len = <40>;
+ vsync-len = <6>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ pixelclk-active = <0>;
+ };
+
+ port {
+ lvds_panel_in: endpoint {
+ remote-endpoint = <&lvds_out>;
+ };
+ };
+ };
+
reg_pcie_switch: regulator-pcie-switch {
compatible = "regulator-fixed";
regulator-name = "pcie_switch";
@@ -140,6 +186,16 @@
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
+
+ vga {
+ compatible = "vga-connector";
+
+ port {
+ vga_con_in: endpoint {
+ remote-endpoint = <&vga_bridge_out>;
+ };
+ };
+ };
};
&backlight {
@@ -159,6 +215,13 @@
status = "okay";
};
+&clks {
+ assigned-clocks = <&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>,
+ <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
+ assigned-clock-parents = <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
+ <&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
+};
+
&hdmi {
status = "okay";
};
@@ -192,7 +255,20 @@
};
&ldb {
- status = "okay";
+ status = "disabled";
+
+ lvds-channel@0 {
+ status = "okay";
+ primary;
+
+ port@4 {
+ reg = <4>;
+
+ lvds_out: endpoint {
+ remote-endpoint = <&lvds_panel_in>;
+ };
+ };
+ };
};
&pcie {
@@ -283,6 +359,24 @@
status = "okay";
};
+&vgabridge {
+ status = "okay";
+
+ ports {
+ port@1 {
+ reg = <1>;
+
+ vga_bridge_out: endpoint {
+ remote-endpoint = <&vga_con_in>;
+ };
+ };
+ };
+};
+
+&vgadisplay {
+ status = "okay";
+};
+
&iomuxc {
/*
* Mux the Apalis GPIOs
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index 3dc99dd8dde1..b91a8e5a9b01 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -61,6 +61,18 @@
status = "disabled";
};
+ /* DDC_I2C: I2C2_SDA/SCL on MXM3 205/207 */
+ i2cddc: i2c@0 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c_ddc>;
+ gpios = <&gpio3 16 GPIO_ACTIVE_HIGH /* sda */
+ &gpio2 30 GPIO_ACTIVE_HIGH /* scl */
+ >;
+ i2c-gpio,delay-us = <2>; /* ~100 kHz */
+ status = "disabled";
+ };
+
reg_module_3v3: regulator-module-3v3 {
compatible = "regulator-fixed";
regulator-name = "+V3.3";
@@ -138,6 +150,54 @@
spdif-out;
status = "disabled";
};
+
+ vgabridge: bridge {
+ compatible = "dumb-vga-dac";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ de-active = <0>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ vga_bridge_in: endpoint {
+ remote-endpoint = <&vga_display_out>;
+ };
+ };
+ };
+ };
+
+ vgadisplay: display@di0 {
+ compatible = "fsl,imx-parallel-display";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ interface-pix-fmt = "rgb565";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ipu2_vdac>;
+ status = "disabled";
+
+ port@0 {
+ reg = <0>;
+
+ vga_display_in: endpoint {
+ remote-endpoint = <&ipu2_di0_disp0>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ vga_display_out: endpoint {
+ remote-endpoint = <&vga_bridge_in>;
+ };
+ };
+ };
+
};
&audmux {
@@ -368,11 +428,15 @@
pinctrl-names = "default", "recovery";
pinctrl-0 = <&pinctrl_i2c3>;
pinctrl-1 = <&pinctrl_i2c3_recovery>;
- scl-gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
- sda-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&gpio3 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ sda-gpios = <&gpio3 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled";
};
+&ipu2_di0_disp0 {
+ remote-endpoint = <&vga_display_in>;
+};
+
&pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm1>;
@@ -632,6 +696,14 @@
>;
};
+ pinctrl_i2c_ddc: gpioi2cddcgrp {
+ fsl,pins = <
+ /* DDC bitbang */
+ MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1b0b0
+ MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x1b0b0
+ >;
+ };
+
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index 87e15e7cb32b..8a27c2a05678 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -298,8 +298,8 @@
pinctrl-names = "default", "recovery";
pinctrl-0 = <&pinctrl_i2c3>;
pinctrl-1 = <&pinctrl_i2c3_recovery>;
- scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
- sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "disabled";
};
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index 083d3446c41d..a63983a88897 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -228,6 +228,8 @@
clocks = <&clks IMX6UL_CLK_ECSPI1>,
<&clks IMX6UL_CLK_ECSPI1>;
clock-names = "ipg", "per";
+ dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
@@ -240,6 +242,8 @@
clocks = <&clks IMX6UL_CLK_ECSPI2>,
<&clks IMX6UL_CLK_ECSPI2>;
clock-names = "ipg", "per";
+ dmas = <&sdma 5 7 1>, <&sdma 6 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
@@ -252,6 +256,8 @@
clocks = <&clks IMX6UL_CLK_ECSPI3>,
<&clks IMX6UL_CLK_ECSPI3>;
clock-names = "ipg", "per";
+ dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
@@ -264,6 +270,8 @@
clocks = <&clks IMX6UL_CLK_ECSPI4>,
<&clks IMX6UL_CLK_ECSPI4>;
clock-names = "ipg", "per";
+ dmas = <&sdma 9 7 1>, <&sdma 10 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
diff --git a/arch/arm/boot/dts/imx6ull-colibri.dtsi b/arch/arm/boot/dts/imx6ull-colibri.dtsi
index 6c63a7384611..9ad1da159768 100644
--- a/arch/arm/boot/dts/imx6ull-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6ull-colibri.dtsi
@@ -94,16 +94,16 @@
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c1>;
pinctrl-1 = <&pinctrl_i2c1_gpio>;
- sda-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
- scl-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
+ sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
};
&i2c2 {
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c2>;
pinctrl-1 = <&pinctrl_i2c2_gpio>;
- sda-gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
- scl-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
+ sda-gpios = <&gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
ad7879@2c {
diff --git a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
index 3f2746169181..b6a4cc387695 100644
--- a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
+++ b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
@@ -52,13 +52,30 @@
clock-frequency = <16000000>;
};
- panel: panel {
- compatible = "edt,et057090dhu";
+ panel_dpi: panel-dpi {
+ compatible = "panel-dpi";
backlight = <&bl>;
power-supply = <&reg_3v3>;
+ width-mm = <115>;
+ height-mm = <86>;
+
+ data-mapping = "bgr666";
+
+ panel-timing {
+ clock-frequency = <25175000>;
+ hactive = <640>;
+ vactive = <480>;
+ hsync-len = <30>;
+ hfront-porch = <16>;
+ hback-porch = <114>;
+ vsync-len = <3>;
+ vfront-porch = <10>;
+ vback-porch = <32>;
+ };
+
port {
- panel_in: endpoint {
+ lcd_panel_in: endpoint {
remote-endpoint = <&lcdif_out>;
};
};
@@ -143,7 +160,7 @@
port {
lcdif_out: endpoint {
- remote-endpoint = <&panel_in>;
+ remote-endpoint = <&lcd_panel_in>;
};
};
};
diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
index 895fbde4d433..37aeba999be3 100644
--- a/arch/arm/boot/dts/imx7-colibri.dtsi
+++ b/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -319,10 +319,10 @@
assigned-clock-rates = <400000000>;
bus-width = <8>;
fsl,tuning-step = <2>;
- max-frequency = <100000000>;
vmmc-supply = <&reg_module_3v3>;
vqmmc-supply = <&reg_DCDC3>;
non-removable;
+ sdhci-caps-mask = <0x80000000 0x0>;
};
&iomuxc {
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
index aa8df7d93b2e..043e39124c43 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -651,6 +651,8 @@
clocks = <&clks IMX7D_ECSPI4_ROOT_CLK>,
<&clks IMX7D_ECSPI4_ROOT_CLK>;
clock-names = "ipg", "per";
+ dmas = <&sdma 6 7 1>, <&sdma 7 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
@@ -732,6 +734,8 @@
clocks = <&clks IMX7D_ECSPI1_ROOT_CLK>,
<&clks IMX7D_ECSPI1_ROOT_CLK>;
clock-names = "ipg", "per";
+ dmas = <&sdma 0 7 1>, <&sdma 1 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
@@ -744,6 +748,8 @@
clocks = <&clks IMX7D_ECSPI2_ROOT_CLK>,
<&clks IMX7D_ECSPI2_ROOT_CLK>;
clock-names = "ipg", "per";
+ dmas = <&sdma 2 7 1>, <&sdma 3 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
@@ -756,6 +762,8 @@
clocks = <&clks IMX7D_ECSPI3_ROOT_CLK>,
<&clks IMX7D_ECSPI3_ROOT_CLK>;
clock-names = "ipg", "per";
+ dmas = <&sdma 4 7 1>, <&sdma 5 7 2>;
+ dma-names = "rx", "tx";
status = "disabled";
};
diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
new file mode 100644
index 000000000000..737ec4a8e6e9
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/README
@@ -0,0 +1,33 @@
+Introduction
+============
+
+This directory contains Device Tree overlays.
+
+Current avalible and supported overlays
+=======================================
+
+Display
+---------------------------------------
+display_EDT5.7_parallel_res_touch.dts -> 5.7 inch display proivded by Toradex https://developer.toradex.com/products/edt-display
+display_EDT7_parallel_res_touch.dts -> 7 inch display proivded by Toradex https://developer.toradex.com/products/edt-display
+display_10.1_lvds_cap_touch.dts -> 10.1 inch lvds display proivded by Toradex
+display_7_parallel_cap_touch.dts -> Display with capacitive touch https://developer.toradex.com/products/capacitive-touch-display-7inch-parallel
+
+Touch controllers
+----------------------------------------
+touch_cap_apalis_evb.dts -> touch controller for capacitive touch displays
+touch_cap_colibri_imx6_evb.dts -> touch controller for capaccitive touch display compatible with colibri-imx6 and evaluation board
+touch_cap_colibri_imx6_aster.dts -> touch controller for capaccitive touch display compatible with colibri-imx6 and Aster board
+touch_cap_colibri_imx7_evb.dts -> touch controller for capaccitive touch display compatible with colibri-imx7 and evaluation board
+touch_cap_colibri_imx7_aster.dts -> touch controller for capaccitive touch display compatible with colibri-imx7 and Aster board
+=======================================
+
+touch_cap_apalis_evb.dts
+ -> Compatible with
+ - display_10.1_lvds_cap_touch.dts
+ - display_7_parallel_cap_touch.dts
+
+
+touch_cap_colibri_imx6_evb.dts
+touch_cap_colibri_imx7_evb.dts
+ -> When applying this overlay device has to be powercycled
diff --git a/arch/arm/boot/dts/overlays/display_10.1_lvds_cap_touch.dts b/arch/arm/boot/dts/overlays/display_10.1_lvds_cap_touch.dts
new file mode 100644
index 000000000000..187dc0db077b
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/display_10.1_lvds_cap_touch.dts
@@ -0,0 +1,32 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex,apalis_imx6q";
+
+ fragment@0 {
+ target-path="/panel-lvds";
+ __overlay__ {
+ status = "okay";
+
+ data-mapping = "vesa-24";
+ width-mm = <1280>;
+ height-mm = <800>;
+
+ panel-timing {
+ clock-frequency = <68930000>;
+ hactive = <1280>;
+ vactive = <800>;
+ hback-porch = <64>;
+ hfront-porch = <64>;
+ vback-porch = <5>;
+ vfront-porch = <5>;
+ hsync-len = <40>;
+ vsync-len = <6>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ pixelclk-active = <0>;
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/display_7_parallel_cap_touch.dts b/arch/arm/boot/dts/overlays/display_7_parallel_cap_touch.dts
new file mode 100644
index 000000000000..b92ad6101315
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/display_7_parallel_cap_touch.dts
@@ -0,0 +1,26 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex";
+ fragment@0 {
+ target-path = "/panel-dpi";
+ __overlay__ {
+ status = "okay";
+ width-mm = <154>;
+ height-mm = <86>;
+ panel-timing {
+ clock-frequency = <33230769>;
+ hactive = <800>;
+ vactive = <480>;
+ hsync-len = <128>;
+ hfront-porch = <40>;
+ hback-porch = <88>;
+ vsync-len = <1>;
+ vfront-porch = <10>;
+ vback-porch = <33>;
+ pixelclk-active = <1>;
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/display_EDT5.7_parallel_res_touch.dts b/arch/arm/boot/dts/overlays/display_EDT5.7_parallel_res_touch.dts
new file mode 100644
index 000000000000..da112f34e0c8
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/display_EDT5.7_parallel_res_touch.dts
@@ -0,0 +1,24 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex";
+ fragment@0 {
+ target-path = "/panel-dpi";
+ __overlay__ {
+ width-mm = <116>;
+ height-mm = <86>;
+ panel-timing {
+ clock-frequency = <25175000>;
+ hactive = <640>;
+ vactive = <480>;
+ hsync-len = <30>;
+ hfront-porch = <16>;
+ hback-porch = <114>;
+ vsync-len = <3>;
+ vfront-porch = <10>;
+ vback-porch = <32>;
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/display_EDT7_parallel_res_touch.dts b/arch/arm/boot/dts/overlays/display_EDT7_parallel_res_touch.dts
new file mode 100644
index 000000000000..85df65a7c2cd
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/display_EDT7_parallel_res_touch.dts
@@ -0,0 +1,24 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex";
+ fragment@0 {
+ target-path = "/panel-dpi";
+ __overlay__ {
+ width-mm = <155>;
+ height-mm = <91>;
+ panel-timing {
+ clock-frequency = <33230769>;
+ hactive = <800>;
+ vactive = <480>;
+ hsync-len = <128>;
+ hfront-porch = <40>;
+ hback-porch = <88>;
+ vsync-len = <1>;
+ vfront-porch = <10>;
+ vback-porch = <33>;
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/enable_lvds_display_apalis_imx6.dts b/arch/arm/boot/dts/overlays/enable_lvds_display_apalis_imx6.dts
new file mode 100644
index 000000000000..15fcc186ae7f
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/enable_lvds_display_apalis_imx6.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex,apalis_imx6q";
+ fragment@0 {
+ target-path = "/ldb";
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/enable_parallel_display_apalis_imx6.dts b/arch/arm/boot/dts/overlays/enable_parallel_display_apalis_imx6.dts
new file mode 100644
index 000000000000..2f3182e3c4df
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/enable_parallel_display_apalis_imx6.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex,apalis_imx6q";
+ fragment@0 {
+ target-path = "/disp0";
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/touch_cap_apalis_evb.dts b/arch/arm/boot/dts/overlays/touch_cap_apalis_evb.dts
new file mode 100644
index 000000000000..0ecac933b32b
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/touch_cap_apalis_evb.dts
@@ -0,0 +1,20 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex,apalis_imx6q";
+ fragment@0 {
+ target-path="/soc/aips-bus@2100000/i2c@21a0000";
+ __overlay__ {
+ status = "okay";
+ atmel_mxt_ts: atmel_mxt_ts@4a {
+ compatible = "atmel,maxtouch";
+ reg = <0x4a>;
+ interrupt-parent = <&gpio6>;
+ interrupts = <10 2>;
+ reset-gpios = <&gpio6 9 0>;
+ status = "okay";
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_aster.dts b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_aster.dts
new file mode 100644
index 000000000000..eec97c28bd89
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_aster.dts
@@ -0,0 +1,37 @@
+/dts-v1/;
+/plugin/;
+/ {
+ compatible = "toradex,colibri-imx6dl";
+ fragment@0 {
+ target = <&weim>;
+ __overlay__{
+ status = "disabled";
+ };
+ };
+ fragment@1 {
+ target = <&iomuxc>;
+ __overlay__ {
+ pinctrl_atmel_mxt_ts: atmelmxttsgrp {
+ fsl,pins = <
+ 0x300 0x6e8 0x000 0x5 0x0 0x1b0b1
+ 0x140 0x510 0x000 0x5 0x0 0x1b0b1
+ >;
+ };
+ };
+ };
+ fragment@2 {
+ target = <&i2c3>;
+ __overlay__ {
+ atmel_mxt_ts: atmel_mxt_ts@4a {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_atmel_mxt_ts>;
+ compatible = "atmel,maxtouch";
+ reg = <0x4a>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <24 2>;
+ reset-gpios = <&gpio1 14 0>;
+ status = "okay";
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_evb.dts b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_evb.dts
new file mode 100644
index 000000000000..ab0c7daff8b1
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx6_evb.dts
@@ -0,0 +1,31 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex,colibri-imx6dl";
+ fragment@0 {
+ target = <&i2c3>;
+ __overlay__ {
+ atmel_mxt_ts: atmel_mxt_ts@4a {
+ compatible = "atmel,maxtouch";
+ reg = <0x4a>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <9 2>;
+ reset-gpios = <&gpio2 10 0>;
+ status = "okay";
+ };
+ };
+ };
+ fragment@1 {
+ target = <&pwm1>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+ fragment@2 {
+ target = <&pwm4>;
+ __overlay__{
+ status = "disabled";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_aster.dts b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_aster.dts
new file mode 100644
index 000000000000..40120335af38
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_aster.dts
@@ -0,0 +1,18 @@
+/dts-v1/;
+/plugin/;
+/ {
+ compatible = "toradex,colibri-imx7s";
+ fragment@0 {
+ target = <&i2c4>;
+ __overlay__ {
+ atmel_mxt_ts: atmel_mxt_ts@4a {
+ compatible = "atmel,maxtouch";
+ reg = <0x4a>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <15 2>;
+ reset-gpios = <&gpio2 28 0>;
+ status = "okay";
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_evb.dts b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_evb.dts
new file mode 100644
index 000000000000..8b54505565ad
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/touch_cap_colibri_imx7_evb.dts
@@ -0,0 +1,50 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex,colibri-imx7s";
+ fragment@0 {
+ target = <&i2c4>;
+ __overlay__ {
+ atmel_mxt_ts: atmel_mxt_ts@4a {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_atmel_mxt_ts>;
+ compatible = "atmel,maxtouch";
+ reg = <0x4a>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <9 2>;
+ reset-gpios = <&gpio1 10 0>;
+ status = "okay";
+ };
+ };
+ };
+ fragment@1 {
+ target = <&pwm2>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+ fragment@2 {
+ target = <&pwm3>;
+ __overlay__{
+ status = "disabled";
+ };
+ };
+ fragment@3 {
+ target = <&iomuxc_lpsr>;
+ __overlay__ {
+ pinctrl_atmel_mxt_ts: atmelmxttsgrp {
+ fsl,pins = <
+ 0x0018 0x0270 0x0000 0x0 0x0 0x59
+ 0x001C 0x0274 0x0000 0x0 0x0 0x59
+ >;
+ };
+ };
+ };
+ fragment@4 {
+ target = <&uart1>;
+ __overlay__ {
+ pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_ctrl1>;
+ };
+ };
+};
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
index bae179af21f6..12b05708832d 100644
--- a/arch/arm/mach-imx/Makefile
+++ b/arch/arm/mach-imx/Makefile
@@ -31,7 +31,7 @@ obj-$(CONFIG_SOC_IMX6SX) += cpuidle-imx6sx.o
obj-$(CONFIG_SOC_IMX6UL) += cpuidle-imx6sx.o
endif
-ifdef CONFIG_SND_IMX_SOC
+ifdef CONFIG_SND_SOC_IMX_PCM_FIQ
obj-y += ssi-fiq.o
obj-y += ssi-fiq-ksym.o
endif