summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts25
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-eval.dts108
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora.dts2
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi76
-rw-r--r--arch/arm/boot/dts/imx6ul.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.dts35
-rw-r--r--arch/arm/boot/dts/overlays/display_7_parallel_cap_touch.dts25
-rw-r--r--arch/arm/boot/dts/overlays/display_EDT5.7_parallel_res_touch.dts.dts24
-rw-r--r--arch/arm/boot/dts/overlays/display_EDT7_parallel_res_touch.dts24
-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
20 files changed, 529 insertions, 26 deletions
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
index 9de45a717356..17a3dbac6695 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 {
diff --git a/arch/arm/boot/dts/imx6q-apalis-eval.dts b/arch/arm/boot/dts/imx6q-apalis-eval.dts
index 707ac9a46115..5a6bff6bf458 100644
--- a/arch/arm/boot/dts/imx6q-apalis-eval.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-eval.dts
@@ -84,7 +84,6 @@
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";
@@ -106,14 +105,25 @@
};
};
- panel: panel {
- /*
- * edt,et057090dhu: EDT 5.7" LCD TFT
- * edt,et070080dh6: EDT 7.0" LCD TFT
- */
- compatible = "edt,et057090dhu";
- backlight = <&backlight>;
- power-supply = <&reg_3v3_sw>;
+ panel_dpi: panel-dpi {
+ compatible = "panel-dpi";
+
+ width-mm = <115>;
+ height-mm = <86>;
+
+ data-mapping = "rgb24";
+
+ 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 +132,36 @@
};
};
+ panel_lvds: panel-lvds {
+ compatible = "panel-lvds";
+
+ width-mm = <218>;
+ height-mm = <137>;
+
+ data-mapping = "vesa-24";
+
+ 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 +180,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 +209,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";
};
@@ -193,9 +250,24 @@
&ldb {
status = "okay";
+
+ lvds-channel@0 {
+ status = "okay";
+ primary;
+
+ port@4 {
+ reg = <4>;
+
+ lvds_out: endpoint {
+ remote-endpoint = <&lvds_panel_in>;
+ };
+ };
+ };
};
&pcie {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reset_moci>;
/* active-high meaning opposite of regular PERST# active-low polarity */
reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
reset-gpio-active-high;
@@ -281,6 +353,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/imx6q-apalis-ixora-v1.1.dts b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
index 4e1c8feaef82..b94bb687be6b 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
@@ -196,6 +196,8 @@
};
&pcie {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reset_moci>;
/* active-high meaning opposite of regular PERST# active-low polarity */
reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
reset-gpio-active-high;
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora.dts b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
index 469e3d0e2827..302fd6adc8a7 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
@@ -200,6 +200,8 @@
};
&pcie {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reset_moci>;
/* active-high meaning opposite of regular PERST# active-low polarity */
reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
reset-gpio-active-high;
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index 05f07ea3e8c8..0b47aecf336a 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 {
@@ -373,6 +433,10 @@
status = "disabled";
};
+&ipu2_di0_disp0 {
+ remote-endpoint = <&vga_display_in>;
+};
+
&pwm1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm1>;
@@ -482,10 +546,6 @@
};
&iomuxc {
- /* pins used on module */
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_reset_moci>;
-
pinctrl_apalis_gpio1: gpio2io04grp {
fsl,pins = <
MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x130b0
@@ -636,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/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index 6dc0b569acdf..b0193abf7005 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -227,6 +227,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";
};
@@ -239,6 +241,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";
};
@@ -251,6 +255,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";
};
@@ -263,6 +269,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/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 a052198f6e96..b9330176c3af 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -653,6 +653,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";
};
@@ -734,6 +736,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";
};
@@ -746,6 +750,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";
};
@@ -758,6 +764,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..3aa7df403935
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/display_10.1_lvds_cap_touch.dts
@@ -0,0 +1,35 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex,apalis_imx6q";
+ fragment@0 {
+ target-path = "/panel-dpi";
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+ fragment@1 {
+ 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..e82d58dd1ada
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/display_7_parallel_cap_touch.dts
@@ -0,0 +1,25 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "toradex";
+ fragment@0 {
+ target-path = "/panel-dpi";
+ __overlay__ {
+ 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.dts b/arch/arm/boot/dts/overlays/display_EDT5.7_parallel_res_touch.dts.dts
new file mode 100644
index 000000000000..da112f34e0c8
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/display_EDT5.7_parallel_res_touch.dts.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/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