Why does the Touchscreen Driver work as a Touchpad?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Why does the Touchscreen Driver work as a Touchpad?

2,834 次查看
atakan
Contributor II

Hello,

 

I have a Sabre SD board and a FT5X06 based touchscreen. The driver that comes with Freescale's Lollipop 5.0.0 release did not worked due to its uncompatibility to device tree. Finally I found another driver that worked fine after some modifications.

 

Somehow, the driver shows a circular cursor on the screen and takes the finger movements as relative coordinates and moves the cursor. It acts as a laptop touchpad. The driver can read the coordinates of multi touches properly. But there is a problem with input reporting. I've compared it to the default eGalax touchscreen driver that works good. But could not find the problem.

 

The driver is attached.

Please help me with this issue.

 

Thank you.

!

Original Attachment has been moved to: edt-ft5x06_relative.c.zip

0 项奖励
回复
4 回复数

1,582 次查看
BiyongSUN
NXP Employee
NXP Employee

first of all, the touch pad driver problem is not i.MX problem.

The second, the protocol you have modified is changing the problem.

To debug the protocol evtest /dev/input/event0 to see what's wrong.

The protocol could be single touch, multi-touch A , multi-touch B.

Different application OS accept different protocol.

You can find the protocol in the Linux source tree.

Documentation\input\multi-touch-protocol.txt

Addition to that, you need to modify the device tree according to the hardware, especially the interrupt gpio from touch to the i.MX

0 项奖励
回复

1,582 次查看
andrzejdziedzic
Contributor IV

Hi

It may happen if you don't have the "idc" file or it is not correct (it should contain an entry "touch.deviceType = touchScreen").

Please check this: https://source.android.com/devices/input/input-device-configuration-files.html

0 项奖励
回复

1,582 次查看
borisgorshkov
Contributor I

In function
static int edt_ft5x06_ts_probe(struct i2c_client *client,
                     const struct i2c_device_id *id)
you should uncomment line

 error = input_mt_init_slots(input, MAX_SUPPORT_POINTS,  INPUT_MT_DIRECT );

0 项奖励
回复

1,582 次查看
zhanghuan
Contributor I

HI, I met the same problem. And I have no idea about it. Have you known the reason? Please help me. Thank you!

0 项奖励
回复