On Colibri and Apalis iMX6 V1.1Z and V1.1Y 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 and V1.1Y versions were only sold on request, but since the supply chain issues continue they may also be available in the webshop.
This page covers the optional software modifications needed to silence the (non-fatal) errors that appear on these modules.
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.
The impact for customers is:
/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.
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>;
- };
- };
};