• Franklin S Cooper Jr's avatar
    Input: edt-ft5x06 - work around FT5506 firmware bug · 9378c025
    Franklin S Cooper Jr authored
    In the touchscreen controller ISR, reading the tsc starting from
    register 0x2 causes the tsc to infrequently update the detected
    finger's x and y coordinate. The irq pin toggles at a fast rate to
    indicate touch events are happening. However, the tsc on average
    updates the touch point's x and y value every ~100 ms which is much
    slower than the advertised rate of 100+ Hz. This leads to multiple reads
    within this ~100 ms time window returning the same value.
    
    Example:
    X: 10 , Y: 30
    X: 10 , Y: 30
    X: 10,  Y: 30
    ..
    // After 100 ms
    X: 300, Y: 300
    X: 300, y: 300
    ..
    // After 100 ms
    X: 1743, Y: 621
    X: 1743, Y: 621
    
    For some reason if instead of starting to read at register 0x2 you
    start reading at register 0x0 this issue isn't seen. This seems like
    a quirk only seen in the EDT FT5506 so to fix this issue simply
    adjust the code to start reading from 0x0. Technically this isn't wrong
    so no regressions should be seen with other touchscreen controllers
    supported by this driver.
    Signed-off-by: default avatarFranklin S Cooper Jr <fcooper@ti.com>
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    9378c025
edt-ft5x06.c 25.9 KB