1 /* HopeRF Electronic HP206C precision barometer and altimeter header 2 * 3 * Copyright (c) 2016 Intel Corporation 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 * 7 */ 8 9 #ifndef ZEPHYR_DRIVERS_SENSOR_HP206C_HP206C_H_ 10 #define ZEPHYR_DRIVERS_SENSOR_HP206C_HP206C_H_ 11 12 #include <sys/util.h> 13 14 #define HP206C_I2C_ADDRESS 0x76 15 16 /* HP206C configuration registers */ 17 #define HP206C_REG_ALT_OFF_LSB 0x00 18 #define HP206C_REG_ALT_OFF_MSB 0x01 19 #define HP206C_REG_PA_H_TH_LSB 0x02 20 #define HP206C_REG_PA_H_TH_MSB 0x03 21 #define HP206C_REG_PA_M_TH_LSB 0x04 22 #define HP206C_REG_PA_M_TH_MSB 0x05 23 #define HP206C_REG_PA_L_TH_LSB 0x06 24 #define HP206C_REG_PA_L_TH_MSB 0x07 25 #define HP206C_REG_T_H_TH 0x08 26 #define HP206C_REG_T_M_TH 0x09 27 #define HP206C_REG_T_L_TH 0x0A 28 #define HP206C_REG_INT_EN 0x0B 29 #define HP206C_REG_INT_GFG 0x0C 30 #define HP206C_REG_INT_SRC 0x0D 31 #define HP206C_REG_INT_DIR 0x0E 32 #define HP206C_REG_PARA 0x0F 33 34 /* HP206C commands */ 35 #define HP206C_CMD_SOFT_RST 0x06 36 #define HP206C_CMD_ADC_CVT 0x40 37 #define HP206C_CMD_READ_PT 0x10 38 #define HP206C_CMD_READ_AT 0x11 39 #define HP206C_CMD_READ_P 0x30 40 #define HP206C_CMD_READ_A 0x31 41 #define HP206C_CMD_READ_T 0x32 42 #define HP206C_CMD_ANA_CAL 0x28 43 #define HP206C_CMD_READ_REG 0x80 44 #define HP206C_CMD_WRITE_REG 0xC0 45 46 #define HP206C_REG_ADDR_MASK 0x3F 47 48 /* HP206C_REG_INT_SRC */ 49 #define HP206C_T_WIN BIT(0) 50 #define HP206C_PA_WIN BIT(1) 51 #define HP206C_T_TRAV BIT(2) 52 #define HP206C_PA_TRAV BIT(3) 53 #define HP206C_T_RDY BIT(4) 54 #define HP206C_PA_RDY BIT(5) 55 #define HP206C_DEV_RDY BIT(6) 56 #define HP206C_TH_ERR BIT(7) 57 58 /* HP206C_REG_PARA */ 59 #define HP206C_COMPENSATION_EN BIT(7) 60 61 /* default settings, based on menuconfig options */ 62 #if defined(CONFIG_HP206C_OSR_RUNTIME) 63 # define HP206C_DEFAULT_OSR 4096 64 #else 65 # define HP206C_DEFAULT_OSR CONFIG_HP206C_OSR 66 #endif 67 68 #if defined(CONFIG_HP206C_ALT_OFFSET_RUNTIME) 69 # define HP206C_DEFAULT_ALT_OFFSET 0 70 #else 71 # define HP206C_DEFAULT_ALT_OFFSET CONFIG_HP206C_ALT_OFFSET 72 #endif 73 /* end of default settings */ 74 75 struct hp206c_device_data { 76 const struct device *i2c; 77 #if CONFIG_SYS_CLOCK_TICKS_PER_SEC < 1000 78 #error "driver needs millisecond tick granularity" 79 #endif 80 struct k_timer tmr; 81 uint8_t osr; 82 }; 83 84 #endif /* ZEPHYR_DRIVERS_SENSOR_HP206C_HP206C_H_ */ 85