Touch sensitivity not working on 7"capacitive display

While wiring and configuring a Toradex 7" capacitive touch display with my iMX6DL on a colibri evaluation board, I ran into a problem. I attached the main display FFC and this worked fine, the desktop showed up on our display, but I could not get the touch to work. I wired the capacitive touch adapter according to the data sheet for the colibri board using the breadboard jumper wires provided with the adapter. I then on my host machine went into uboot and copied each of the commands labeled iMX6 listed on the getting started page: First Steps with Capacitive Touch Display 7" Parallel

I tried running them all together, then saveenv, then boot, running each with a saveenv after each command then a boot, and running them separately with a saveenv and a full boot after each. Even the first time through, the resolution adjusted just fine, but not only did the touch sensitivity not work, but on boot it was no longer prompting for touch calibration, which it had been before.

I am not quite sure If this is relevant, so I will share it as well. On the GPIO tool, there is a check mark in the logic box for the two SODIMM_194 and SODIMM_196 pins, but the logic box next to the two SODIMM_28 and SODIMM_30 pins is not checked. I am not sure if this is representative of the board recognizing a connection or not, I am somewhat new to working with these devices.

hi @LTorg

Welcome to the Toradex Community!!!

Could you provde the dmesg log in text file ( dmesg > dmesg.txt )?

Thanks and best regards,
Jaski

It this what you meant?

link text

yeah, thanks for the dmesg log. There is no information about touch screen appearing in the dmesg log.

Could you provide the following:

  1. How did you connect the touch adapter. Please share a picture clearing showing the connection between the carrier board and touch interface.
  2. Provide the output of fw_printenv fdt_fixup ?

Thanks

link text

fdt_fixup=fdt addr ${fdt_addr_r} && fdt resize && fdt set /soc/aips-bus@02100000/i2c@021a8000/atmel_mxt_ts@4a pinctrl-0 <0x0000003f> && fdt set /soc/aips-bus@02100000/i2c@021a8000/atmel_mxt_ts@4a interrupt-parent <0x0000003e> && fdt set /soc/aips-bus@02100000/i2c@021a8000/atmel_mxt_ts@4a interrupts <0x00000009 0x00000002> && fdt set /soc/aips-bus@02100000/i2c@021a8000/atmel_mxt_ts@4a status okay && fdt set /soc/aips-bus@02000000/iomuxc@020e0000/gpio/pcap-1 linux,phandle <0x0000003f> && fdt set /soc/aips-bus@02000000/iomuxc@020e0000/gpio/pcap-1 phandle <0x0000003f> && fdt rm /soc/aips-bus@02000000/iomuxc@020e0000/gpio/mxt-ts linux,phandle && fdt rm /soc/aips-bus@02000000/iomuxc@020e0000/gpio/mxt-ts phandle && fdt set /soc/aips-bus@02000000/pwm@02080000 status disable && fdt set /soc/aips-bus@02000000/pwm@0208c000 status disable

Thanks for the images and log output. It seems that the fdt_fixup did not work. I would recommend you to use the instructions for the devicetree customization and flash the custom compiled devicetree. The fdt_fixup was meant to have an easy solution for the clients, unfortunately it is not a fail-proof solution. We are sorry for this inconvenience.

Once you flashed the new device tree, the touch adapter should appear in the dmesg log.

Hi I figured out your issue. Your connection with the flex cable to the adapter is incorrect it needs to be flipped the other way.

Once that has been fixed you can enter the u-boot command as before and once you log into the device enter the following to enable the touch driver:

modprobe atmel_mxt_ts

I’ve actually had similar issues on my end I’ll see about updating the documentation to include a picture with the right orientation for the flex cable.

Best Regards,
Jeremias

Thank you, it is always the silliest little things. All the other ribbon cable connectors Had the wire side facing the clip, so I assumed. (also tried it both ways, but that was before I understood how to actually calibrate and load the driver in uboot).

hi @LTorg
You are welcome. Thanks for the feedback. Sorry I did not see that the ribbon cable was flipped wrong.