# 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"
	depends on I2C || 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
	select LIS2DW12_TRIGGER

config LIS2DW12_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	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

endif # LIS2DW12
