You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
55 lines
1.3 KiB
/* |
|
* Copyright (c) 2020 Innoseis BV |
|
* |
|
* SPDX-License-Identifier: Apache-2.0 |
|
*/ |
|
|
|
#ifndef ZEPHYR_DRIVERS_SENSOR_TMP112_TMP112_H_ |
|
#define ZEPHYR_DRIVERS_SENSOR_TMP112_TMP112_H_ |
|
|
|
#include <device.h> |
|
#include <sys/util.h> |
|
|
|
#define TMP112_REG_TEMPERATURE 0x00 |
|
#define TMP112_DATA_INVALID_BIT (BIT(1) | BIT(2)) |
|
#define TMP112_DATA_EXTENDED (BIT(0)) |
|
#define TMP112_DATA_EXTENDED_SHIFT 3 |
|
#define TMP112_DATA_NORMAL_SHIFT 4 |
|
|
|
|
|
#define TMP112_REG_CONFIG 0x01 |
|
#define TMP112_CONFIG_EM BIT(4) |
|
|
|
#define TMP112_ALERT_EN_BIT BIT(5) |
|
#define TMP112_CONV_RATE_SHIFT 6 |
|
#define TMP112_CONV_RATE_MASK (BIT_MASK(2) << TMP112_CONV_RATE_SHIFT) |
|
#define TMP112_CONV_RATE_025 0 |
|
#define TMP112_CONV_RATE_1000 1 |
|
#define TMP112_CONV_RATE_4 2 |
|
#define TMP112_CONV_RATE_8 3 |
|
|
|
#define TMP112_CONV_RATE(cr) ((cr) << TMP112_CONV_RATE_SHIFT) |
|
|
|
#define TMP112_CONV_RES_SHIFT 13 |
|
#define TMP112_CONV_RES_MASK (BIT_MASK(2) << TMP112_CONV_RES_SHIFT) |
|
|
|
#define TMP112_ONE_SHOT BIT(15) |
|
|
|
#define TMP112_REG_TLOW 0x02 |
|
#define TMP112_REG_THIGH 0x03 |
|
|
|
/* scale in micro degrees Celsius */ |
|
#define TMP112_TEMP_SCALE 62500 |
|
|
|
struct tmp112_data { |
|
int16_t sample; |
|
uint16_t config_reg; |
|
}; |
|
|
|
struct tmp112_config { |
|
const struct i2c_dt_spec bus; |
|
uint8_t cr; |
|
bool extended_mode : 1; |
|
}; |
|
|
|
#endif
|
|
|