1 /* $NetBSD: bmx280reg.h,v 1.1 2022/12/03 01:04:43 brad Exp $ */ 2 3 /* 4 * Copyright (c) 2022 Brad Spencer <brad@anduin.eldar.org> 5 * 6 * Permission to use, copy, modify, and distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 #ifndef _DEV_IC_BMX280REG_H_ 20 #define _DEV_IC_BMX280REG_H_ 21 22 #define BMX280_TYPICAL_ADDR_1 0x76 23 #define BMX280_TYPICAL_ADDR_2 0x77 24 25 #define BMX280_REGISTER_DIG_T1 0x88 26 #define BMX280_REGISTER_DIG_T2 0x8A 27 #define BMX280_REGISTER_DIG_T3 0x8C 28 #define BMX280_REGISTER_DIG_P1 0x8E 29 #define BMX280_REGISTER_DIG_P2 0x90 30 #define BMX280_REGISTER_DIG_P3 0x92 31 #define BMX280_REGISTER_DIG_P4 0x94 32 #define BMX280_REGISTER_DIG_P5 0x96 33 #define BMX280_REGISTER_DIG_P6 0x98 34 #define BMX280_REGISTER_DIG_P7 0x9A 35 #define BMX280_REGISTER_DIG_P8 0x9C 36 #define BMX280_REGISTER_DIG_P9 0x9E 37 #define BMX280_REGISTER_DIG_H1 0xA1 38 #define BMX280_REGISTER_DIG_H2 0xE1 39 #define BMX280_REGISTER_DIG_H3 0xE3 40 #define BMX280_REGISTER_DIG_H4 0xE4 41 #define BMX280_REGISTER_DIG_H5 0xE5 42 43 #define BMX280_REGISTER_ID 0xD0 44 #define BMX280_ID_BMP280 0x58 45 #define BMX280_ID_BME280 0x60 46 47 #define BMX280_REGISTER_RESET 0xE0 48 #define BMX280_TRIGGER_RESET 0xB6 49 50 #define BMX280_REGISTER_CTRL_HUM 0xF2 51 52 #define BMX280_REGISTER_STATUS 0xF3 53 #define BMX280_STATUS_MEASURING_MASK 0x08 54 #define BMX280_STATUS_IM_UPDATE_MASK 0x01 55 56 #define BMX280_REGISTER_CTRL_MEAS 0xF4 57 #define BMX280_CTRL_OSRS_T_MASK 0xE0 58 #define BMX280_CTRL_OSRS_P_MASK 0x1C 59 #define BMX280_CTRL_OSRS_T_SHIFT 5 60 #define BMX280_CTRL_OSRS_P_SHIFT 2 61 #define BMX280_OSRS_TP_VALUE_SKIPPED 0x00 62 #define BMX280_OSRS_TP_VALUE_X1 0x01 63 #define BMX280_OSRS_TP_VALUE_X2 0x02 64 #define BMX280_OSRS_TP_VALUE_X4 0x03 65 #define BMX280_OSRS_TP_VALUE_X8 0x04 66 #define BMX280_OSRS_TP_VALUE_X16 0x05 67 #define BMX280_CTRL_MODE_MASK 0x03 68 #define BMX280_MODE_SLEEP 0x00 69 #define BMX280_MODE_FORCED 0x01 70 #define BMX280_MODE_NORMAL 0x03 71 72 #define BMX280_REGISTER_CONFIG 0xF5 73 #define BMX280_CONFIG_T_SB_MASK 0xE0 74 #define BMX280_CONFIG_FILTER_MASK 0x1C 75 #define BMX280_CONFIG_FILTER_SHIFT 2 76 #define BMX280_FILTER_VALUE_OFF 0x00 77 #define BMX280_FILTER_VALUE_2 0x01 78 #define BMX280_FILTER_VALUE_5 0x02 79 #define BMX280_FILTER_VALUE_11 0x04 80 #define BMX280_FILTER_VALUE_22 0x05 81 #define BMX280_CONFIG_SPI3W_EN_MASK 0x01 82 83 #define BMX280_REGISTER_PRESS_MSB 0xF7 84 #define BMX280_REGISTER_PRESS_LSB 0xF8 85 #define BMX280_REGISTER_PRESS_XLSB 0xF9 86 87 #define BMX280_REGISTER_TEMP_MSB 0xFA 88 #define BMX280_REGISTER_TEMP_LSB 0xFB 89 #define BMX280_REGISTER_TEMP_XLSB 0xFC 90 91 #define BMX280_TEMPPRES_XLSB_MASK 0xF0 92 93 #define BMX280_REGISTER_HUM_MSB 0xFD 94 #define BMX280_REGISTER_HUM_LSB 0xFE 95 96 #endif 97