1# ICM42688-P Six-Axis Motion Tracking device configuration options
2#
3# Copyright (c) 2022 Intel Corporation
4#
5# SPDX-License-Identifier: Apache-2.0
6
7menuconfig ICM42688
8	bool "ICM42688 Six-Axis Motion Tracking Device"
9	default y
10	depends on DT_HAS_INVENSENSE_ICM42688_ENABLED
11	select SPI
12	help
13	  Enable driver for ICM42688 SPI-based six-axis motion tracking device.
14
15if ICM42688
16
17config EMUL_ICM42688
18	bool "Emulator for the ICM42688"
19	default y
20	depends on EMUL
21	help
22	  Enable the hardware emulator for the ICM42688. Doing so allows exercising
23	  sensor APIs for this IMU in native_sim and qemu.
24
25config ICM42688_DECODER
26	bool "ICM42688 decoder logic"
27	default y
28	select SENSOR_ASYNC_API
29	help
30	  Compile the ICM42688 decoder API which allows decoding raw data returned
31	  from the sensor.
32
33choice
34	prompt "Trigger mode"
35	default ICM42688_TRIGGER_NONE if ICM42688_STREAM
36	default ICM42688_TRIGGER_GLOBAL_THREAD
37	help
38	  Specify the type of triggering to be used by the driver
39
40config ICM42688_TRIGGER_NONE
41	bool "No trigger"
42
43config ICM42688_TRIGGER_GLOBAL_THREAD
44	bool "Use global thread"
45	select ICM42688_TRIGGER
46
47config ICM42688_TRIGGER_OWN_THREAD
48	bool "Use own thread"
49	select ICM42688_TRIGGER
50
51endchoice
52
53config ICM42688_STREAM
54	bool "Use hardware FIFO to stream data"
55	select ICM42688_TRIGGER
56	default y
57	depends on SPI_RTIO
58	depends on SENSOR_ASYNC_API
59	help
60	  Use this config option to enable streaming sensor data via RTIO subsystem.
61
62config ICM42688_TRIGGER
63	bool
64
65config ICM42688_THREAD_PRIORITY
66	int "Own thread priority"
67	depends on ICM42688_TRIGGER_OWN_THREAD
68	default 10
69	help
70	  The priority of the thread used for handling interrupts.
71
72config ICM42688_THREAD_STACK_SIZE
73	int "Own thread stack size"
74	depends on ICM42688_TRIGGER_OWN_THREAD
75	default 1024
76	help
77	  The thread stack size.
78
79endif # ICM42688
80