# Kconfig.adxl362 - ADXL362 Three-Axis Digital Accelerometers

#
# Copyright (c) 2017 IpTronix S.r.l.
#
# SPDX-License-Identifier: Apache-2.0
#
menuconfig ADXL362
	bool "ADXL362 sensor"
	depends on SPI && HAS_DTS_SPI
	help
	  Enable driver for ADXL362 Three-Axis Digital Accelerometers.

if ADXL362

choice
	prompt "Accelerometer range setting"
	default ADXL362_ACCEL_RANGE_RUNTIME

config ADXL362_ACCEL_RANGE_RUNTIME
	bool "Set at runtime."

config ADXL362_ACCEL_RANGE_2G
	bool "2G"

config ADXL362_ACCEL_RANGE_4G
	bool "4G"

config ADXL362_ACCEL_RANGE_8G
	bool "8G"

endchoice

choice
	prompt "Accelerometer sampling frequency."
	default ADXL362_ACCEL_ODR_RUNTIME

config ADXL362_ACCEL_ODR_RUNTIME
	bool "Set at runtime."

config ADXL362_ACCEL_ODR_12_5
	bool "12.5 Hz"

config ADXL362_ACCEL_ODR_25
	bool "25 Hz"

config ADXL362_ACCEL_ODR_50
	bool "50 Hz"

config ADXL362_ACCEL_ODR_100
	bool "100 Hz"

config ADXL362_ACCEL_ODR_200
	bool "200 Hz"

config ADXL362_ACCEL_ODR_400
	bool "400 Hz"

endchoice

choice
	prompt "Trigger mode"
	default ADXL362_TRIGGER_NONE
	help
	  Specify the type of triggering used by the driver.

config ADXL362_TRIGGER_NONE
	bool "No trigger"

config ADXL362_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select ADXL362_TRIGGER

config ADXL362_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select ADXL362_TRIGGER

endchoice

config ADXL362_TRIGGER
	bool

config ADXL362_THREAD_PRIORITY
	int "Thread priority"
	depends on ADXL362_TRIGGER_OWN_THREAD && ADXL362_TRIGGER
	default 10
	help
	  Priority of thread used by the driver to handle interrupts.

config ADXL362_THREAD_STACK_SIZE
	int "Thread stack size"
	depends on ADXL362_TRIGGER_OWN_THREAD && ADXL362_TRIGGER
	default 1024
	help
	  Stack size of thread used by the driver to handle interrupts.

config ADXL362_ACTIVITY_THRESHOLD
	int "Upper threshold value"
	default 1000
	help
	  Unsigned value that the adxl362 samples are
	  compared to in activity trigger mode.

config ADXL362_INACTIVITY_THRESHOLD
	int "Lower threshold value"
	default 100
	help
	  Unsigned value that the adxl362 samples are
	  compared to in inactivity trigger mode.

config ADXL362_INTERRUPT_MODE
	int "Activity and inactivity interrupt mode"
	default 0
	help
	  Unsigned value that sets the ADXL362 in different
	  interrupt modes.
	  0 - Default mode
	  1 - Linked mode
	  3 - Loop mode

config ADXL362_ABS_REF_MODE
	int "Absolute or referenced interrupt"
	default 0
	help
	  Unsigned value that sets the ADXL362 interrupt
	  mode in either absolute or referenced mode.
	  0 - Absolute mode
	  1 - Referenced mode

endif # ADXL362
