blob: e0fd000c8c067a8e132040d0cdfbd66e0e0e6de8 [file] [log] [blame]
/*
* Copyright (c) 2022 Badgerd Technologies B.V.
*
* SPDX-License-Identifier: Apache-2.0
*
* Driver is developed to be used with Zephyr. And it only supports i2c interface.
*
* Author: Talha Can Havadar <havadartalha@gmail.com>
*
*/
#ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_BMP581_USER_H_
#define ZEPHYR_INCLUDE_DRIVERS_SENSOR_BMP581_USER_H_
#include <zephyr/drivers/sensor.h>
#define BMP5_SEA_LEVEL_PRESSURE_PA 101325
/* ODR settings */
#define BMP5_ODR_240_HZ 0x00
#define BMP5_ODR_218_5_HZ 0x01
#define BMP5_ODR_199_1_HZ 0x02
#define BMP5_ODR_179_2_HZ 0x03
#define BMP5_ODR_160_HZ 0x04
#define BMP5_ODR_149_3_HZ 0x05
#define BMP5_ODR_140_HZ 0x06
#define BMP5_ODR_129_8_HZ 0x07
#define BMP5_ODR_120_HZ 0x08
#define BMP5_ODR_110_1_HZ 0x09
#define BMP5_ODR_100_2_HZ 0x0A
#define BMP5_ODR_89_6_HZ 0x0B
#define BMP5_ODR_80_HZ 0x0C
#define BMP5_ODR_70_HZ 0x0D
#define BMP5_ODR_60_HZ 0x0E
#define BMP5_ODR_50_HZ 0x0F
#define BMP5_ODR_45_HZ 0x10
#define BMP5_ODR_40_HZ 0x11
#define BMP5_ODR_35_HZ 0x12
#define BMP5_ODR_30_HZ 0x13
#define BMP5_ODR_25_HZ 0x14
#define BMP5_ODR_20_HZ 0x15
#define BMP5_ODR_15_HZ 0x16
#define BMP5_ODR_10_HZ 0x17
#define BMP5_ODR_05_HZ 0x18
#define BMP5_ODR_04_HZ 0x19
#define BMP5_ODR_03_HZ 0x1A
#define BMP5_ODR_02_HZ 0x1B
#define BMP5_ODR_01_HZ 0x1C
#define BMP5_ODR_0_5_HZ 0x1D
#define BMP5_ODR_0_250_HZ 0x1E
#define BMP5_ODR_0_125_HZ 0x1F
/* Oversampling for temperature and pressure */
#define BMP5_OVERSAMPLING_1X 0x00
#define BMP5_OVERSAMPLING_2X 0x01
#define BMP5_OVERSAMPLING_4X 0x02
#define BMP5_OVERSAMPLING_8X 0x03
#define BMP5_OVERSAMPLING_16X 0x04
#define BMP5_OVERSAMPLING_32X 0x05
#define BMP5_OVERSAMPLING_64X 0x06
#define BMP5_OVERSAMPLING_128X 0x07
/* IIR filter for temperature and pressure */
#define BMP5_IIR_FILTER_BYPASS 0x00
#define BMP5_IIR_FILTER_COEFF_1 0x01
#define BMP5_IIR_FILTER_COEFF_3 0x02
#define BMP5_IIR_FILTER_COEFF_7 0x03
#define BMP5_IIR_FILTER_COEFF_15 0x04
#define BMP5_IIR_FILTER_COEFF_31 0x05
#define BMP5_IIR_FILTER_COEFF_63 0x06
#define BMP5_IIR_FILTER_COEFF_127 0x07
/* Custom ATTR values */
/* This is used to enable IIR config,
* keep in mind that disabling IIR back in runtime is not
* supported yet
*/
#define BMP5_ATTR_IIR_CONFIG (SENSOR_ATTR_PRIV_START + 1u)
#define BMP5_ATTR_POWER_MODE (SENSOR_ATTR_PRIV_START + 2u)
enum bmp5_powermode {
/*! Standby powermode */
BMP5_POWERMODE_STANDBY,
/*! Normal powermode */
BMP5_POWERMODE_NORMAL,
/*! Forced powermode */
BMP5_POWERMODE_FORCED,
/*! Continuous powermode */
BMP5_POWERMODE_CONTINUOUS,
/*! Deep standby powermode */
BMP5_POWERMODE_DEEP_STANDBY
};
#endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_BMP581_USER_H_ */