• Quentin Schulz's avatar
    iio: adc: add support for Allwinner SoCs ADC · d1caa990
    Quentin Schulz authored
    The Allwinner SoCs all have an ADC that can also act as a touchscreen
    controller and a thermal sensor. This patch adds the ADC driver which is
    based on the MFD for the same SoCs ADC.
    
    This also registers the thermal adc channel in the iio map array so
    iio_hwmon could use it without modifying the Device Tree. This registers
    the driver in the thermal framework.
    
    The thermal sensor requires the IP to be in touchscreen mode to return
    correct values. Therefore, if the user is continuously reading the ADC
    channel(s), the thermal framework in which the thermal sensor is
    registered will switch the IP in touchscreen mode to get a temperature
    value and requires a delay of 100ms (because of the mode switching),
    then the ADC will switch back to ADC mode and requires also a delay of
    100ms. If the ADC readings are critical to user and the SoC temperature
    is not, this driver is capable of not registering the thermal sensor in
    the thermal framework and thus, "quicken" the ADC readings.
    
    This driver probes on three different platform_device_id to take into
    account slight differences (registers bit and temperature computation)
    between Allwinner SoCs ADCs.
    Signed-off-by: default avatarQuentin Schulz <quentin.schulz@free-electrons.com>
    Acked-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
    Acked-by: default avatarJonathan Cameron <jic23@kernel.org>
    Acked-for-MFD-by: default avatarLee Jones <lee.jones@linaro.org>
    Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
    d1caa990
Kconfig 22.6 KB