zephyr/drivers/sensor/iis2iclx/Kconfig
Armando Visconti c380142920 drivers/sensor: iis2iclx: add multi-instance
Make this driver multi-instance and use the new API.

Notes for sensorhub mode:
In case of multiples devices it is possible that some of them
has i2c slaves attached to it (sensorhub mode) but not the
others. Since the driver is configured in the same way for
all the instances (CONFIG_SENSORHUB=y), the routine that initialize
the sensorhub part does not fail anymore in case no slaves
are found for a particular instance. Instead, those non-sensorhub
driver instances will set the shub_inited flag to false and
will totally ignore the feature.

Notes for triggers:
In case of multiples devices the device pin the interrupt wire is
attached to can be different (INT1 or INT2 pin). So, this
information has been moved in DTS and then stored in the
specific instance config structure.
Currently the driver is able to handle a sngle interrupt line
at a time attached to either INT1 or INT2.
MOreover, the interrupt initialization for a driver instance proceed
only if the drdy has been configured in its DT, else it returns ok.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2020-11-11 13:17:18 +01:00

124 lines
2.6 KiB
Text

# ST Microelectronics IIS2ICLX 2-axis accelerometer sensor driver
# Copyright (c) 2020 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0
menuconfig IIS2ICLX
bool "IIS2ICLX I2C/SPI accelerometer Chip"
depends on I2C || SPI
select HAS_STMEMSC
select USE_STDC_IIS2ICLX
help
Enable driver for IIS2ICLX accelerometer
sensor.
if IIS2ICLX
choice IIS2ICLX_TRIGGER_MODE
prompt "Trigger mode"
help
Specify the type of triggering to be used by the driver.
config IIS2ICLX_TRIGGER_NONE
bool "No trigger"
config IIS2ICLX_TRIGGER_GLOBAL_THREAD
bool "Use global thread"
depends on GPIO
select IIS2ICLX_TRIGGER
config IIS2ICLX_TRIGGER_OWN_THREAD
bool "Use own thread"
depends on GPIO
select IIS2ICLX_TRIGGER
endchoice
config IIS2ICLX_TRIGGER
bool
if IIS2ICLX_TRIGGER
config IIS2ICLX_THREAD_PRIORITY
int "Thread priority"
depends on IIS2ICLX_TRIGGER_OWN_THREAD
default 10
help
Priority of thread used by the driver to handle interrupts.
config IIS2ICLX_THREAD_STACK_SIZE
int "Thread stack size"
depends on IIS2ICLX_TRIGGER_OWN_THREAD
default 1024
help
Stack size of thread used by the driver to handle interrupts.
endif # IIS2ICLX_TRIGGER
config IIS2ICLX_ENABLE_TEMP
bool "Enable temperature"
help
Enable/disable temperature
config IIS2ICLX_SENSORHUB
bool "Enable I2C sensorhub feature"
help
Enable/disable internal sensorhub. You can enable
a maximum of two external sensors (if more than two are enabled
the system would enumerate only the first two found)
if IIS2ICLX_SENSORHUB
config IIS2ICLX_EXT_LIS2MDL
bool "Enable LIS2MDL as external sensor"
config IIS2ICLX_EXT_IIS2MDC
bool "Enable IIS2MDC as external sensor"
config IIS2ICLX_EXT_LPS22HH
bool "Enable LPS22HH as external sensor"
config IIS2ICLX_EXT_HTS221
bool "Enable HTS221 as external sensor"
config IIS2ICLX_EXT_LPS22HB
bool "Enable LPS22HB as external sensor"
endif # IIS2ICLX_SENSORHUB
menu "Attributes"
config IIS2ICLX_ACCEL_FS
int "Accelerometer full-scale range"
default 0
help
Specify the default accelerometer full-scale range.
An X value for the config represents a range of +/- X G. Valid values
are:
0: Full Scale selected at runtime
500: +/- 500mg
1000: +/- 1g
2000: +/- 2g
3000: +/- 3g
config IIS2ICLX_ACCEL_ODR
int "Accelerometer Output data rate frequency"
range 0 10
default 0
help
Specify the default accelerometer output data rate expressed in
samples per second (Hz).
0: ODR selected at runtime
1: 12.5Hz
2: 26Hz
3: 52Hz
4: 104Hz
5: 208Hz
6: 416Hz
7: 833Hz
8: 1660Hz
9: 3330Hz
10: 6660Hz
endmenu
endif # IIS2ICLX