| /* HopeRF Electronic HP206C precision barometer and altimeter header |
| * |
| * Copyright (c) 2016 Intel Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| * |
| */ |
| |
| #ifndef ZEPHYR_DRIVERS_SENSOR_HP206C_HP206C_H_ |
| #define ZEPHYR_DRIVERS_SENSOR_HP206C_HP206C_H_ |
| |
| #include <zephyr/sys/util.h> |
| |
| #define HP206C_I2C_ADDRESS 0x76 |
| |
| /* HP206C configuration registers */ |
| #define HP206C_REG_ALT_OFF_LSB 0x00 |
| #define HP206C_REG_ALT_OFF_MSB 0x01 |
| #define HP206C_REG_PA_H_TH_LSB 0x02 |
| #define HP206C_REG_PA_H_TH_MSB 0x03 |
| #define HP206C_REG_PA_M_TH_LSB 0x04 |
| #define HP206C_REG_PA_M_TH_MSB 0x05 |
| #define HP206C_REG_PA_L_TH_LSB 0x06 |
| #define HP206C_REG_PA_L_TH_MSB 0x07 |
| #define HP206C_REG_T_H_TH 0x08 |
| #define HP206C_REG_T_M_TH 0x09 |
| #define HP206C_REG_T_L_TH 0x0A |
| #define HP206C_REG_INT_EN 0x0B |
| #define HP206C_REG_INT_GFG 0x0C |
| #define HP206C_REG_INT_SRC 0x0D |
| #define HP206C_REG_INT_DIR 0x0E |
| #define HP206C_REG_PARA 0x0F |
| |
| /* HP206C commands */ |
| #define HP206C_CMD_SOFT_RST 0x06 |
| #define HP206C_CMD_ADC_CVT 0x40 |
| #define HP206C_CMD_READ_PT 0x10 |
| #define HP206C_CMD_READ_AT 0x11 |
| #define HP206C_CMD_READ_P 0x30 |
| #define HP206C_CMD_READ_A 0x31 |
| #define HP206C_CMD_READ_T 0x32 |
| #define HP206C_CMD_ANA_CAL 0x28 |
| #define HP206C_CMD_READ_REG 0x80 |
| #define HP206C_CMD_WRITE_REG 0xC0 |
| |
| #define HP206C_REG_ADDR_MASK 0x3F |
| |
| /* HP206C_REG_INT_SRC */ |
| #define HP206C_T_WIN BIT(0) |
| #define HP206C_PA_WIN BIT(1) |
| #define HP206C_T_TRAV BIT(2) |
| #define HP206C_PA_TRAV BIT(3) |
| #define HP206C_T_RDY BIT(4) |
| #define HP206C_PA_RDY BIT(5) |
| #define HP206C_DEV_RDY BIT(6) |
| #define HP206C_TH_ERR BIT(7) |
| |
| /* HP206C_REG_PARA */ |
| #define HP206C_COMPENSATION_EN BIT(7) |
| |
| /* default settings, based on menuconfig options */ |
| #if defined(CONFIG_HP206C_OSR_RUNTIME) |
| # define HP206C_DEFAULT_OSR 4096 |
| #else |
| # define HP206C_DEFAULT_OSR CONFIG_HP206C_OSR |
| #endif |
| |
| #if defined(CONFIG_HP206C_ALT_OFFSET_RUNTIME) |
| # define HP206C_DEFAULT_ALT_OFFSET 0 |
| #else |
| # define HP206C_DEFAULT_ALT_OFFSET CONFIG_HP206C_ALT_OFFSET |
| #endif |
| /* end of default settings */ |
| |
| struct hp206c_device_config { |
| struct i2c_dt_spec i2c; |
| }; |
| |
| struct hp206c_device_data { |
| #if CONFIG_SYS_CLOCK_TICKS_PER_SEC < 1000 |
| #error "driver needs millisecond tick granularity" |
| #endif |
| struct k_timer tmr; |
| uint8_t osr; |
| }; |
| |
| #endif /* ZEPHYR_DRIVERS_SENSOR_HP206C_HP206C_H_ */ |