Library files for ADT74xx, ADT73xx famile of products.
adt7420.h@1:a86efb0ef0ad, 2019-08-28 (annotated)
- Committer:
- EndaKilgarriff
- Date:
- Wed Aug 28 15:37:55 2019 +0000
- Revision:
- 1:a86efb0ef0ad
Initial Commit of ADT7420 noOS software
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EndaKilgarriff | 1:a86efb0ef0ad | 1 | /***************************************************************************//** |
EndaKilgarriff | 1:a86efb0ef0ad | 2 | * @file adt7420.h |
EndaKilgarriff | 1:a86efb0ef0ad | 3 | * @brief Header file of ADT7420 Driver. |
EndaKilgarriff | 1:a86efb0ef0ad | 4 | * @author DBogdan (dragos.bogdan@analog.com) |
EndaKilgarriff | 1:a86efb0ef0ad | 5 | ******************************************************************************** |
EndaKilgarriff | 1:a86efb0ef0ad | 6 | * Copyright 2012, 2019(c) Analog Devices, Inc. |
EndaKilgarriff | 1:a86efb0ef0ad | 7 | * |
EndaKilgarriff | 1:a86efb0ef0ad | 8 | * All rights reserved. |
EndaKilgarriff | 1:a86efb0ef0ad | 9 | * |
EndaKilgarriff | 1:a86efb0ef0ad | 10 | * Redistribution and use in source and binary forms, with or without |
EndaKilgarriff | 1:a86efb0ef0ad | 11 | * modification, are permitted provided that the following conditions are met: |
EndaKilgarriff | 1:a86efb0ef0ad | 12 | * - Redistributions of source code must retain the above copyright |
EndaKilgarriff | 1:a86efb0ef0ad | 13 | * notice, this list of conditions and the following disclaimer. |
EndaKilgarriff | 1:a86efb0ef0ad | 14 | * - Redistributions in binary form must reproduce the above copyright |
EndaKilgarriff | 1:a86efb0ef0ad | 15 | * notice, this list of conditions and the following disclaimer in |
EndaKilgarriff | 1:a86efb0ef0ad | 16 | * the documentation and/or other materials provided with the |
EndaKilgarriff | 1:a86efb0ef0ad | 17 | * distribution. |
EndaKilgarriff | 1:a86efb0ef0ad | 18 | * - Neither the name of Analog Devices, Inc. nor the names of its |
EndaKilgarriff | 1:a86efb0ef0ad | 19 | * contributors may be used to endorse or promote products derived |
EndaKilgarriff | 1:a86efb0ef0ad | 20 | * from this software without specific prior written permission. |
EndaKilgarriff | 1:a86efb0ef0ad | 21 | * - The use of this software may or may not infringe the patent rights |
EndaKilgarriff | 1:a86efb0ef0ad | 22 | * of one or more patent holders. This license does not release you |
EndaKilgarriff | 1:a86efb0ef0ad | 23 | * from the requirement that you obtain separate licenses from these |
EndaKilgarriff | 1:a86efb0ef0ad | 24 | * patent holders to use this software. |
EndaKilgarriff | 1:a86efb0ef0ad | 25 | * - Use of the software either in source or binary form, must be run |
EndaKilgarriff | 1:a86efb0ef0ad | 26 | * on or directly connected to an Analog Devices Inc. component. |
EndaKilgarriff | 1:a86efb0ef0ad | 27 | * |
EndaKilgarriff | 1:a86efb0ef0ad | 28 | * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR |
EndaKilgarriff | 1:a86efb0ef0ad | 29 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, |
EndaKilgarriff | 1:a86efb0ef0ad | 30 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
EndaKilgarriff | 1:a86efb0ef0ad | 31 | * IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, |
EndaKilgarriff | 1:a86efb0ef0ad | 32 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
EndaKilgarriff | 1:a86efb0ef0ad | 33 | * LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR |
EndaKilgarriff | 1:a86efb0ef0ad | 34 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
EndaKilgarriff | 1:a86efb0ef0ad | 35 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
EndaKilgarriff | 1:a86efb0ef0ad | 36 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
EndaKilgarriff | 1:a86efb0ef0ad | 37 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
EndaKilgarriff | 1:a86efb0ef0ad | 38 | *******************************************************************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 39 | #ifndef __ADT7420_H__ |
EndaKilgarriff | 1:a86efb0ef0ad | 40 | #define __ADT7420_H__ |
EndaKilgarriff | 1:a86efb0ef0ad | 41 | |
EndaKilgarriff | 1:a86efb0ef0ad | 42 | /******************************************************************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 43 | /************************** ADT7420 Definitions *******************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 44 | /******************************************************************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 45 | |
EndaKilgarriff | 1:a86efb0ef0ad | 46 | /* ADT7420 address */ |
EndaKilgarriff | 1:a86efb0ef0ad | 47 | #define ADT7420_A0_PIN(x) (((x) & 0x1) << 0) // I2C Serial Bus Address Selection Pin |
EndaKilgarriff | 1:a86efb0ef0ad | 48 | #define ADT7420_A1_PIN(x) (((x) & 0x1) << 1) // I2C Serial Bus Address Selection Pin |
EndaKilgarriff | 1:a86efb0ef0ad | 49 | #define ADT7420_ADDRESS(x,y) (0x48 + ADT7420_A1_PIN(x) + ADT7420_A0_PIN(y)) |
EndaKilgarriff | 1:a86efb0ef0ad | 50 | |
EndaKilgarriff | 1:a86efb0ef0ad | 51 | /* ADT7320 (SPI) registers */ |
EndaKilgarriff | 1:a86efb0ef0ad | 52 | #define ADT7320_REG_STATUS 0x00 // Status |
EndaKilgarriff | 1:a86efb0ef0ad | 53 | #define ADT7320_REG_CONFIG 0x01 // Configuration |
EndaKilgarriff | 1:a86efb0ef0ad | 54 | #define ADT7320_REG_TEMP 0x02 // Temperature value |
EndaKilgarriff | 1:a86efb0ef0ad | 55 | #define ADT7320_REG_ID 0x03 // ID |
EndaKilgarriff | 1:a86efb0ef0ad | 56 | #define ADT7320_REG_T_CRIT 0x04 // Temperature CRIT setpoint (147'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 57 | #define ADT7320_REG_HIST 0x05 // Temperature HYST setpoint (5'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 58 | #define ADT7320_REG_T_HIGH 0x06 // Temperature HIGH setpoint (64'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 59 | #define ADT7320_REG_T_LOW 0x07 // Temperature LOW setpoint (10'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 60 | |
EndaKilgarriff | 1:a86efb0ef0ad | 61 | /* ADT7320 SPI command byte */ |
EndaKilgarriff | 1:a86efb0ef0ad | 62 | #define ADT7320_WRITE_MASK_CMD 0b00111000 // SPI write command |
EndaKilgarriff | 1:a86efb0ef0ad | 63 | #define ADT7320_READ_CMD 0b01000000 // SPI read command |
EndaKilgarriff | 1:a86efb0ef0ad | 64 | |
EndaKilgarriff | 1:a86efb0ef0ad | 65 | /* ADT7420 (I2C) registers */ |
EndaKilgarriff | 1:a86efb0ef0ad | 66 | #define ADT7420_REG_TEMP_MSB 0x00 // Temperature value MSB |
EndaKilgarriff | 1:a86efb0ef0ad | 67 | #define ADT7420_REG_TEMP_LSB 0x01 // Temperature value LSB |
EndaKilgarriff | 1:a86efb0ef0ad | 68 | #define ADT7420_REG_STATUS 0x02 // Status |
EndaKilgarriff | 1:a86efb0ef0ad | 69 | #define ADT7420_REG_CONFIG 0x03 // Configuration |
EndaKilgarriff | 1:a86efb0ef0ad | 70 | #define ADT7420_REG_T_HIGH_MSB 0x04 // Temperature HIGH setpoint MSB |
EndaKilgarriff | 1:a86efb0ef0ad | 71 | #define ADT7420_REG_T_HIGH_LSB 0x05 // Temperature HIGH setpoint LSB |
EndaKilgarriff | 1:a86efb0ef0ad | 72 | #define ADT7420_REG_T_LOW_MSB 0x06 // Temperature LOW setpoint MSB |
EndaKilgarriff | 1:a86efb0ef0ad | 73 | #define ADT7420_REG_T_LOW_LSB 0x07 // Temperature LOW setpoint LSB |
EndaKilgarriff | 1:a86efb0ef0ad | 74 | #define ADT7420_REG_T_CRIT_MSB 0x08 // Temperature CRIT setpoint MSB |
EndaKilgarriff | 1:a86efb0ef0ad | 75 | #define ADT7420_REG_T_CRIT_LSB 0x09 // Temperature CRIT setpoint LSB |
EndaKilgarriff | 1:a86efb0ef0ad | 76 | #define ADT7420_REG_HIST 0x0A // Temperature HYST setpoint |
EndaKilgarriff | 1:a86efb0ef0ad | 77 | #define ADT7420_REG_ID 0x0B // ID |
EndaKilgarriff | 1:a86efb0ef0ad | 78 | #define ADT7420_REG_RESET 0x2F // Software reset |
EndaKilgarriff | 1:a86efb0ef0ad | 79 | |
EndaKilgarriff | 1:a86efb0ef0ad | 80 | /* ADT7420_REG_STATUS definition */ |
EndaKilgarriff | 1:a86efb0ef0ad | 81 | #define ADT7420_STATUS_T_LOW (1 << 4) |
EndaKilgarriff | 1:a86efb0ef0ad | 82 | #define ADT7420_STATUS_T_HIGH (1 << 5) |
EndaKilgarriff | 1:a86efb0ef0ad | 83 | #define ADT7420_STATUS_T_CRIT (1 << 6) |
EndaKilgarriff | 1:a86efb0ef0ad | 84 | #define ADT7420_STATUS_RDY (1 << 7) |
EndaKilgarriff | 1:a86efb0ef0ad | 85 | |
EndaKilgarriff | 1:a86efb0ef0ad | 86 | /* ADT7420_REG_CONFIG definition */ |
EndaKilgarriff | 1:a86efb0ef0ad | 87 | #define ADT7420_CONFIG_FAULT_QUEUE(x) (x & 0x3) |
EndaKilgarriff | 1:a86efb0ef0ad | 88 | #define ADT7420_CONFIG_CT_POL (1 << 2) |
EndaKilgarriff | 1:a86efb0ef0ad | 89 | #define ADT7420_CONFIG_INT_POL (1 << 3) |
EndaKilgarriff | 1:a86efb0ef0ad | 90 | #define ADT7420_CONFIG_INT_CT_MODE (1 << 4) |
EndaKilgarriff | 1:a86efb0ef0ad | 91 | #define ADT7420_CONFIG_OP_MODE(x) ((x & 0x3) << 5) |
EndaKilgarriff | 1:a86efb0ef0ad | 92 | #define ADT7420_CONFIG_RESOLUTION (1 << 7) |
EndaKilgarriff | 1:a86efb0ef0ad | 93 | |
EndaKilgarriff | 1:a86efb0ef0ad | 94 | /* ADT7420_CONFIG_FAULT_QUEUE(x) options */ |
EndaKilgarriff | 1:a86efb0ef0ad | 95 | #define ADT7420_FAULT_QUEUE_1_FAULT 0 |
EndaKilgarriff | 1:a86efb0ef0ad | 96 | #define ADT7420_FAULT_QUEUE_2_FAULTS 1 |
EndaKilgarriff | 1:a86efb0ef0ad | 97 | #define ADT7420_FAULT_QUEUE_3_FAULTS 2 |
EndaKilgarriff | 1:a86efb0ef0ad | 98 | #define ADT7420_FAULT_QUEUE_4_FAULTS 3 |
EndaKilgarriff | 1:a86efb0ef0ad | 99 | |
EndaKilgarriff | 1:a86efb0ef0ad | 100 | /* ADT7420_CONFIG_OP_MODE(x) options */ |
EndaKilgarriff | 1:a86efb0ef0ad | 101 | #define ADT7420_OP_MODE_CONT_CONV 0 |
EndaKilgarriff | 1:a86efb0ef0ad | 102 | #define ADT7420_OP_MODE_ONE_SHOT 1 |
EndaKilgarriff | 1:a86efb0ef0ad | 103 | #define ADT7420_OP_MODE_1_SPS 2 |
EndaKilgarriff | 1:a86efb0ef0ad | 104 | #define ADT7420_OP_MODE_SHUTDOWN 3 |
EndaKilgarriff | 1:a86efb0ef0ad | 105 | |
EndaKilgarriff | 1:a86efb0ef0ad | 106 | /* ADT7420 default ID */ |
EndaKilgarriff | 1:a86efb0ef0ad | 107 | #define ADT7XXX_ID_CHECK 0xC |
EndaKilgarriff | 1:a86efb0ef0ad | 108 | #define GET_MANUFACTURER_ID 4 |
EndaKilgarriff | 1:a86efb0ef0ad | 109 | #define ADT7320_DEFAULT_ID 0xC3 |
EndaKilgarriff | 1:a86efb0ef0ad | 110 | #define ADT7420_DEFAULT_ID 0xCB |
EndaKilgarriff | 1:a86efb0ef0ad | 111 | |
EndaKilgarriff | 1:a86efb0ef0ad | 112 | /* ADT7420 bit mask */ |
EndaKilgarriff | 1:a86efb0ef0ad | 113 | #define ADT7420_LSB_MASK 0x00FF |
EndaKilgarriff | 1:a86efb0ef0ad | 114 | #define ADT7420_MSB_MASK 0xFF00 |
EndaKilgarriff | 1:a86efb0ef0ad | 115 | #define ADT7420_LSB_OFFSET 0 |
EndaKilgarriff | 1:a86efb0ef0ad | 116 | #define ADT7420_MSB_OFFSET 8 |
EndaKilgarriff | 1:a86efb0ef0ad | 117 | |
EndaKilgarriff | 1:a86efb0ef0ad | 118 | /* SPI number of bytes in packet */ |
EndaKilgarriff | 1:a86efb0ef0ad | 119 | #define PKT_LENGTH 3 |
EndaKilgarriff | 1:a86efb0ef0ad | 120 | |
EndaKilgarriff | 1:a86efb0ef0ad | 121 | #define ONE_BYTE 2 |
EndaKilgarriff | 1:a86efb0ef0ad | 122 | #define TWO_BYTE 3 |
EndaKilgarriff | 1:a86efb0ef0ad | 123 | #define FOUR_BYTES 4 |
EndaKilgarriff | 1:a86efb0ef0ad | 124 | |
EndaKilgarriff | 1:a86efb0ef0ad | 125 | #define STOP_BIT 1 |
EndaKilgarriff | 1:a86efb0ef0ad | 126 | #define NO_STOP_BIT 0 |
EndaKilgarriff | 1:a86efb0ef0ad | 127 | |
EndaKilgarriff | 1:a86efb0ef0ad | 128 | /******************************************************************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 129 | /*************************** Types Declarations *******************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 130 | /******************************************************************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 131 | |
EndaKilgarriff | 1:a86efb0ef0ad | 132 | enum comm_type { |
EndaKilgarriff | 1:a86efb0ef0ad | 133 | SPI, |
EndaKilgarriff | 1:a86efb0ef0ad | 134 | I2C, |
EndaKilgarriff | 1:a86efb0ef0ad | 135 | }; |
EndaKilgarriff | 1:a86efb0ef0ad | 136 | |
EndaKilgarriff | 1:a86efb0ef0ad | 137 | struct adt7420_chip_info{ |
EndaKilgarriff | 1:a86efb0ef0ad | 138 | uint8_t resolution; |
EndaKilgarriff | 1:a86efb0ef0ad | 139 | enum comm_type communication; |
EndaKilgarriff | 1:a86efb0ef0ad | 140 | }; |
EndaKilgarriff | 1:a86efb0ef0ad | 141 | |
EndaKilgarriff | 1:a86efb0ef0ad | 142 | enum adt7420_type { |
EndaKilgarriff | 1:a86efb0ef0ad | 143 | ID_ADT7410, |
EndaKilgarriff | 1:a86efb0ef0ad | 144 | ID_ADT7420, |
EndaKilgarriff | 1:a86efb0ef0ad | 145 | ID_ADT7422, |
EndaKilgarriff | 1:a86efb0ef0ad | 146 | ID_ADT7310, |
EndaKilgarriff | 1:a86efb0ef0ad | 147 | ID_ADT7311, |
EndaKilgarriff | 1:a86efb0ef0ad | 148 | ID_ADT7312, |
EndaKilgarriff | 1:a86efb0ef0ad | 149 | ID_ADT7320 |
EndaKilgarriff | 1:a86efb0ef0ad | 150 | }; |
EndaKilgarriff | 1:a86efb0ef0ad | 151 | |
EndaKilgarriff | 1:a86efb0ef0ad | 152 | struct adt7420_dev { |
EndaKilgarriff | 1:a86efb0ef0ad | 153 | /* I2C */ |
EndaKilgarriff | 1:a86efb0ef0ad | 154 | i2c_desc *i2c_desc; |
EndaKilgarriff | 1:a86efb0ef0ad | 155 | /* SPI */ |
EndaKilgarriff | 1:a86efb0ef0ad | 156 | spi_desc *spi_desc; |
EndaKilgarriff | 1:a86efb0ef0ad | 157 | /* Device Settings */ |
EndaKilgarriff | 1:a86efb0ef0ad | 158 | enum adt7420_type act_device; |
EndaKilgarriff | 1:a86efb0ef0ad | 159 | /* Device Settings */ |
EndaKilgarriff | 1:a86efb0ef0ad | 160 | uint8_t resolution_setting; |
EndaKilgarriff | 1:a86efb0ef0ad | 161 | |
EndaKilgarriff | 1:a86efb0ef0ad | 162 | }; |
EndaKilgarriff | 1:a86efb0ef0ad | 163 | |
EndaKilgarriff | 1:a86efb0ef0ad | 164 | struct adt7420_init_param { |
EndaKilgarriff | 1:a86efb0ef0ad | 165 | /* I2C */ |
EndaKilgarriff | 1:a86efb0ef0ad | 166 | i2c_init_param i2c_init; |
EndaKilgarriff | 1:a86efb0ef0ad | 167 | /* SPI */ |
EndaKilgarriff | 1:a86efb0ef0ad | 168 | spi_init_param spi_init; |
EndaKilgarriff | 1:a86efb0ef0ad | 169 | /* Device Settings */ |
EndaKilgarriff | 1:a86efb0ef0ad | 170 | uint8_t resolution_setting; |
EndaKilgarriff | 1:a86efb0ef0ad | 171 | /* Device Settings */ |
EndaKilgarriff | 1:a86efb0ef0ad | 172 | enum adt7420_type act_device; |
EndaKilgarriff | 1:a86efb0ef0ad | 173 | }; |
EndaKilgarriff | 1:a86efb0ef0ad | 174 | |
EndaKilgarriff | 1:a86efb0ef0ad | 175 | typedef enum { |
EndaKilgarriff | 1:a86efb0ef0ad | 176 | REG_TEMP, // Temperature value |
EndaKilgarriff | 1:a86efb0ef0ad | 177 | REG_STATUS, // status info |
EndaKilgarriff | 1:a86efb0ef0ad | 178 | REG_CONFIG, // Configuration |
EndaKilgarriff | 1:a86efb0ef0ad | 179 | REG_T_CRIT, // Temperature CRIT setpoint (147'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 180 | REG_HIST, // Temperature HYST setpoint (5'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 181 | REG_T_HIGH, // Temperature HIGH setpoint (64'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 182 | REG_T_LOW, // Temperature LOW setpoint (10'C) |
EndaKilgarriff | 1:a86efb0ef0ad | 183 | REG_ID, // ID value |
EndaKilgarriff | 1:a86efb0ef0ad | 184 | REG_RESET |
EndaKilgarriff | 1:a86efb0ef0ad | 185 | } registers_e; |
EndaKilgarriff | 1:a86efb0ef0ad | 186 | |
EndaKilgarriff | 1:a86efb0ef0ad | 187 | /******************************************************************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 188 | /************************ Functions Declarations ******************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 189 | /******************************************************************************/ |
EndaKilgarriff | 1:a86efb0ef0ad | 190 | |
EndaKilgarriff | 1:a86efb0ef0ad | 191 | |
EndaKilgarriff | 1:a86efb0ef0ad | 192 | |
EndaKilgarriff | 1:a86efb0ef0ad | 193 | /*! Reads the value of a register SPI/I2C.*/ |
EndaKilgarriff | 1:a86efb0ef0ad | 194 | uint16_t get_register_value(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 195 | uint8_t register_address); |
EndaKilgarriff | 1:a86efb0ef0ad | 196 | |
EndaKilgarriff | 1:a86efb0ef0ad | 197 | /*! Reads the value of a register SPI/I2C. */ |
EndaKilgarriff | 1:a86efb0ef0ad | 198 | uint16_t adt7420_get_register_value(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 199 | uint8_t register_address); |
EndaKilgarriff | 1:a86efb0ef0ad | 200 | |
EndaKilgarriff | 1:a86efb0ef0ad | 201 | /*! Write to input shift register SPI interface. */ |
EndaKilgarriff | 1:a86efb0ef0ad | 202 | uint16_t set_shift_reg(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 203 | uint8_t register_address, |
EndaKilgarriff | 1:a86efb0ef0ad | 204 | uint8_t *data) ; |
EndaKilgarriff | 1:a86efb0ef0ad | 205 | |
EndaKilgarriff | 1:a86efb0ef0ad | 206 | /*! Sets the value of a register.*/ |
EndaKilgarriff | 1:a86efb0ef0ad | 207 | void set_register_value(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 208 | uint8_t register_address, |
EndaKilgarriff | 1:a86efb0ef0ad | 209 | uint8_t num_data_bytes, |
EndaKilgarriff | 1:a86efb0ef0ad | 210 | uint8_t *data); |
EndaKilgarriff | 1:a86efb0ef0ad | 211 | |
EndaKilgarriff | 1:a86efb0ef0ad | 212 | /*! Initializes the comm. peripheral and checks if the device is present. */ |
EndaKilgarriff | 1:a86efb0ef0ad | 213 | int32_t adt7420_init(struct adt7420_dev **device, |
EndaKilgarriff | 1:a86efb0ef0ad | 214 | struct adt7420_init_param init_param); |
EndaKilgarriff | 1:a86efb0ef0ad | 215 | |
EndaKilgarriff | 1:a86efb0ef0ad | 216 | /* Free the resources allocated by adt7420_init(). */ |
EndaKilgarriff | 1:a86efb0ef0ad | 217 | int32_t adt7420_remove(struct adt7420_dev *dev); |
EndaKilgarriff | 1:a86efb0ef0ad | 218 | |
EndaKilgarriff | 1:a86efb0ef0ad | 219 | /*! Sets the operational mode for ADT7420. */ |
EndaKilgarriff | 1:a86efb0ef0ad | 220 | void adt7420_set_operation_mode(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 221 | uint8_t mode); |
EndaKilgarriff | 1:a86efb0ef0ad | 222 | |
EndaKilgarriff | 1:a86efb0ef0ad | 223 | /*! Sets the resolution for ADT7420. */ |
EndaKilgarriff | 1:a86efb0ef0ad | 224 | void adt7420_set_resolution(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 225 | uint8_t resolution); |
EndaKilgarriff | 1:a86efb0ef0ad | 226 | |
EndaKilgarriff | 1:a86efb0ef0ad | 227 | /*! Resets the SPI or I2C inteface for the ADT7420/ADT7320*/ |
EndaKilgarriff | 1:a86efb0ef0ad | 228 | void adt7420_reset_interface(struct adt7420_dev *dev); |
EndaKilgarriff | 1:a86efb0ef0ad | 229 | |
EndaKilgarriff | 1:a86efb0ef0ad | 230 | /*! Reads the temperature data and converts it to Celsius degrees. */ |
EndaKilgarriff | 1:a86efb0ef0ad | 231 | float adt7420_get_temperature(struct adt7420_dev *dev); |
EndaKilgarriff | 1:a86efb0ef0ad | 232 | |
EndaKilgarriff | 1:a86efb0ef0ad | 233 | /*! Writes data to temperature registers*/ |
EndaKilgarriff | 1:a86efb0ef0ad | 234 | uint8_t adt7420_wr_setpoint_reg(struct adt7420_dev *device, |
EndaKilgarriff | 1:a86efb0ef0ad | 235 | uint8_t register_value, |
EndaKilgarriff | 1:a86efb0ef0ad | 236 | uint16_t data); |
EndaKilgarriff | 1:a86efb0ef0ad | 237 | |
EndaKilgarriff | 1:a86efb0ef0ad | 238 | /*! Sets the Fault Queue option for ADT7420/ADT7320.*/ |
EndaKilgarriff | 1:a86efb0ef0ad | 239 | void adt7420_set_fault_queue(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 240 | uint8_t mode); |
EndaKilgarriff | 1:a86efb0ef0ad | 241 | |
EndaKilgarriff | 1:a86efb0ef0ad | 242 | /*! Sets comparator/interrupt (CT/INT) mode for ADT7420/ADT7320.*/ |
EndaKilgarriff | 1:a86efb0ef0ad | 243 | void adt7420_set_ct_int_mode(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 244 | uint8_t setting); |
EndaKilgarriff | 1:a86efb0ef0ad | 245 | |
EndaKilgarriff | 1:a86efb0ef0ad | 246 | /*! Sets output polarity for the pins CT/INT (Critical Temp - Over/Under Temp).*/ |
EndaKilgarriff | 1:a86efb0ef0ad | 247 | void adt7420_set_ct_int_polarity(struct adt7420_dev *dev, |
EndaKilgarriff | 1:a86efb0ef0ad | 248 | uint8_t polarity); |
EndaKilgarriff | 1:a86efb0ef0ad | 249 | |
EndaKilgarriff | 1:a86efb0ef0ad | 250 | #endif /* __ADT7420_H__ */ |