• Oleksandr Kozaruk's avatar
    iio: twl6030-gpadc: TWL6030, TWL6032 GPADC driver · 1696f364
    Oleksandr Kozaruk authored
    The GPADC is general purpose ADC found on TWL6030, and TWL6032 PMIC,
    known also as Phoenix and PhoenixLite.
    
    The TWL6030 and TWL6032 have GPADC with 17 and 19 channels
    respectively. Some channels have current source and are used for
    measuring voltage drop on resistive load for detecting battery ID
    resistance, or measuring voltage drop on NTC resistors for external
    temperature measurements. Some channels measure voltage, (i.e. battery
    voltage), and have voltage dividers, thus, capable to scale voltage.
    Some channels are dedicated for measuring die temperature.
    
    Some channels are calibrated in 2 points, having offsets from ideal
    values kept in trim registers. This is used to correct measurements.
    
    The differences between GPADC in TWL6030 and TWL6032:
    - 10 bit vs 12 bit ADC;
    - 17 vs 19 channels;
    - channels have different purpose(i.e. battery voltage
      channel 8 vs channel 18);
    - trim values are interpreted differently.
    
    Based on the driver patched from Balaji TK, Graeme Gregory, Ambresh K,
    Girish S Ghongdemath.
    Signed-off-by: default avatarBalaji T K <balajitk@ti.com>
    Signed-off-by: default avatarGraeme Gregory <gg@slimlogic.co.uk>
    Signed-off-by: default avatarOleksandr Kozaruk <oleksandr.kozaruk@ti.com>
    Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
    1696f364
twl6030-gpadc.c 25.4 KB