Line data Source code
1 1 : /*
2 : * Copyright (c) 2024 TDK Invensense
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_ICM42X70_H_
8 : #define ZEPHYR_INCLUDE_DRIVERS_SENSOR_ICM42X70_H_
9 :
10 : #include <zephyr/drivers/sensor.h>
11 :
12 : /**
13 : * @file
14 : * @brief Extended public API for ICM42X70 MEMS sensor
15 : *
16 : * Some capabilities and operational requirements for this sensor
17 : * cannot be expressed within the sensor driver abstraction.
18 : */
19 :
20 : /** ICM42X70 power mode */
21 1 : #define ICM42X70_LOW_NOISE_MODE (0)
22 0 : #define ICM42X70_LOW_POWER_MODE (1)
23 :
24 : /**
25 : * @brief Extended sensor attributes for ICM42X70 MEMS sensor
26 : *
27 : * This exposes attributes for the ICM42X70 which can be used for
28 : * setting the signal path filtering parameters.
29 : *
30 : * The signal path starts with ADCs for the gyroscope and accelerometer.
31 : * Low-Noise Mode and Low-Power Mode options are available for the
32 : * accelerometer. Only Low-Noise Mode is available for gyroscope.
33 : * In Low-Noise Mode, the ADC output is sent through an Anti-Alias Filter
34 : * (AAF). The AAF is a filter with fixed coefficients (not user configurable),
35 : * also the AAF cannot be bypassed. The AAF is followed by a 1st Order Low Pass
36 : * Filter (LPF) with user selectable filter bandwidth options.
37 : * In Low-Power Mode, the accelerometer ADC output is sent through an Average
38 : * filter, with user configurable average filter setting.
39 : * The output of 1st Order LPF in Low-Noise Mode, or Average filter in Low-Power
40 : * Mode is subject to ODR selection, with user selectable ODR.
41 : */
42 1 : enum sensor_attribute_icm42x70 {
43 : /** BW filtering */
44 :
45 : /** Low-pass filter configuration */
46 : SENSOR_ATTR_BW_FILTER_LPF = SENSOR_ATTR_PRIV_START,
47 : /** Averaging configuration */
48 : SENSOR_ATTR_AVERAGING,
49 : };
50 : #endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_ICM42X70_H_ */
|