# ST Microelectronics LIS2DS12 3-axis accelerometer driver

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

menuconfig LIS2DS12
	bool "LIS2DS12 I2C/SPI accelerometer sensor driver"
	depends on I2C || SPI
	select HAS_STMEMSC
	select USE_STDC_LIS2DS12
	help
	  Enable driver for LIS2DS12 accelerometer sensor driver

if LIS2DS12

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

config LIS2DS12_TRIGGER_NONE
	bool "No trigger"

config LIS2DS12_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select LIS2DS12_TRIGGER

config LIS2DS12_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select LIS2DS12_TRIGGER

endchoice

config LIS2DS12_TRIGGER
	bool

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

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

config LIS2DS12_ENABLE_TEMP
	bool "Temperature"
	help
	  Enable/disable temperature

endif # LIS2DS12
