• Artur Rojek's avatar
    IIO: Ingenic JZ47xx: Add touchscreen mode. · b96952f4
    Artur Rojek authored
    The SADC component in JZ47xx SoCs provides support for touchscreen
    operations (pen position and pen down pressure) in single-ended and
    differential modes.
    
    The touchscreen component of SADC takes a significant time to stabilize
    after first receiving the clock and a delay of 50ms has been empirically
    proven to be a safe value before data sampling can begin.
    
    Of the known hardware to use this controller, GCW Zero and Anbernic RG-350
    utilize the touchscreen mode by having their joystick(s) attached to the
    X/Y positive/negative input pins.
    
    JZ4770 and later SoCs introduce a low-level command feature. With it, up
    to 32 commands can be programmed, each one corresponding to a sampling
    job. It allows to change the low-voltage reference, the high-voltage
    reference, have them connected to VCC, GND, or one of the X-/X+ or Y-/Y+
    pins.
    
    This patch introduces support for 6 stream-capable channels:
    - channel #0 samples X+/GND
    - channel #1 samples Y+/GND
    - channel #2 samples X-/GND
    - channel #3 samples Y-/GND
    - channel #4 samples X+/X-
    - channel #5 samples Y+/Y-
    
    Being able to sample X-/GND and Y-/GND is useful on some devices, where
    one joystick is connected to the X+/Y+ pins, and a second joystick is
    connected to the X-/Y- pins.
    
    All the boards which probe this driver have the interrupt provided from
    Device Tree, with no need to handle a case where the IRQ was not provided.
    Co-developed-by: default avatarPaul Cercueil <paul@crapouillou.net>
    Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
    Signed-off-by: default avatarArtur Rojek <contact@artur-rojek.eu>
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    b96952f4
Kconfig 34.8 KB