# ST Microelectronics LSM6DSV16X 6-axis IMU sensor driver # Copyright (c) 2023 STMicroelectronics # SPDX-License-Identifier: Apache-2.0 menuconfig LSM6DSV16X bool "LSM6DSV16X I3C/I2C/SPI accelerometer and gyroscope Chip" default y depends on DT_HAS_ST_LSM6DSV16X_ENABLED depends on ZEPHYR_HAL_ST_MODULE select I2C if $(dt_compat_on_bus,$(DT_COMPAT_ST_LSM6DSV16X),i2c) select I3C if $(dt_compat_on_bus,$(DT_COMPAT_ST_LSM6DSV16X),i3c) select SPI if $(dt_compat_on_bus,$(DT_COMPAT_ST_LSM6DSV16X),spi) select HAS_STMEMSC select USE_STDC_LSM6DSV16X select RTIO_WORKQ if SENSOR_ASYNC_API help Enable driver for LSM6DSV16X accelerometer and gyroscope sensor. if LSM6DSV16X config LSM6DSV16X_STREAM bool "Use hardware FIFO to stream data" select LSM6DSV16X_TRIGGER default y depends on I2C_RTIO || SPI_RTIO || I3C_RTIO depends on SENSOR_ASYNC_API help Use this config option to enable streaming sensor data via RTIO subsystem. choice LSM6DSV16X_TRIGGER_MODE default LSM6DSV16X_TRIGGER_GLOBAL_THREAD if LSM6DSV16X_STREAM default LSM6DSV16X_TRIGGER_NONE prompt "Trigger mode" help Specify the type of triggering to be used by the driver. config LSM6DSV16X_TRIGGER_NONE bool "No trigger" config LSM6DSV16X_TRIGGER_GLOBAL_THREAD bool "Use global thread" depends on GPIO || I3C depends on $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LSM6DSV16X),int1-gpios) ||\ $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LSM6DSV16X),int2-gpios) ||\ $(dt_compat_on_bus,$(DT_COMPAT_ST_LSM6DSV16X),i3c) select LSM6DSV16X_TRIGGER config LSM6DSV16X_TRIGGER_OWN_THREAD bool "Use own thread" depends on GPIO || I3C depends on $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LSM6DSV16X),int1-gpios) ||\ $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LSM6DSV16X),int2-gpios) ||\ $(dt_compat_on_bus,$(DT_COMPAT_ST_LSM6DSV16X),i3c) select LSM6DSV16X_TRIGGER endchoice config LSM6DSV16X_TRIGGER bool if LSM6DSV16X_TRIGGER config LSM6DSV16X_THREAD_PRIORITY int "Thread priority" depends on LSM6DSV16X_TRIGGER_OWN_THREAD default 10 help Priority of thread used by the driver to handle interrupts. config LSM6DSV16X_THREAD_STACK_SIZE int "Thread stack size" depends on LSM6DSV16X_TRIGGER_OWN_THREAD default 1024 help Stack size of thread used by the driver to handle interrupts. endif # LSM6DSV16X_TRIGGER config LSM6DSV16X_ENABLE_TEMP bool "Temperature" help Enable/disable temperature config LSM6DSV16X_SENSORHUB bool "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 LSM6DSV16X_SENSORHUB config LSM6DSV16X_EXT_LIS2MDL bool "LIS2MDL as external sensor" default y config LSM6DSV16X_EXT_LPS22HH bool "LPS22HH as external sensor" config LSM6DSV16X_EXT_HTS221 bool "HTS221 as external sensor" config LSM6DSV16X_EXT_LPS22HB bool "LPS22HB as external sensor" config LSM6DSV16X_EXT_LPS22DF bool "LPS22DF as external sensor" default y endif # LSM6DSV16X_SENSORHUB endif # LSM6DSV16X