EDT Touch driver

      EDT Touch driver

      Dear support-team,

      for testing we have a ETM0700G0EDH6 display with capacitive touch controller. The supplier is providing a patch file for drivers/input/touchscreen/edt-ft5x06.c. The patch is for a different kernel version 4.13 and does not fit out of the box for kernel 4.1.15 V3.1. So I tried to apply the changes manually but the devices still is not working (no ic2 device 0x38 detected with i2cdetec). Inside device tree I'm using CONFIG_ARMSTONEA9_CAPTOUCH_FT5x06 configuration. The edt-ft5x06.c is supporting M06 and M09 device types. The new one is a M12 type. Do you have a driver that already is supporting M12 type (single touch would be OK - no multi touch needed)?

      While testing different configurations I got the device working once (at least the /dev/input/event0 device was created but the ts_lib did not send positions). I could not repeat this (because I edited this working version while testing ;( ) but I guess the hardware configuration must be OK.

      I attached the incompatible patch file for edt-ft5x06.c

      Any idea?
      Thanks in advance
      1. If i2cdetect is not working then there is something wrong with the HW connection, because i2cdetect works independent from device tree entrys and drivers. So you don´t have to enable a driver and/or do a device tree entry to get the i2cdetect to work.
      2. If you are enable the define CONFIG_ARMSTONEA9_CAPTOUCH_FT5x06 it doesn´t belong to the file edt-ft5x06.c. It belongs to the file ft5x06_ts.c. So if you are doing changes in the file edt-ft5x06.c it will not have an effect because this file will not be used. I also guess that the driver edt-ft5x06.c is not active in our default configuration.
      ​So first of all check your HW connections and try the i2cdetect command till it works.
      Hint: if you call

      Source Code

      1. i2cdetect 0
      it means i2c1.

      Source Code

      1. i2cdetect 1
      means i2c2.
      Then enable the edt-ft5x06.c driver in menuconfig and do the correct device tree entry for the edt-ft5x06 driver. After that you can test it if it works.
      In the edt-ft5x06 driver there is no support for M12 type. Only support for M06 and M09 (as you have already said). If you can´t apply the patch you can do it manually. At the moment I don´t think that we have a driver which is supporting M12 type.

      Your F&S Support Team
      F&S Elektronik Systeme GmbH
      As this is an international forum, please try to post in English.
      Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.
      Thanks for your answer.

      When enabling FT5x06 driver in kernel the device will be found and /dev/input/event0 will be created.
      cat /dev/input/event0 will display no results - surely because the driver does not support the M12 touch.

      When trying to use the EDT-FT50x6 driver that supports the M12 device I'm not successful. There is no /dev/input device created.
      Here my changes inside the device tree (inspired by efusa9x.dts):

      Source Code

      2. edt-ft5x06@38 {
      3. compatible = "edt,edt-ft5x06";
      4. reg = <0x38>;
      5. threshold = <25>;
      6. gain = <8>;
      7. offset = <0>;
      8. interrupt-parent = <&gpio1>;
      9. interrupts = <30 IRQ_TYPE_EDGE_FALLING>;
      10. reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
      11. };
      12. #endif

      Thanks for any idea.