• Matti Vaittinen's avatar
    iio: light: Add gain-time-scale helpers · 38416c28
    Matti Vaittinen authored
    Some light sensors can adjust both the HW-gain and integration time.
    There are cases where adjusting the integration time has similar impact
    to the scale of the reported values as gain setting has.
    
    IIO users do typically expect to handle scale by a single writable 'scale'
    entry. Driver should then adjust the gain/time accordingly.
    
    It however is difficult for a driver to know whether it should change
    gain or integration time to meet the requested scale. Usually it is
    preferred to have longer integration time which usually improves
    accuracy, but there may be use-cases where long measurement times can be
    an issue. Thus it can be preferable to allow also changing the
    integration time - but mitigate the scale impact by also changing the gain
    underneath. Eg, if integration time change doubles the measured values,
    the driver can reduce the HW-gain to half.
    
    The theory of the computations of gain-time-scale is simple. However,
    some people (undersigned) got that implemented wrong for more than once.
    
    Add some gain-time-scale helpers in order to not dublicate errors in all
    drivers needing these computations.
    Signed-off-by: default avatarMatti Vaittinen <mazziesaccount@gmail.com>
    Link: https://lore.kernel.org/r/268d418e7cffcdaa2ece6738478bbc57692c213e.1680263956.git.mazziesaccount@gmail.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    38416c28
industrialio-gts-helper.c 29.2 KB