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
已解决! 转到解答。