blob: f138e15f37bf9f3c4998d45141d5d217b2e3c22c [file] [log] [blame]
/*
* Copyright (c) 2024 Bittium Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_DRIVERS_SENSOR_TMP435_H_
#define ZEPHYR_DRIVERS_SENSOR_TMP435_H_
#define TMP435_CONF_REG_1 0x03
#define TMP435_CONF_REG_1_DATA 0xc4
/* [7]=1 ALERT Masked, [6]=1 Shut Down (one shot mode), [2]=1 −55 C to +150 C */
#define TMP435_CONF_REG_2 0x1a
#define TMP435_CONF_REG_2_REN 0x10 /* [4]=1 External channel 1 enabled */
#define TMP435_CONF_REG_2_RC 0x04 /* [2]=1 Resistance correction enabled */
#define TMP435_CONF_REG_2_DATA 0x08 /* [3]=1 Local channel enabled */
#define TMP435_BETA_RANGE_REG 0x25
#define TMP435_STATUS_REG 0x02
#define TMP435_STATUS_REG_BUSY 0x80 /* conv not ready */
#define TMP435_SOFTWARE_RESET_REG 0xfc
#define TMP435_ONE_SHOT_START_REG 0x0f
#define TMP435_LOCAL_TEMP_H_REG 0x00
#define TMP435_LOCAL_TEMP_L_REG 0x15
#define TMP435_REMOTE_TEMP_H_REG 0x01
#define TMP435_REMOTE_TEMP_L_REG 0x10
#define TMP435_CONV_LOOP_LIMIT 50 /* max 50*10 ms */
#define TMP435_FRACTION_INC 0x80 /* 0.5000 */
static const int32_t tmp435_temp_offset = -64;
struct tmp435_data {
int32_t temp_die; /* Celsius degrees */
int32_t temp_ambient; /* Celsius degrees */
};
struct tmp435_config {
struct i2c_dt_spec i2c;
bool external_channel;
bool resistance_correction;
uint8_t beta_compensation;
};
#endif /* ZEPHYR_DRIVERS_SENSOR_TMP435_H_ */