Embedded Linux Multi-touch driver with QT, TSLIB

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Embedded Linux Multi-touch driver with QT, TSLIB

Jump to solution
5,248 Views
Ramtry
Contributor III

Hi,

I am trying to interface capacitive touch screen to our product.The driver for the capacitive touch screen controller (GT927) attached for your reference. Cross compiled the driver and insmod in to the kernel successfully. Getting the corresponding co-ordinate in debug terminal window whenever touched the capacitive screen as follows


root@Toucan /$ insmod gt9xx.ko

[   53.530000] <<-GTP-INFO->> GTP driver install.

[   53.540000] <<-GTP-INFO->> GTP Driver Version:V1.4<2012/12/12>

[   53.540000] <<-GTP-INFO->> GTP Driver build@14:12:47,Jun 10 2013

[   53.550000] <<-GTP-INFO->> GTP I2C Address:0x5d

[   53.680000] <<-GTP-DEBUG->> [664]len1=228,len2=0,len3=0,send_len:228

[   53.680000] <<-GTP-DEBUG->> [681]SENSOR ID:0

[   53.710000] <<-GTP-DEBUG->> [743]X_MAX = 480,Y_MAX = 800,TRIGGER = 0x00

[   53.740000] input: Goodix Capacitive TouchScreen as /devices/virtual/input/in

put1

[   53.760000] <<-GTP-DEBUG->> [886]INT trigger type:0

[   53.760000] <<-GTP-INFO->> GTP works in interrupt mode.

[   53.770000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:80.

[   53.780000] <<-GTP-INFO->> IC VERSION:9270_1030

[   53.800000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:80.

root@Toucan /$ [   53.820000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:80.

[   56.930000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:81.

[   56.940000] <<-GTP-DEBUG->> [273]ID:0, X:514, Y:423, W:22

[   56.960000] <<-GTP-DEBUG->> [377]pre_touch:01, finger:81.

[   56.960000] <<-GTP-DEBUG->> [273]ID:0, X:514, Y:423, W:22

[   56.980000] <<-GTP-DEBUG->> [377]pre_touch:01, finger:81.

[   56.990000] <<-GTP-DEBUG->> [273]ID:0, X:514, Y:423, W:22

[   57.010000] <<-GTP-DEBUG->> [377]pre_touch:01, finger:81.

[   57.010000] <<-GTP-DEBUG->> [273]ID:0, X:514, Y:423, W:22

[   57.030000] <<-GTP-DEBUG->> [377]pre_touch:01, finger:81.

[   57.040000] <<-GTP-DEBUG->> [273]ID:0, X:514, Y:423, W:22

[   57.060000] <<-GTP-DEBUG->> [377]pre_touch:01, finger:81.

[   57.060000] <<-GTP-DEBUG->> [273]ID:0, X:514, Y:423, W:22

[   57.080000] <<-GTP-DEBUG->> [377]pre_touch:01, finger:80.

[   57.090000] <<-GTP-DEBUG->> [433]Touch Release!

[   57.090000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:80.

[   57.110000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:80.

[   90.480000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:83.

[   90.490000] <<-GTP-DEBUG->> [273]ID:0, X:399, Y:144, W:29

[   90.490000] <<-GTP-DEBUG->> [273]ID:1, X:455, Y:274, W:41

[   90.500000] <<-GTP-DEBUG->> [273]ID:2, X:405, Y:313, W:38

[   90.520000] <<-GTP-DEBUG->> [377]pre_touch:03, finger:84.

[   90.530000] <<-GTP-DEBUG->> [273]ID:0, X:399, Y:144, W:29

[   90.530000] <<-GTP-DEBUG->> [273]ID:1, X:455, Y:274, W:41

[   90.540000] <<-GTP-DEBUG->> [273]ID:2, X:405, Y:313, W:38

[   90.540000] <<-GTP-DEBUG->> [273]ID:3, X:334, Y:447, W:19

[   90.560000] <<-GTP-DEBUG->> [377]pre_touch:04, finger:85.

[   90.570000] <<-GTP-DEBUG->> [273]ID:0, X:399, Y:144, W:29

[   90.570000] <<-GTP-DEBUG->> [273]ID:1, X:455, Y:274, W:41

[   90.580000] <<-GTP-DEBUG->> [273]ID:2, X:405, Y:313, W:38

[   90.580000] <<-GTP-DEBUG->> [273]ID:3, X:334, Y:447, W:19

[   90.590000] <<-GTP-DEBUG->> [273]ID:4, X:168, Y:142, W:21

[   90.610000] <<-GTP-DEBUG->> [377]pre_touch:05, finger:85.

[   90.620000] <<-GTP-DEBUG->> [273]ID:0, X:399, Y:144, W:29

[   90.620000] <<-GTP-DEBUG->> [273]ID:1, X:455, Y:274, W:41

[   90.630000] <<-GTP-DEBUG->> [273]ID:2, X:405, Y:313, W:38

[   90.630000] <<-GTP-DEBUG->> [273]ID:3, X:334, Y:447, W:19

[   90.640000] <<-GTP-DEBUG->> [273]ID:4, X:168, Y:142, W:21

[   90.660000] <<-GTP-DEBUG->> [377]pre_touch:05, finger:85.

[   90.660000] <<-GTP-DEBUG->> [273]ID:0, X:399, Y:144, W:29

[   90.670000] <<-GTP-DEBUG->> [273]ID:1, X:455, Y:274, W:41

[   90.680000] <<-GTP-DEBUG->> [273]ID:2, X:409, Y:320, W:38

[   90.680000] <<-GTP-DEBUG->> [273]ID:3, X:334, Y:447, W:19

[   90.690000] <<-GTP-DEBUG->> [273]ID:4, X:173, Y:152, W:21

[   90.700000] <<-GTP-DEBUG->> [377]pre_touch:05, finger:81.

[   90.710000] <<-GTP-DEBUG->> [273]ID:4, X:166, Y:145, W:21

[   90.730000] <<-GTP-DEBUG->> [377]pre_touch:01, finger:80.

[   90.730000] <<-GTP-DEBUG->> [433]Touch Release!

[   90.740000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:80.

[   90.750000] <<-GTP-DEBUG->> [377]pre_touch:00, finger:80.


Now i am facing problem of interfacing the driver in to multitouch protocol of the kernel. I cannot calibrate the touch screen using ts_calibrate. I tried by replacing all the occurrences of ABS_X / Y with ABS_MT_POSITION_X / Y in tslib (plugin/input-raw.c) but it's showing segment fault. How can i implement multi touch protocol for touch screen driver? I followed this link to interface multitouch with QT

http://www.ptrackapp.com/apclassys-notes/embedded-linux-multitouch/

But i can't able to calibrate (ts_calibrate) the touch screen, it gives the "Segment fault"

Please kindly give some suggestion to solve this problem.


Thanks,

Harish Ramasamy

Labels (1)
0 Kudos
Reply
1 Solution
1,904 Views
Ramtry
Contributor III

I Solved the problem by disabling the tslib in ltib package.

thanks.

RAM

View solution in original post

0 Kudos
Reply
3 Replies
1,904 Views
ieio
Contributor IV

Hi Ram,

I should use a goodix gt9xx chip, but I haven't found any drivers yet. You said you attached it for reference, but I cannot find it.

Where did you find yours?

Thanks in advance.

0 Kudos
Reply
1,904 Views
Ramtry
Contributor III

Hi Ieio,

Are you using gt9xx chip ?? Have you found drivers ?

0 Kudos
Reply
1,905 Views
Ramtry
Contributor III

I Solved the problem by disabling the tslib in ltib package.

thanks.

RAM

0 Kudos
Reply