Ft5426 Driver

0 views
Skip to first unread message

Janise Knollman

unread,
Aug 5, 2024, 5:53:04 AM8/5/24
to ellispoten
Justcircled back on this and figured it out. The Rocktech on NXP kits uses the FT5336GQQ (oddly with a NXP FT5406 driver) and the NewHaven the FT5426. So you would think the FT5426 display would work better with the FT5406 driver than the bloody FT5336. But nope. X and Y are backwards. Which doesnt seem to be the case, as left touch does move you left sometimes.

Now I'm working with a compatible module which uses the same touch controller FT5426 from FocalTech. This module comes with a 3mm cover glass and the sensitivity is programmed by the manufacturer. Normally the usability is good without changge of any parameters by the driver. But with the Eval board the usability is not acceptable. I suppose that the Linux driver writes some for the module MI0700AJT-54CP optimized parameters to the touch controller.


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, Beitrge mglichst in Englisch zu verfassen.


I'm required for a project to have a 2mm glass shield over the official 7" touchscreen. With it in place, I obviously can't detect touch any longer (except when using 2 fingers at the same time but it is inconvenient)


EDIT: After some investigations, it seems that the display version i'm using is 1.1. It uses a FT5426 touch driver chip which explain why I was unable to mess with the I2C register (The register datasheet for the FT5426 isn't available and it looks like it works differently from FT5406).


Changing the sensibility on the official 7" display turned out to be (as far as I know) impossible. So I tried an other scren from waveshare (7" HDMI LCD Rev 2.1).

Turns out you can't change the sensibility on this one either BUT I found this tutorial from psyco68 on how to install his open source firmware for the touchscreen. Be warned, it requires a bit of hacking and soldering.

I followed his tutorial, only changing these two values in gt811.c :


It looks like the sensitivity of the touchscreen is not able to be changed as it is controlled by the hardware. To fix it you could change the 2mm of glass to 1mm or 1.5mm or you could buy a more sensitive screen. Hope this will help and good luck.


As per the elinux under the RZG1M support page -FT5x06-support.patch it was having the patch for FT5x06, However we are using FT5x26, can you please provide RZG1M supported patch for FT5426 or FT5x26 or FT5xxx. I tried to apply the patch available in the above(FT5x06) link but i didn't get the driver up and running(Touch is not working).


Focal Tech Git hub repository also doesn't have the driver/patch for FT5x26. The display vendors like Displaytech, Newhaven display has the touch driver FT5x26 in their Git Repository can you please provide us procedure to take drivers from Displaytech/Newhaven and implement it in RZG1M.


we are using the yocto provided driver for focal tech IC, which can be selected using menu config. we enabled that driver and we edited the dts as mentioned in the attached images, but we are unable to make the touch working.


This 4.3 inch TFT LCD also features a 24-bit RGB interface and compatibility with various Arduino models. The LCD and touchscreen feature a FFC (Flexible Flat Cable) connection style, ensuring a hassle-free electrical connection. Powered by a built-in EK9716B driver IC, this TFT display delivers exceptional performance and reliability. The driver optimizes the display's functionality, ensuring smooth operation and accurate rendering of images and graphics. Our displays are all RoHS compliant and adhere to strict environmental and safety standards.


Choose from a wide selection of interface options or talk to our experts to select the best one for your project. We can incorporate HDMI, USB, SPI, VGA and more into your display to achieve your design goals.


This add-on service includes a Molex 52271-2079 connector soldered onto the display. Our US-based engineering staff works together to help you prototype, design, test, build, and manufacture your custom display solution to perfectly fit your application and make your product a success.


I am trying to bring up the touch for New haven display which is using FT5406 touch controller . For that purpose I used the drivers given in the Boundary device kernel f5x06_ts.c.Please see the attached driver file.The slave address given for this controller is 0x70.My device tree Node is as follow:


hey please find

link..download the all zip file..don't forget to add header file(.h) in that to your kernal files...it is working fine but i2c read error i'm getting bec i'm not find i2c address in the log(i2cdetct) command


The suggestions I made were based on the pin muxing you copied in your first post. Since it is not working, I suspect the wrong GPIOs are being used. Please make sure that you use the proper one by checking the schematics.


In our schematics the RESET GPIO is not there so I tried gving the wakeup GPIO as reset and commented the driver code related to wakeup GPIO .After that when I inserted the module ft5x06_ts.ko I am getting below logs:


I'm using the 5" LCD of LeMaker designed for Banana Pi. For some reason I changed from legacy Kernel to vanilla kernel. But now in the vanilla kernel touch screen driver isn't available anymore. In legacy kernel it the ft5x_ts module.


After the configuration is complete, recompile the Linux kernel to generate zimage mirror.

2, modify the equipment tree file

We want to modify the compatible property of the FT5426 device node under the EDT-ft5x06.c file, the compatible property list supported by the FT5426 device node, the list of compatible attributes supported by EDT-ft5x06.c as follows:


Add the "EDT, EDT-FT5406" compatible value in the Compatible property.

After the equipment tree is completed, recompile it. Then use the new Zimage and DTB device tree file to start the development board. The case where the driver is normal, there is the following start information:




I am trying to connect touch interface from display to our board. Touch is FT5426 and should be compatible with driver edt-ft5406. This driver requires interrupt option in device-tree (touch panel has interrupt pin connected to processor gpio). The SoC supports some pin interrupts managed by several PINTs blocks. However I guess I can not use these PINTs directly - they are used by adi,pint driver anyway, as I can see from sc57x.dtsi:


From the same device-tree I see that the adi,adi2-pinctrl is used as another interrupt-controller (next to arm,cortex-a5-gic). How can I set touch driver to use interrupts from pinctrl? I tried something like this, but it is not working:


Can I use pinctrl as interrupt-parent? All examples I have found uses only gic. Also the driver adi,adi2-pinctrl is marked as interrupt-controller in device-tree, but the other driver - adi,pint - is the one responsible for interrupt handling - is it right?


Honestly I do not have much experience with GPIO interrupts in kernel space, therefore I ask here. I see gpio2 as a parent in your example, but I think this is not for sc5xx, right? Which node should I use in device tree as an interrupt parent, just gpio or something like gpa, gpb etc? I have not found any Linux example for sc5xx using GPIO as interrupt in device-tree, only GIC.


Ok, lets say it is connected to GPD 12 (there is nothing special about the schematics, its just i2c and this gpio) or something like that, what would be the interrupt parent? Probably not pint nor pinctrl, I see no gpio node in there, so should I use

interrupt-parent = ;

then? Usually soc has some gpio as an interrupt-parent, but I could not find anything with this name for sc5xx.


The edt_ft5x06 is defined as i2c_driver and after some debugging I noticed that client->irq from code above is always zero, which is wrong. So the i2c layer failed to parse interrupt data from device-tree.


The scb/gport@0x31004180 is the gpd, which, as I said above, does not have interrupt-controller property set in the sc57x.dtsi (that is why I wanted to use pinctrl instead, which has this property). Should not have also gpd set property interrupt-controller to be able to use it as interrupt-parent?

3a8082e126
Reply all
Reply to author
Forward
0 new messages