Questions? Call us: +1 760-918-6722

Linux Touchscreen Driver Options

 

Dear Displaytech,

We have purchased both the DT070BTFT-HB-TS and DT070BTFT-HB-PTS1. We are curious to know which Linux Touchscreen Drivers are supported for those touchscreens. Currently I am calibrating some other touchscreens we have tested with tslib and using the ADS7846 Touchscreen Driver provided by TI. I haven't been able to test this setup on the two touchscreens we have purchased as we are still working on a helper board to properly get all the pin outs matched up. I am just asking to make sure that when we do get it powered on, we'll be able to test it out right away :) 

Thank you for your time!

Joseph Keene

AMET Inc.

Replies

engineering_seacomp's picture
engineering_seacomp
March 4, 2019

Hi Joseph,

Please see this post:

https://www.displaytech-us.com/forum/linux-driver-ft5426

 

Thanks.

jkeene's picture
jkeene
March 7, 2019

Dear Displaytech,

I have enabled and built EDT FocalTech FT5x06 I2C Touchscreen Support using menuconfig for my board. Thank you for pointing me in the right direction! 

We are still working on that break-out board so we can correctly hook up the display to our board. I'll be sure to update you when I'm finally able to test out the touch driver.

Thank you,

Joseph Keene

AMET Inc.

engineering_seacomp's picture
engineering_seacomp
March 7, 2019

Wonderful!  I'm sure you will get it working.

jkeene's picture
jkeene
March 27, 2019

Dear Displaytech,

We finally have our adapter board here and I have successfully been able to turn on the LVDS Display. We are having some sort of pink hue to some of the colors. I have attached a picture. You will be able to notice the pink Hue around the Date at the Top Right, the Terminal at the Top Left, as well as the words "Kinetic" around the Qt Application. I apologize if the photo does not do it justice.

Do you have any suggestions? I didn't work on the Hardware Side, but I did work on the timing parameters. I'm quite new to this stuff, so maybe I made a mistake with them. If the timing parameters appear okay, I'll have the hardware people come and double-check their work.

Here is part of the .dtsi file that contains the timing parameters for the board. 

    lvds0: display@1 {
        compatible = "panel-dpi";
        label = "lvds";

        panel-timing {
            clock-frequency = <51200000>;
            pixelclk-active = <1>;
            hactive = <1024>;
            hfront-porch = <160>;
            hback-porch = <160>;
            hsync-len = <20>;
            hsync-active = <1>;
            vactive = <600>;
            vback-porch = <23>;
            vfront-porch = <12>;
            vsync-len = <3>;
            vsync-active = <0>;
            de-active = <1>;
        };
    };
 

Thank you for your time!

Joseph Keene

AMET Inc.

Attachment: 
jkeene's picture
jkeene
April 18, 2019

Dear Displaytech,

It's been awhile so I figured I'd give you an update. I am happy to report we were able to get the Touchscreen wired up correctly for the CL-SOM-AM57x. The touch interface seems to be working correctly and we are happy with the calibration. In addition to enabling the driver in the kernel to build as a module, we also had to do some edits to our .dtb file.

We are still trying to nail down the correct display timing parameters, I'll be sure to update you once I get it right. If you have any pointers that would be greatly appreciated!

Here is what we had to edit in our .dtb to get the touch to work. I am putting this here to hopefully be of assistance to anyone else using the AM572x Processor who is considering using this touchscreen. 

...

pinctrl_i2c5_ft5x06: pinctrl_i2c5_ft5x06grp {

    pinctrl_single,pins = <

        DRA7XX_CORE_IOPAD(0x3798, PIN_INPUT | MUX_MODE14) /* mmc3_dat5.gpio1_23 GPIO RESET */ 

        DRA7XX_CORE_IOPAD(0x3694, PIN_INPUT | MUX_MODE14) /* xref_clk0.gpio6_17 GPIO INT */

    >;

};

i2c5_pins_default: i2c5_pins_default {

    pinctrl_single,pins = <

        DRA7XX_CORE_IOPAD(0x36b4, PIN_INPUT| MUX_MODE10) /* mcasp1_axr0.i2c5_sda */ 

        DRA7XX_CORE_IOPAD(0x36b8, PIN_INPUT| MUX_MODE10) /* mcasp1_axr1.i2c5_scl */

    >;

};

...

&i2c5 {

    status = "okay";

    pinctrl-names = "default";

    pinctrl-0 = <&i2c5_pins_default>;

    clock-frequency = <400000>;

...

    touch: ft5x06_ts@38 {

        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";

        reg = <0x38>;

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_i2c5_ft5x06>;

        interrupt-parent = <&gpio6>;

        interrupts = <17 0>;

        touchscreen-size-x = <1024>;

        touchscreen-size-y = <600>;

        reset-gpios = <&gpio1 23 0>;

        status = "okay";

    };

};

Thank you for your assistance as always,

Joseph Keene

AMET INC

engineering_seacomp's picture
engineering_seacomp
April 17, 2019

Hi,

That's wonderful.  Thank you for providing the feedback for others.  In terms of the timing parameters for Linux, did you see this post:

 

https://www.displaytech-us.com/forum/noise-display-dt070btft

 

Thanks,

jkeene's picture
jkeene
April 18, 2019

Dear Displaytech,

Thank you for the link. In my particular case, I am not using Yocto to make my linux Kernel, but the parameters defined there are helpful and got me on the right track.  I was able to get the correct display timing parameters and it looks great now! Here is what I ended up with for my .dtb entry

lvds0: display@1 {

    compatible = "panel-dpi";

    lavel = "lvds";

    panel-timing {

        clock-frequency = <51200000>;

        pixelclk-active = <0>;

        hactive = <1024>;

        hfront-porch = <160>;

        hback-porch = <160>;

        hsync-len = <20>;

        hsync-active = <1>;

        vactive = <600>;

        vback-porch = <23>;

        vfront-porch = <12>;

        vsync-len = <3>;

        vsync-active = <0>;

        de-active = <1>;

    };

};

Thanks for your support! I believed we got it all set up correctly now with the fixed display and touch working!

Joseph Keene

AMET INC

engineering_seacomp's picture
engineering_seacomp
April 18, 2019

Hi Joseph,

Again, we appreciate the feedback for the community.

Can you share which version/distro of Linux you used, for the next person?

Thanks

jkeene's picture
jkeene
April 18, 2019

Dear Displaytech,

We are using a Debian Linux Kernel that is based on TI's Kernel for Linux 4.4.32 for ARM Processors. Anyone using a TI Product/Processor can obtain a Linux Kernel from one of their SDKs and make the changes in the device tree entries and kernel via menuconfig for their approrpiate device and should be able to connect to this touchscreen once they have correctly wired up all the signals. 

Joseph Keene

AMET INC

engineering_seacomp's picture
engineering_seacomp
April 18, 2019

Thank you Joseph!!!!

Naveen's picture
Naveen
June 2, 2019

Hi Joseph,

I configured my device tree as per your configuration but touch is not responding,  We are using imx6ul board interfacing to lcd (1200 x 600) module.

ft5x06_ts@38 {
                compatible = "edt,edt-ft5x06";
                reg = <0x38>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ft5x06>;
                interrupt-parent = <&gpio5>;
                interrupts = <17 0>;
                reset-gpios = <&gpio2 14 0>;
                touchscreen-size-x = <1024>;
                touchscreen-size-y = <600>;
                status = "okay";
        };

1. Driver loaded and created interrupt.

root@imx6ul-var-dart:~# cat /proc/interrupts

220:          0  gpio-mxc  17 Edge      edt-ft5x06

2. GPIO pin configred in device tree same gpio pin just confifred input and tested gpio stats, when user touch screen status changing to 0 and if not touch showing as 1.

echo 129 > /sys/class/gpio/export

echo in > /sys/class/gpio/gpio129/direction

root@imx6ul-var-dart:~# cat /sys/class/gpio/gpio129/value (without  press touch screen)
1
root@imx6ul-var-dart:~#
root@imx6ul-var-dart:~# cat /sys/class/gpio/gpio129/value (with  press touch screen)
0
root@imx6ul-var-dart:~# cat /sys/class/gpio/gpio129/value (with  press touch screen)
0

Please any one help on this issue.

 

Regards,

Naveen.

 

 

jkeene's picture
jkeene
June 3, 2019

Hi Naveen,

I'm glad to offer any assistance, but I'm not an employee for Displaytech, so I think you would be better helped by them. 

Joseph Keene

AMET INC.

jkeene's picture
jkeene
June 3, 2019

Hi Naveen,

Just some thoughts,

You define your Reset Pin as GPIO 2_14 and your interrupt as GPIO 5_17. Where is the .dtb entry for your entry pinctrl_ft5x06? I would doublecheck that and make sure you are setting both of those pins to GPIO Inputs and they are properly connected, with your SDA and SCL to the 6 pin connection. 

Other than that, I would recommend seeking assistance from an actualy employee from Displaytech. 

Best of luck!

Joseph Keene

AMET INC

Naveen's picture
Naveen
June 3, 2019

Dear Joseph,

Thanks for reply.

My configration:

 pinctrl_ft5x06: ft5x06grp {
                        fsl,pins = <
                               MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01        0x10a0
                               MX6UL_PAD_LCD_RESET__ECSPI2_SS3           0x10b0

                        >;
                };

Sure i will take help from displytech team.

Regards,

Naveen.

engineering_seacomp's picture
engineering_seacomp
June 4, 2019

Hi All,

The forum is meant to be open, so that customers can interract with the community (each other).  Not necessarly to ask Displaytech questions directly.

We can only advise on the capacitive touch hardware and provide direction to Linux open source drivers.  You have exhaused our knowledge of software for specific linux device.  Other customers may have faced the same Linux challanges for board bring-up and Linux drivers.

 

 

Thanks,

jkeene's picture
jkeene
June 5, 2019

My apologies, I just didn't want to step on anybodies toes. Thank you for the clarification!

Naveen, 

Just some things to double-check:

How are you building the FocalTech Driver? Do you use Yocto or Menuconfig? I'd double-check to make sure that the driver is actually being built.

Once you have confirmed that, maybe try a different touchscreen library other than evdev, such as tslib. I recall having issues related to evdev when trying to get touch working with my Qt Wayland Compositor, but it worked fine under the default Wayland Compositor that shipped from TI. By switching to tslib, both my QT Compositor and Wayland Compositor from TI touch was calibrated correctly and responded nicely.

engineering_seacomp's picture
engineering_seacomp
June 5, 2019

Hi Jkeene,

Thanks for the response.  We appreicate it.

Also, we know Naveen is getting interrupts from the PCAP hardware when pressed, from a different forum thread.  Trying a different library sounds like a great suggestion.