mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 00:51:44 +00:00
38416c28e1
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: Matti Vaittinen <mazziesaccount@gmail.com> Link: https://lore.kernel.org/r/268d418e7cffcdaa2ece6738478bbc57692c213e.1680263956.git.mazziesaccount@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
107 lines
3.0 KiB
Plaintext
107 lines
3.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Industrial I/O subsystem configuration
|
|
#
|
|
|
|
menuconfig IIO
|
|
tristate "Industrial I/O support"
|
|
help
|
|
The industrial I/O subsystem provides a unified framework for
|
|
drivers for many different types of embedded sensors using a
|
|
number of different physical interfaces (i2c, spi, etc).
|
|
|
|
if IIO
|
|
|
|
config IIO_BUFFER
|
|
bool "Enable buffer support within IIO"
|
|
help
|
|
Provide core support for various buffer based data
|
|
acquisition methods.
|
|
|
|
if IIO_BUFFER
|
|
source "drivers/iio/buffer/Kconfig"
|
|
endif # IIO_BUFFER
|
|
|
|
config IIO_CONFIGFS
|
|
tristate "Enable IIO configuration via configfs"
|
|
select CONFIGFS_FS
|
|
help
|
|
This allows configuring various IIO bits through configfs
|
|
(e.g. software triggers). For more info see
|
|
Documentation/iio/iio_configfs.rst.
|
|
|
|
config IIO_GTS_HELPER
|
|
tristate
|
|
|
|
config IIO_TRIGGER
|
|
bool "Enable triggered sampling support"
|
|
help
|
|
Provides IIO core support for triggers. Currently these
|
|
are used to initialize capture of samples to push into
|
|
buffers. The triggers are effectively a 'capture
|
|
data now' interrupt.
|
|
|
|
config IIO_CONSUMERS_PER_TRIGGER
|
|
int "Maximum number of consumers per trigger"
|
|
depends on IIO_TRIGGER
|
|
default "2"
|
|
help
|
|
This value controls the maximum number of consumers that a
|
|
given trigger may handle. Default is 2.
|
|
|
|
config IIO_SW_DEVICE
|
|
tristate "Enable software IIO device support"
|
|
select IIO_CONFIGFS
|
|
help
|
|
Provides IIO core support for software devices. A software
|
|
device can be created via configfs or directly by a driver
|
|
using the API provided.
|
|
|
|
config IIO_SW_TRIGGER
|
|
tristate "Enable software triggers support"
|
|
select IIO_CONFIGFS
|
|
help
|
|
Provides IIO core support for software triggers. A software
|
|
trigger can be created via configfs or directly by a driver
|
|
using the API provided.
|
|
|
|
config IIO_TRIGGERED_EVENT
|
|
tristate "Enable triggered events support"
|
|
select IIO_TRIGGER
|
|
help
|
|
Provides helper functions for setting up triggered events.
|
|
|
|
source "drivers/iio/accel/Kconfig"
|
|
source "drivers/iio/adc/Kconfig"
|
|
source "drivers/iio/addac/Kconfig"
|
|
source "drivers/iio/afe/Kconfig"
|
|
source "drivers/iio/amplifiers/Kconfig"
|
|
source "drivers/iio/cdc/Kconfig"
|
|
source "drivers/iio/chemical/Kconfig"
|
|
source "drivers/iio/common/Kconfig"
|
|
source "drivers/iio/dac/Kconfig"
|
|
source "drivers/iio/dummy/Kconfig"
|
|
source "drivers/iio/filter/Kconfig"
|
|
source "drivers/iio/frequency/Kconfig"
|
|
source "drivers/iio/gyro/Kconfig"
|
|
source "drivers/iio/health/Kconfig"
|
|
source "drivers/iio/humidity/Kconfig"
|
|
source "drivers/iio/imu/Kconfig"
|
|
source "drivers/iio/light/Kconfig"
|
|
source "drivers/iio/magnetometer/Kconfig"
|
|
source "drivers/iio/multiplexer/Kconfig"
|
|
source "drivers/iio/orientation/Kconfig"
|
|
source "drivers/iio/test/Kconfig"
|
|
if IIO_TRIGGER
|
|
source "drivers/iio/trigger/Kconfig"
|
|
endif #IIO_TRIGGER
|
|
source "drivers/iio/position/Kconfig"
|
|
source "drivers/iio/potentiometer/Kconfig"
|
|
source "drivers/iio/potentiostat/Kconfig"
|
|
source "drivers/iio/pressure/Kconfig"
|
|
source "drivers/iio/proximity/Kconfig"
|
|
source "drivers/iio/resolver/Kconfig"
|
|
source "drivers/iio/temperature/Kconfig"
|
|
|
|
endif # IIO
|