# ST Microelectronics LIS2DW12 3-axis accelerometer driver

# Copyright (c) 2019 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0

menuconfig LIS2DW12
	bool "LIS2DW12 I2C/SPI accelerometer sensor driver"
	default y
	depends on DT_HAS_ST_LIS2DW12_ENABLED
	depends on ZEPHYR_HAL_ST_MODULE
	select I2C if $(dt_compat_on_bus,$(DT_COMPAT_ST_LIS2DW12),i2c)
	select SPI if $(dt_compat_on_bus,$(DT_COMPAT_ST_LIS2DW12),spi)
	select HAS_STMEMSC
	select USE_STDC_LIS2DW12
	help
	  Enable driver for LIS2DW12 accelerometer sensor driver

if LIS2DW12

choice LIS2DW12_TRIGGER_MODE
	prompt "Trigger mode"
	help
	  Specify the type of triggering to be used by the driver.

config LIS2DW12_TRIGGER_NONE
	bool "No trigger"

config LIS2DW12_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LIS2DW12),irq-gpios)
	select LIS2DW12_TRIGGER

config LIS2DW12_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_ST_LIS2DW12),irq-gpios)
	select LIS2DW12_TRIGGER

endchoice

config LIS2DW12_TRIGGER
	bool

if LIS2DW12_TRIGGER

config LIS2DW12_THREAD_PRIORITY
	int "Thread priority"
	depends on LIS2DW12_TRIGGER_OWN_THREAD
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config LIS2DW12_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on LIS2DW12_TRIGGER_OWN_THREAD
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

config LIS2DW12_TAP
	bool "Tap and Tap-Tap detection"
	help
	  Enable tap (single/double) detection

endif # LIS2DW12_TRIGGER

config LIS2DW12_SLEEP
	bool "Sleep mode"
	help
	  Enable sleep (inactivity) mode with ODR change when detected

config LIS2DW12_WAKEUP
	bool "Wakeup detection (via interrupt)"
	help
	  Enable the wakeup detection feature.
	  The wake-up interrupt signal is generated if a certain number of
	  consecutive data exceed the configured threshold (config in DT).
	  The threshold is applied to both positive and negative data: for
	  a wake-up interrupt generation at least one of the three axes must
	  be bigger than the threshold. See ST AN5038 for more details about
	  the feature.

config LIS2DW12_FREEFALL
	bool "Free Fall detection (via interrupt)"
	help
	  Enable freefall detection via interrupt.
endif # LIS2DW12
