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