Skip to content

Commit cc56fb5

Browse files
JuHyun Kimgalak
authored andcommitted
drivers: sensor: Initial driver of Invensense ICM42605
Initial driver and sample application of TDK Invensense ICM42605 6-axis motion sensor. This driver provide DTS for nRF52 DK board DTS setting. Providing features are below. Sensor data streaming - Accel, gyro Tap, Double tap triggering. Set/Get FSR, ODR by set attr API Support multi instance feature. Signed-off-by: JuHyun Kim <[email protected]>
1 parent 1badf77 commit cc56fb5

File tree

13 files changed

+1986
-0
lines changed

13 files changed

+1986
-0
lines changed

drivers/sensor/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ source "drivers/sensor/hp206c/Kconfig"
9292

9393
source "drivers/sensor/hts221/Kconfig"
9494

95+
source "drivers/sensor/icm42605/Kconfig"
96+
9597
source "drivers/sensor/iis2dh/Kconfig"
9698

9799
source "drivers/sensor/iis2dlpc/Kconfig"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
zephyr_library()
4+
5+
if (CONFIG_ICM42605)
6+
zephyr_library_sources(icm42605.c)
7+
zephyr_library_sources(icm42605_setup.c)
8+
zephyr_library_sources_ifdef(CONFIG_SPI icm42605_spi.c)
9+
zephyr_library_sources_ifdef(CONFIG_ICM42605_TRIGGER icm42605_trigger.c)
10+
endif()

drivers/sensor/icm42605/Kconfig

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# ICM42605 Six-Axis Motion Tracking device configuration options
2+
3+
# Copyright (c) 2020 TDK Invensense
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
menuconfig ICM42605
7+
bool "ICM42605 Six-Axis Motion Tracking Device"
8+
depends on SPI
9+
help
10+
Enable driver for ICM42605 SPI-based six-axis motion tracking device.
11+
12+
if ICM42605
13+
14+
choice
15+
prompt "Trigger mode"
16+
default ICM42605_TRIGGER_GLOBAL_THREAD
17+
help
18+
Specify the type of triggering to be used by the driver.
19+
20+
config ICM42605_TRIGGER_NONE
21+
bool "No trigger"
22+
23+
config ICM42605_TRIGGER_GLOBAL_THREAD
24+
bool "Use global thread"
25+
depends on GPIO
26+
select ICM42605_TRIGGER
27+
28+
config ICM42605_TRIGGER_OWN_THREAD
29+
bool "Use own thread"
30+
depends on GPIO
31+
select ICM42605_TRIGGER
32+
33+
34+
endchoice
35+
36+
config ICM42605_TRIGGER
37+
bool
38+
39+
config ICM42605_THREAD_PRIORITY
40+
int "Thread priority"
41+
depends on ICM42605_TRIGGER_OWN_THREAD
42+
default 10
43+
help
44+
Priority of thread used by the driver to handle interrupts.
45+
46+
config ICM42605_THREAD_STACK_SIZE
47+
int "Thread stack size"
48+
depends on ICM42605_TRIGGER_OWN_THREAD
49+
default 1024
50+
help
51+
Stack size of thread used by the driver to handle interrupts.
52+
53+
endif # ICM42605

0 commit comments

Comments
 (0)