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_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 1 : #define ICM42670_LOW_NOISE_MODE (0) 22 0 : #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 1 : 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_ */