• Sebastian Reichel's avatar
    Input: atmel_mxt_ts - fix reset-gpio for level based irqs · ca1cd36c
    Sebastian Reichel authored
    The current reset-gpio support triggers an interrupt storm on platforms
    using the maxtouch with level based interrupt. The Motorola Droid 4,
    which I used for some of the tests is not affected, since it uses a edge
    based interrupt.
    
    This change avoids the interrupt storm by enabling the device while its
    interrupt is disabled. Afterwards we wait 100ms. This is important for
    two reasons: The device is unresponsive for some time (~22ms for
    mxt224E) and the CHG (interrupt) line is not working properly for 100ms.
    We don't need to wait for any following interrupts, since the following
    mxt_initialize() checks for bootloader mode anyways.
    
    This fixes a boot issue on GE PPD (watchdog kills device due to
    interrupt storm) and does not cause regression on Motorola Droid 4.
    
    Fixes: f657b00d ("Input: atmel_mxt_ts - add support for reset line")
    Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
    Reviewed-by: default avatarPavel Machek <pavel@ucw.cz>
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    ca1cd36c
atmel_mxt_ts.c 74.8 KB