Search by Tags

Software Adjustments for Colibri / Apalis iMX6 V1.1Z Modules

 

Article updated at 08 Apr 2021
Compare with Revision

Subscribe for this article updates

Introduction

On Colibri and Apalis iMX6 V1.1Z modules, the STMPE811 touch and ADC controller has been left away. This was done due to supply chain issues with the STMPE811 part. The V1.1Z version is only sold on request and not available in the webshop.

This page covers the optional software modifications needed to silence the (non-fatal) errors that appear on these modules.

Windows CE

There is no impact for the customers, not even a warning. As long as you don't need resistive touch and ADC, you can continue using our BSP seamlessly.

Embedded Linux

The impact for customers is:

  • Some error messages will be printed to the serial terminal during boot and the system log. They have no impact on the system and you can ignore them.
  • If you use other input devices, e.g. mouse or keyboard it can be that the numbering in /dev/input of these devices changes.

The errors are not impacting the system overall. Applying patches to suppress them is not necessary. If you are ok with the errors being printed, you can use our regular BSPs without patching it.

Changes to the Device Tree

The changes to silence the error messages are simple, just remove the stmpe811 node from the Device Tree and also delete the stmpe811 node as suggested below in the Colibri iMX6 example.

Tip: Please refer to the Device Tree Customization article to know more about this topic.

Note: The Device Tree overlay apalis-imx6_stmpe-ts_overlay.dts or colibri-imx6_stmpe-ts_overlay.dts in BSP 5.1.0 and later should not be applied. Even if you do not apply this overlay the errors will still be present as the ADC part of the STMPE tries to be active.

Here is an example patch, written to silence errors on a Colibri iMX6 module (on BSP 3.0):

--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -366,51 +366,6 @@
                VDDD-supply = <&vgen4_reg>;
                lrclk-strength = <3>;
        };
-
-       /* STMPE811 touch screen controller */
-       stmpe811@41 {
-               compatible = "st,stmpe811";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_touch_int>;
-               reg = <0x41>;
-               interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
-               interrupt-parent = <&gpio6>;
-               interrupt-controller;
-               id = <0>;
-               blocks = <0x5>;
-               irq-trigger = <0x1>;
-               /* 3.25 MHz ADC clock speed */
-               st,adc-freq = <1>;
-               /* 12-bit ADC */
-               st,mod-12b = <1>;
-               /* internal ADC reference */
-               st,ref-sel = <0>;
-               /* ADC converstion time: 80 clocks */
-               st,sample-time = <4>;
-
-               stmpe_touchscreen {
-                       compatible = "st,stmpe-ts";
-                       /* 8 sample average control */
-                       st,ave-ctrl = <3>;
-                       /* 7 length fractional part in z */
-                       st,fraction-z = <7>;
-                       /*
-                        * 50 mA typical 80 mA max touchscreen drivers
-                        * current limit value
-                        */
-                       st,i-drive = <1>;
-                       /* 1 ms panel driver settling time */
-                       st,settling = <3>;
-                       /* 5 ms touch detect interrupt delay */
-                       st,touch-det-delay = <5>;
-               };
-
-               stmpe_adc {
-                       compatible = "st,stmpe-adc";
-                       /* forbid to use ADC channels 3-0 (touch) */
-                       st,norequest-mask = <0x0F>;
-               };
-       };
 };