Why does the Touchscreen Driver work as a Touchpad?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Why does the Touchscreen Driver work as a Touchpad?

2,828件の閲覧回数
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

ラベル(6)
0 件の賞賛
返信
4 返答(返信)

1,576件の閲覧回数
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,576件の閲覧回数
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,576件の閲覧回数
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,576件の閲覧回数
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 件の賞賛
返信