• Michael Hennerich's avatar
    Input: ad7879 - prevent invalid finger data reports · b584efc9
    Michael Hennerich authored
    Considering following scenario - the touch is present on the screen
    at the beginning of the last conversion sequence, but by the time
    the last sequence is finished, the finger is lift off. The AD7879 data
    available interrupt signals (DAV) completion, however some X,Y values
    are not valid because the screen inputs were floating during the
    acquisition.
    
    The AD7877 acts differently here, since it only asserts DAV if the
    touch is still present when the conversion sequence finished.
    
    Based on the fact that this can only happen in the last sample of the
    repeated conversion sequence, we simply skip the last (short glitches
    are filtered by the AD7879 internal median and average filters).
    This doesn't cause noticeable side effects, since the minimum conversion
    interval is 9.44ms. We receive ~100 waypoint samples per second, so we
    simply delay the result by 9.44ms.
    
    We also reject samples where pressure is greater than pressure_max.
    Signed-off-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
    b584efc9
ad7879.c 15.1 KB