# ICM42670 Six-Axis Motion Tracking device configuration options
#
# Copyright (c) 2022 Esco Medical ApS
# Copyright (c) 2020 TDK Invensense
#
# SPDX-License-Identifier: Apache-2.0

menuconfig ICM42670
	bool "ICM42670 Six-Axis Motion Tracking Device"
	default y
	depends on DT_HAS_INVENSENSE_ICM42670_ENABLED
	select SPI
	help
	  Enable driver for ICM42670 SPI-based six-axis motion tracking device.

if ICM42670

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

config ICM42670_TRIGGER_NONE
	bool "No trigger"

config ICM42670_TRIGGER_GLOBAL_THREAD
	bool "Use global thread"
	depends on GPIO
	select ICM42670_TRIGGER

config ICM42670_TRIGGER_OWN_THREAD
	bool "Use own thread"
	depends on GPIO
	select ICM42670_TRIGGER

endchoice

config ICM42670_TRIGGER
	bool

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

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

endif # ICM42670
