| /* sensor_lps25hb.h - header file for LPS22HB pressure and temperature |
| * sensor driver |
| */ |
| |
| /* |
| * Copyright (c) 2017 Linaro Limited |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef __SENSOR_LPS22HB_H__ |
| #define __SENSOR_LPS22HB_H__ |
| |
| #include <stdint.h> |
| #include <i2c.h> |
| #include <misc/util.h> |
| |
| #define LPS22HB_REG_WHO_AM_I 0x0F |
| #define LPS22HB_VAL_WHO_AM_I 0xB1 |
| |
| #define LPS22HB_REG_INTERRUPT_CFG 0x0B |
| #define LPS22HB_MASK_INTERRUPT_CFG_AUTORIFP BIT(7) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_AUTORIFP 7 |
| #define LPS22HB_MASK_INTERRUPT_CFG_RESET_ARP BIT(6) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_RESET_ARP 6 |
| #define LPS22HB_MASK_INTERRUPT_CFG_AUTOZERO BIT(5) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_AUTOZERO 5 |
| #define LPS22HB_MASK_INTERRUPT_CFG_RESET_AZ BIT(4) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_RESET_AZ 4 |
| #define LPS22HB_MASK_INTERRUPT_CFG_DIFF_EN BIT(3) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_DIFF_EN 3 |
| #define LPS22HB_MASK_INTERRUPT_CFG_LIR BIT(2) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_LIR 2 |
| #define LPS22HB_MASK_INTERRUPT_CFG_PL_E BIT(1) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_PL_E 1 |
| #define LPS22HB_MASK_INTERRUPT_CFG_PH_E BIT(0) |
| #define LPS22HB_SHIFT_INTERRUPT_CFG_PH_E 0 |
| |
| #define LPS22HB_REG_THS_P_L 0x0C |
| #define LPS22HB_REG_THS_P_H 0x0D |
| |
| #define LPS22HB_REG_CTRL_REG1 0x10 |
| #define LPS22HB_MASK_CTRL_REG1_ODR (BIT(6) | BIT(5) | BIT(4)) |
| #define LPS22HB_SHIFT_CTRL_REG1_ODR 4 |
| #define LPS22HB_MASK_CTRL_REG1_EN_LPFP BIT(3) |
| #define LPS22HB_SHIFT_CTRL_REG1_EN_LPFP 3 |
| #define LPS22HB_MASK_CTRL_REG1_LPFP_CFG BIT(2) |
| #define LPS22HB_SHIFT_CTRL_REG1_LPFP_CFG 2 |
| #define LPS22HB_MASK_CTRL_REG1_BDU BIT(1) |
| #define LPS22HB_SHIFT_CTRL_REG1_BDU 1 |
| #define LPS22HB_MASK_CTRL_REG1_SIM BIT(0) |
| #define LPS22HB_SHIFT_CTRL_REG1_SIM 0 |
| |
| #define LPS22HB_REG_CTRL_REG2 0x11 |
| #define LPS22HB_MASK_CTRL_REG2_BOOT BIT(7) |
| #define LPS22HB_SHIFT_CTRL_REG2_BOOT 7 |
| #define LPS22HB_MASK_CTRL_REG2_FIFO_EN BIT(6) |
| #define LPS22HB_SHIFT_CTRL_REG2_FIFO_EN 6 |
| #define LPS22HB_MASK_CTRL_REG2_STOP_ON_FTH BIT(5) |
| #define LPS22HB_SHIFT_CTRL_REG2_STOP_ON_FTH 5 |
| #define LPS22HB_MASK_CTRL_REG2_IF_ADD_INC BIT(4) |
| #define LPS22HB_SHIFT_CTRL_REG2_IF_ADD_INC 4 |
| #define LPS22HB_MASK_CTRL_REG2_I2C_DIS BIT(3) |
| #define LPS22HB_SHIFT_CTRL_REG2_I2C_DIS 3 |
| #define LPS22HB_MASK_CTRL_REG2_SWRESET BIT(2) |
| #define LPS22HB_SHIFT_CTRL_REG2_SWRESET 2 |
| #define LPS22HB_MASK_CTRL_REG2_ONE_SHOT BIT(0) |
| #define LPS22HB_SHIFT_CTRL_REG2_ONE_SHOT 0 |
| |
| #define LPS22HB_REG_CTRL_REG3 0x12 |
| #define LPS22HB_MASK_CTRL_REG3_INT_H_L BIT(7) |
| #define LPS22HB_SHIFT_CTRL_REG3_INT_H_L 7 |
| #define LPS22HB_MASK_CTRL_REG3_PP_OD BIT(6) |
| #define LPS22HB_SHIFT_CTRL_REG3_PP_OD 6 |
| #define LPS22HB_MASK_CTRL_REG3_F_FSS5 BIT(5) |
| #define LPS22HB_SHIFT_CTRL_REG3_F_FFS5 5 |
| #define LPS22HB_MASK_CTRL_REG3_F_FTH BIT(4) |
| #define LPS22HB_SHIFT_CTRL_REG3_F_FTH 4 |
| #define LPS22HB_MASK_CTRL_REG3_F_OVR BIT(3) |
| #define LPS22HB_SHIFT_CTRL_REG3_F_OVR 3 |
| #define LPS22HB_MASK_CTRL_REG3_DRDY BIT(2) |
| #define LPS22HB_SHIFT_CTRL_REG3_DRDY 2 |
| #define LPS22HB_MASK_CTRL_REG3_INT_S (BIT(1) | BIT(0)) |
| #define LPS22HB_SHIFT_CTRL_REG_INT_S 0 |
| |
| #define LPS22HB_REG_FIFO_CTRL 0x14 |
| #define LPS22HB_MASK_FIFO_CTRL_F_MODE (BIT(7) | BIT(6) | BIT(5)) |
| #define LPS22HB_SHIFT_FIFO_CTRL_F_MODE 5 |
| #define LPS22HB_MASK_FIFO_CTRL_WTM (BIT(4) | BIT(3) | BIT(2) | \ |
| BIT(2) | BIT(1) | BIT(0)) |
| #define LPS22HB_SHIFT_FIFO_CTRL_WTM 0 |
| |
| #define LPS22HB_REG_REF_P_XL 0x15 |
| #define LPS22HB_REG_REF_P_L 0x16 |
| #define LPS22HB_REG_REF_P_H 0x17 |
| |
| #define LPS22HB_REG_RPDS_L 0x18 |
| #define LPS22HB_REG_RPDS_H 0x19 |
| |
| #define LPS22HB_REG_RES_CONF 0x1A |
| #define LPS22HB_MASK_RES_CONF_LC_EN BIT(0) |
| #define LPS22HB_SHIFT_RES_CONF_LC_EN 0 |
| |
| #define LPS22HB_REG_INT_SOURCE 0x25 |
| #define LPS22HB_MASK_INT_SOURCE_IA BIT(2) |
| #define LPS22HB_SHIFT_INT_SOURCE_IA 2 |
| #define LPS22HB_MASK_INT_SOURCE_PL BIT(1) |
| #define LPS22HB_SHIFT_INT_SOURCE_PL 1 |
| #define LPS22HB_MASK_INT_SOURCE_PH BIT(0) |
| #define LPS22HB_SHIFT_INT_SOURCE_PH 0 |
| |
| #define LPS22HB_REG_FIFO_STATUS 0x26 |
| #define LPS22HB_MASK_FIFO_STATUS_FTH_FIFO BIT(7) |
| #define LPS22HB_SHIFT_FIFO_STATUS_FTH_FIFO 7 |
| #define LPS22HB_MASK_FIFO_STATUS_OVR BIT(6) |
| #define LPS22HB_SHIFT_FIFO_STATUS_OVR 6 |
| #define LPS22HB_MASK_FIFO_STATUS_EMPTY_FIFO BIT(5) |
| #define LPS22HB_SHIFT_FIFO_STATUS_EMPTY_FIFO 5 |
| #define LPS22HB_MASK_FIFO_STATUS_FSS (BIT(4) | BIT(3) | BIT(2) | \ |
| BIT(1) | BIT(0)) |
| #define LPS22HB_SHIFT_FIFO_STATUS_FSS 0 |
| |
| #define LPS22HB_REG_STATUS 0x27 |
| #define LPS22HB_MASK_STATUS_P_OR BIT(5) |
| #define LPS22HB_SHIFT_STATUS_P_OR 5 |
| #define LPS22HB_MASK_STATUS_T_OR BIT(4) |
| #define LPS22HB_SHIFT_STATUS_T_OR 4 |
| #define LPS22HB_MASK_STATUS_P_DA BIT(1) |
| #define LPS22HB_SHIFT_STATUS_P_DA 1 |
| #define LPS22HB_MASK_STATUS_T_DA BIT(0) |
| #define LPS22HB_SHIFT_STATUS_T_DA 0 |
| |
| #define LPS22HB_REG_PRESS_OUT_XL 0x28 |
| #define LPS22HB_REG_PRESS_OUT_L 0x29 |
| #define LPS22HB_REG_PRESS_OUT_H 0x2A |
| |
| #define LPS22HB_REG_TEMP_OUT_L 0x2B |
| #define LPS22HB_REG_TEMP_OUT_H 0x2C |
| |
| #define LPS22HB_REG_LPFP_RES 0x33 |
| |
| |
| #if CONFIG_LPS22HB_SAMPLING_RATE == 1 |
| #define LPS22HB_DEFAULT_SAMPLING_RATE 1 |
| #elif CONFIG_LPS22HB_SAMPLING_RATE == 10 |
| #define LPS22HB_DEFAULT_SAMPLING_RATE 2 |
| #elif CONFIG_LPS22HB_SAMPLING_RATE == 25 |
| #define LPS22HB_DEFAULT_SAMPLING_RATE 3 |
| #elif CONFIG_LPS22HB_SAMPLING_RATE == 50 |
| #define LPS22HB_DEFAULT_SAMPLING_RATE 4 |
| #elif CONFIG_LPS22HB_SAMPLING_RATE == 75 |
| #define LPS22HB_DEFAULT_SAMPLING_RATE 5 |
| #endif |
| |
| |
| struct lps22hb_config { |
| char *i2c_master_dev_name; |
| u16_t i2c_slave_addr; |
| }; |
| |
| struct lps22hb_data { |
| struct device *i2c_master; |
| s32_t sample_press; |
| s16_t sample_temp; |
| }; |
| |
| #define SYS_LOG_DOMAIN "LPS22HB" |
| #define SYS_LOG_LEVEL CONFIG_SYS_LOG_SENSOR_LEVEL |
| #include <logging/sys_log.h> |
| #endif /* __SENSOR_LPS22HB_H__ */ |