42#define ADT7420_A0_PIN(x) (((x) & 0x1) << 0)
43#define ADT7420_A1_PIN(x) (((x) & 0x1) << 1)
44#define ADT7420_ADDRESS(x,y) (0x48 + ADT7420_A1_PIN(x) + ADT7420_A0_PIN(y))
45#define ADT7320_L16 NO_OS_BIT(8)
46#define ADT7320_ADDR_MSK NO_OS_GENMASK(7,0)
49#define ADT7320_REG_STATUS 0x00
50#define ADT7320_REG_CONFIG 0x01
51#define ADT7320_REG_TEMP (ADT7320_L16 | 0x02)
52#define ADT7320_REG_ID 0x03
53#define ADT7320_REG_T_CRIT (ADT7320_L16 | 0x04)
54#define ADT7320_REG_HIST 0x05
55#define ADT7320_REG_T_HIGH (ADT7320_L16 | 0x06)
56#define ADT7320_REG_T_LOW (ADT7320_L16 | 0x07)
59#define ADT7320_WRITE_MASK_CMD 0b00111000
60#define ADT7320_READ_CMD 0b01000000
63#define ADT7420_REG_TEMP_MSB (ADT7320_L16 |0x00)
64#define ADT7420_REG_TEMP_LSB 0x01
65#define ADT7420_REG_STATUS 0x02
66#define ADT7420_REG_CONFIG 0x03
67#define ADT7420_REG_T_HIGH_MSB (ADT7320_L16 |0x04 )
68#define ADT7420_REG_T_HIGH_LSB 0x05
69#define ADT7420_REG_T_LOW_MSB (ADT7320_L16 |0x06)
70#define ADT7420_REG_T_LOW_LSB 0x07
71#define ADT7420_REG_T_CRIT_MSB (ADT7320_L16 |0x08)
72#define ADT7420_REG_T_CRIT_LSB 0x09
73#define ADT7420_REG_HIST 0x0A
74#define ADT7420_REG_ID 0x0B
75#define ADT7420_REG_RESET 0x2F
78#define ADT7420_STATUS_T_LOW NO_OS_BIT(4)
79#define ADT7420_STATUS_T_HIGH NO_OS_BIT(5)
80#define ADT7420_STATUS_T_CRIT NO_OS_BIT(6)
81#define ADT7420_STATUS_RDY NO_OS_BIT(7)
84#define ADT7420_CONFIG_OP_MODE(x) ((x) << 5) & (NO_OS_GENMASK(6,5))
85#define ADT7420_CONFIG_RESOLUTION NO_OS_BIT(7)
88#define ADT7420_16BIT_NEG NO_OS_BIT(16)
89#define ADT7420_16BIT_SIGN 0x8000
90#define ADT7420_16BIT_DIV 128
91#define ADT7420_13BIT_NEG NO_OS_BIT(13)
92#define ADT7420_13BIT_SIGN 0x1000
93#define ADT7420_13BIT_DIV 16
96#define ADT7420_OP_MODE_CONT_CONV 0
97#define ADT7420_OP_MODE_ONE_SHOT 1
98#define ADT7420_OP_MODE_1_SPS 2
99#define ADT7420_OP_MODE_SHUTDOWN 3
102#define ADT7xxx_ID 0xC
104#define ADT7420_RESET_DELAY 1
156 uint16_t register_address, uint16_t *data);
160 uint16_t register_address, uint8_t mask, uint8_t value);
172 uint16_t register_address,
198 uint16_t register_address, uint16_t *data);
202 uint16_t register_address, uint16_t *data);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int32_t adt7420_init(struct adt7420_dev **device, struct adt7420_init_param init_param)
Initializes the communication peripheral and checks if the device is present.
Definition adt7420.c:199
float adt7420_get_temperature(struct adt7420_dev *dev)
Reads the temperature data and converts it to Celsius degrees.
Definition adt7420.c:363
int32_t adt7420_remove(struct adt7420_dev *dev)
Free the resources allocated by adt7420_init().
Definition adt7420.c:261
int adt7420_reg_write(struct adt7420_dev *dev, uint16_t register_address, uint32_t data)
Sets the value of a register SPI/I2C.
Definition adt7420.c:175
adt7420_type
Definition adt7420.h:117
@ ID_ADT7310
Definition adt7420.h:121
@ ID_ADT7320
Definition adt7420.h:124
@ ID_ADT7422
Definition adt7420.h:120
@ ID_ADT7410
Definition adt7420.h:118
@ ID_ADT7312
Definition adt7420.h:123
@ ID_ADT7420
Definition adt7420.h:119
@ ID_ADT7311
Definition adt7420.h:122
int32_t adt7420_reset(struct adt7420_dev *dev)
Resets the SPI or I2C inteface for the ADT7420/ADT7320.
Definition adt7420.c:333
bool adt7420_is_spi(struct adt7420_dev *dev)
Check if the interface of the selected device is SPI.
Definition adt7420.c:470
dev_interface
Definition adt7420.h:107
int adt7420_set_operation_mode(struct adt7420_dev *dev, uint8_t mode)
Sets the operational mode for ADT7420/ADT7320.
Definition adt7420.c:284
int adt7420_i2c_reg_write(struct adt7420_dev *dev, uint16_t register_address, uint32_t data)
Write a value of a register via I2C.
Definition adt7420.c:144
int adt7420_reg_update_bits(struct adt7420_dev *dev, uint16_t register_address, uint8_t mask, uint8_t value)
Sets the value of a register SPI/I2C.
Definition adt7420.c:91
int adt7420_i2c_reg_read(struct adt7420_dev *dev, uint16_t register_address, uint16_t *data)
Reads the value of a register I2C interface device.
Definition adt7420.c:438
int adt7420_spi_reg_write(struct adt7420_dev *dev, uint16_t register_address, uint32_t data)
Write a value of a register via SPI.
Definition adt7420.c:113
int adt7420_spi_reg_read(struct adt7420_dev *dev, uint16_t register_address, uint16_t *data)
Reads the value of a register SPI interface device.
Definition adt7420.c:404
int adt7420_reg_read(struct adt7420_dev *dev, uint16_t register_address, uint16_t *data)
Reads the value of a register.
Definition adt7420.c:72
int adt7420_set_resolution(struct adt7420_dev *dev, uint8_t resolution)
Sets the resolution for ADT7420/ADT7320.
Definition adt7420.c:308
@ I2C
Definition adxl372.h:311
@ SPI
Definition adxl372.h:310
int interface_init(struct no_os_gpio_desc **gpio_led_desc)
Interface initialization routines.
Definition interface.c:45
Header file of I2C Interface.
Header file of SPI Interface.
Header file of utility functions.
enum dev_interface communication
Definition adt7420.h:114
uint8_t resolution
Definition adt7420.h:113
struct no_os_spi_desc * spi_desc
Definition adt7420.h:131
enum adt7420_type active_device
Definition adt7420.h:133
uint8_t resolution_setting
Definition adt7420.h:135
struct no_os_i2c_desc * i2c_desc
Definition adt7420.h:129
uint8_t resolution_setting
Definition adt7420.h:147
enum adt7420_type active_device
Definition adt7420.h:149
Definition ad9361_util.h:63
Structure holding I2C address descriptor.
Definition no_os_i2c.h:89
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
struct no_os_i2c_init_param i2c_init
Definition adt7420.h:142
struct no_os_spi_init_param spi_init
Definition adt7420.h:144