# ST Microelectronics IIS2DLPC 3-axis accelerometer driver

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

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

if IIS2DLPC

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

config IIS2DLPC_TRIGGER_NONE
	bool "No trigger"

config IIS2DLPC_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select IIS2DLPC_TRIGGER

config IIS2DLPC_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select IIS2DLPC_TRIGGER

endchoice

config IIS2DLPC_TRIGGER
	bool

if IIS2DLPC_TRIGGER

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

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

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

endif # IIS2DLPC_TRIGGER

endif # IIS2DLPC
