1 /* 2 * Copyright (c) 2024 TDK Invensense 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_ICM42670_H_ 8 #define ZEPHYR_INCLUDE_DRIVERS_SENSOR_ICM42670_H_ 9 10 #include <zephyr/drivers/sensor.h> 11 12 /** 13 * @file 14 * @brief Extended public API for ICM42670 6-axis MEMS sensor 15 * 16 * Some capabilities and operational requirements for this sensor 17 * cannot be expressed within the sensor driver abstraction. 18 */ 19 20 /** ICM42670 power mode */ 21 #define ICM42670_LOW_NOISE_MODE (0) 22 #define ICM42670_LOW_POWER_MODE (1) 23 24 /** 25 * @brief Extended sensor attributes for ICM42670 6-axis MEMS sensor 26 * 27 * This exposes attributes for the ICM42670 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 enum sensor_attribute_icm42670 { 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_ICM42670_H_ */ 51