Example program for EVAL-TempSense-ARDZ boards.

Dependencies:   platform_drivers

Committer:
Kjansen
Date:
Fri Sep 24 15:22:13 2021 +0100
Revision:
7:3e5f6cca357e
1.) Updated the project repository structure
2.) Made modifications in the code to align with the latest no-OS drivers and the platform drivers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kjansen 7:3e5f6cca357e 1 /***************************************************************************//**
Kjansen 7:3e5f6cca357e 2 * @file adt7xxx_support.c
Kjansen 7:3e5f6cca357e 3 * @brief Support Source File for adt7xxx
Kjansen 7:3e5f6cca357e 4 ********************************************************************************
Kjansen 7:3e5f6cca357e 5 * Copyright (c) 2021 Analog Devices, Inc.
Kjansen 7:3e5f6cca357e 6 * All rights reserved.
Kjansen 7:3e5f6cca357e 7 *
Kjansen 7:3e5f6cca357e 8 * This software is proprietary to Analog Devices, Inc. and its licensors.
Kjansen 7:3e5f6cca357e 9 * By using this software you agree to the terms of the associated
Kjansen 7:3e5f6cca357e 10 * Analog Devices Software License Agreement.
Kjansen 7:3e5f6cca357e 11 *******************************************************************************/
Kjansen 7:3e5f6cca357e 12
Kjansen 7:3e5f6cca357e 13 /******************************************************************************/
Kjansen 7:3e5f6cca357e 14 /***************************** Include Files **********************************/
Kjansen 7:3e5f6cca357e 15 /******************************************************************************/
Kjansen 7:3e5f6cca357e 16
Kjansen 7:3e5f6cca357e 17 #include <stdint.h>
Kjansen 7:3e5f6cca357e 18 #include "adt7420.h"
Kjansen 7:3e5f6cca357e 19 #include "error.h"
Kjansen 7:3e5f6cca357e 20 #include "adt7xxx_support.h"
Kjansen 7:3e5f6cca357e 21
Kjansen 7:3e5f6cca357e 22 /******************************************************************************/
Kjansen 7:3e5f6cca357e 23 /********************** Macros and Constants Definitions **********************/
Kjansen 7:3e5f6cca357e 24 /******************************************************************************/
Kjansen 7:3e5f6cca357e 25
Kjansen 7:3e5f6cca357e 26 /******************************************************************************/
Kjansen 7:3e5f6cca357e 27 /************************ Functions Definitions *******************************/
Kjansen 7:3e5f6cca357e 28 /******************************************************************************/
Kjansen 7:3e5f6cca357e 29
Kjansen 7:3e5f6cca357e 30 /***************************************************************************//**
Kjansen 7:3e5f6cca357e 31 * @brief Reads the value of a register SPI/I2C.
Kjansen 7:3e5f6cca357e 32 *
Kjansen 7:3e5f6cca357e 33 * @param dev - The device structure.
Kjansen 7:3e5f6cca357e 34 * @param register_address - Address of the register.
Kjansen 7:3e5f6cca357e 35 *
Kjansen 7:3e5f6cca357e 36 * @return register_value - Value of the register.
Kjansen 7:3e5f6cca357e 37 *******************************************************************************/
Kjansen 7:3e5f6cca357e 38 uint16_t adt7420_get_register_address_and_value(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 39 uint8_t register_address)
Kjansen 7:3e5f6cca357e 40 {
Kjansen 7:3e5f6cca357e 41 uint16_t register_value = 0;
Kjansen 7:3e5f6cca357e 42
Kjansen 7:3e5f6cca357e 43 //remap register map
Kjansen 7:3e5f6cca357e 44 if(adt7420_is_spi(dev)) {
Kjansen 7:3e5f6cca357e 45 switch (register_address) {
Kjansen 7:3e5f6cca357e 46 case REG_TEMP:
Kjansen 7:3e5f6cca357e 47 register_address = ADT7320_REG_TEMP;
Kjansen 7:3e5f6cca357e 48 break; // Temperature value
Kjansen 7:3e5f6cca357e 49 case REG_STATUS :
Kjansen 7:3e5f6cca357e 50 register_address = ADT7320_REG_STATUS;
Kjansen 7:3e5f6cca357e 51 break; // status info
Kjansen 7:3e5f6cca357e 52 case REG_CONFIG :
Kjansen 7:3e5f6cca357e 53 register_address = ADT7320_REG_CONFIG;
Kjansen 7:3e5f6cca357e 54 break; // Configuration
Kjansen 7:3e5f6cca357e 55 case REG_T_CRIT :
Kjansen 7:3e5f6cca357e 56 register_address = ADT7320_REG_T_CRIT;
Kjansen 7:3e5f6cca357e 57 break; // Temperature CRIT setpoint (147'C)
Kjansen 7:3e5f6cca357e 58 case REG_HIST :
Kjansen 7:3e5f6cca357e 59 register_address = ADT7320_REG_HIST;
Kjansen 7:3e5f6cca357e 60 break; // Temperature HYST setpoint (5'C)
Kjansen 7:3e5f6cca357e 61 case REG_T_HIGH :
Kjansen 7:3e5f6cca357e 62 register_address = ADT7320_REG_T_HIGH;
Kjansen 7:3e5f6cca357e 63 break; // Temperature HIGH setpoint (64'C)
Kjansen 7:3e5f6cca357e 64 case REG_T_LOW :
Kjansen 7:3e5f6cca357e 65 register_address = ADT7320_REG_T_LOW;
Kjansen 7:3e5f6cca357e 66 break; // Temperature LOW setpoint (10'C)
Kjansen 7:3e5f6cca357e 67 case REG_ID :
Kjansen 7:3e5f6cca357e 68 register_address = ADT7320_REG_ID;
Kjansen 7:3e5f6cca357e 69 break; // ID value
Kjansen 7:3e5f6cca357e 70 }
Kjansen 7:3e5f6cca357e 71 register_value = adt7420_get_register_value(dev, register_address);
Kjansen 7:3e5f6cca357e 72 } else {
Kjansen 7:3e5f6cca357e 73 switch (register_address) {
Kjansen 7:3e5f6cca357e 74 case REG_TEMP: {
Kjansen 7:3e5f6cca357e 75 register_value = adt7420_get_register_value(dev,
Kjansen 7:3e5f6cca357e 76 ADT7420_REG_TEMP_MSB) << 8;
Kjansen 7:3e5f6cca357e 77 register_value |= adt7420_get_register_value(dev, ADT7420_REG_TEMP_LSB);
Kjansen 7:3e5f6cca357e 78 break;
Kjansen 7:3e5f6cca357e 79 }
Kjansen 7:3e5f6cca357e 80 case REG_STATUS:
Kjansen 7:3e5f6cca357e 81 register_value = adt7420_get_register_value(dev, ADT7420_REG_STATUS);
Kjansen 7:3e5f6cca357e 82 break;
Kjansen 7:3e5f6cca357e 83 case REG_CONFIG:
Kjansen 7:3e5f6cca357e 84 register_value = adt7420_get_register_value(dev, ADT7420_REG_CONFIG);
Kjansen 7:3e5f6cca357e 85 break;
Kjansen 7:3e5f6cca357e 86 case REG_T_HIGH: {
Kjansen 7:3e5f6cca357e 87 register_value = adt7420_get_register_value(dev,
Kjansen 7:3e5f6cca357e 88 ADT7420_REG_T_HIGH_MSB) << 8;
Kjansen 7:3e5f6cca357e 89 register_value |= adt7420_get_register_value(dev, ADT7420_REG_T_HIGH_LSB);
Kjansen 7:3e5f6cca357e 90 break;
Kjansen 7:3e5f6cca357e 91 }
Kjansen 7:3e5f6cca357e 92 case REG_T_LOW: {
Kjansen 7:3e5f6cca357e 93 register_value = adt7420_get_register_value(dev,
Kjansen 7:3e5f6cca357e 94 ADT7420_REG_T_LOW_MSB) << 8;
Kjansen 7:3e5f6cca357e 95 register_value |= adt7420_get_register_value(dev, ADT7420_REG_T_LOW_LSB);
Kjansen 7:3e5f6cca357e 96 break;
Kjansen 7:3e5f6cca357e 97 }
Kjansen 7:3e5f6cca357e 98 case REG_T_CRIT: {
Kjansen 7:3e5f6cca357e 99 register_value = adt7420_get_register_value(dev,
Kjansen 7:3e5f6cca357e 100 ADT7420_REG_T_CRIT_MSB) << 8;
Kjansen 7:3e5f6cca357e 101 register_value |= adt7420_get_register_value(dev, ADT7420_REG_T_CRIT_LSB);
Kjansen 7:3e5f6cca357e 102 break;
Kjansen 7:3e5f6cca357e 103 }
Kjansen 7:3e5f6cca357e 104 case REG_HIST:
Kjansen 7:3e5f6cca357e 105 register_value = adt7420_get_register_value(dev, ADT7420_REG_HIST);
Kjansen 7:3e5f6cca357e 106 break;
Kjansen 7:3e5f6cca357e 107 case REG_ID:
Kjansen 7:3e5f6cca357e 108 register_value = adt7420_get_register_value(dev, ADT7420_REG_ID);
Kjansen 7:3e5f6cca357e 109 break;
Kjansen 7:3e5f6cca357e 110 }
Kjansen 7:3e5f6cca357e 111 }
Kjansen 7:3e5f6cca357e 112 return register_value;
Kjansen 7:3e5f6cca357e 113 }
Kjansen 7:3e5f6cca357e 114
Kjansen 7:3e5f6cca357e 115
Kjansen 7:3e5f6cca357e 116 /**************************************************************************//**
Kjansen 7:3e5f6cca357e 117 * @brief Configure write typev register based on communication interface.
Kjansen 7:3e5f6cca357e 118 *
Kjansen 7:3e5f6cca357e 119 * @param dev - The device structure.
Kjansen 7:3e5f6cca357e 120 * @param register_address - Register type.
Kjansen 7:3e5f6cca357e 121 *
Kjansen 7:3e5f6cca357e 122 * @return register_address - Register Address.
Kjansen 7:3e5f6cca357e 123 ******************************************************************************/
Kjansen 7:3e5f6cca357e 124 uint16_t configure_write_type_registers(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 125 uint8_t register_address)
Kjansen 7:3e5f6cca357e 126 {
Kjansen 7:3e5f6cca357e 127 if (adt7420_is_spi(dev)) {
Kjansen 7:3e5f6cca357e 128 //simple address re-map for SPI devices
Kjansen 7:3e5f6cca357e 129 switch(register_address) {
Kjansen 7:3e5f6cca357e 130 case REG_TEMP:
Kjansen 7:3e5f6cca357e 131 register_address = ADT7320_REG_TEMP;
Kjansen 7:3e5f6cca357e 132 break; // Temperature value
Kjansen 7:3e5f6cca357e 133 case REG_STATUS :
Kjansen 7:3e5f6cca357e 134 register_address = ADT7320_REG_STATUS;
Kjansen 7:3e5f6cca357e 135 break; // status info
Kjansen 7:3e5f6cca357e 136 case REG_CONFIG :
Kjansen 7:3e5f6cca357e 137 register_address = ADT7320_REG_CONFIG;
Kjansen 7:3e5f6cca357e 138 break; // Configuration
Kjansen 7:3e5f6cca357e 139 case REG_T_CRIT :
Kjansen 7:3e5f6cca357e 140 register_address = ADT7320_REG_T_CRIT;
Kjansen 7:3e5f6cca357e 141 break; // Temperature CRIT setpoint (147'C)
Kjansen 7:3e5f6cca357e 142 case REG_HIST :
Kjansen 7:3e5f6cca357e 143 register_address = ADT7320_REG_HIST;
Kjansen 7:3e5f6cca357e 144 break; // Temperature HYST setpoint (5'C)
Kjansen 7:3e5f6cca357e 145 case REG_T_HIGH :
Kjansen 7:3e5f6cca357e 146 register_address = ADT7320_REG_T_HIGH;
Kjansen 7:3e5f6cca357e 147 break; // Temperature HIGH setpoint (64'C)
Kjansen 7:3e5f6cca357e 148 case REG_T_LOW :
Kjansen 7:3e5f6cca357e 149 register_address = ADT7320_REG_T_LOW;
Kjansen 7:3e5f6cca357e 150 break; // Temperature LOW setpoint (10'C)
Kjansen 7:3e5f6cca357e 151 case REG_ID :
Kjansen 7:3e5f6cca357e 152 register_address = ADT7320_REG_ID;
Kjansen 7:3e5f6cca357e 153 break; // ID value
Kjansen 7:3e5f6cca357e 154 }
Kjansen 7:3e5f6cca357e 155 } else {
Kjansen 7:3e5f6cca357e 156 //simple address re-map for I2Cdevices
Kjansen 7:3e5f6cca357e 157 switch(register_address) {
Kjansen 7:3e5f6cca357e 158 case REG_TEMP:
Kjansen 7:3e5f6cca357e 159 register_address = ADT7420_REG_T_HIGH_MSB;
Kjansen 7:3e5f6cca357e 160 break; // Temperature value
Kjansen 7:3e5f6cca357e 161 case REG_STATUS :
Kjansen 7:3e5f6cca357e 162 register_address = ADT7420_REG_STATUS;
Kjansen 7:3e5f6cca357e 163 break; // status info
Kjansen 7:3e5f6cca357e 164 case REG_CONFIG :
Kjansen 7:3e5f6cca357e 165 register_address = ADT7420_REG_CONFIG;
Kjansen 7:3e5f6cca357e 166 break; // Configuration
Kjansen 7:3e5f6cca357e 167 case REG_T_CRIT :
Kjansen 7:3e5f6cca357e 168 register_address = ADT7420_REG_T_CRIT_MSB;
Kjansen 7:3e5f6cca357e 169 break; // Temperature CRIT setpoint (147'C)
Kjansen 7:3e5f6cca357e 170 case REG_HIST :
Kjansen 7:3e5f6cca357e 171 register_address = ADT7420_REG_HIST;
Kjansen 7:3e5f6cca357e 172 break; // Temperature HYST setpoint (5'C)
Kjansen 7:3e5f6cca357e 173 case REG_T_HIGH :
Kjansen 7:3e5f6cca357e 174 register_address = ADT7420_REG_T_HIGH_MSB;
Kjansen 7:3e5f6cca357e 175 break; // Temperature HIGH setpoint (64'C)
Kjansen 7:3e5f6cca357e 176 case REG_T_LOW :
Kjansen 7:3e5f6cca357e 177 register_address = ADT7420_REG_T_LOW_MSB;
Kjansen 7:3e5f6cca357e 178 break; // Temperature LOW setpoint (10'C)
Kjansen 7:3e5f6cca357e 179 case REG_ID :
Kjansen 7:3e5f6cca357e 180 register_address = ADT7420_REG_ID;
Kjansen 7:3e5f6cca357e 181 break; // ID value
Kjansen 7:3e5f6cca357e 182 }
Kjansen 7:3e5f6cca357e 183 }
Kjansen 7:3e5f6cca357e 184
Kjansen 7:3e5f6cca357e 185 return register_address;
Kjansen 7:3e5f6cca357e 186 }
Kjansen 7:3e5f6cca357e 187
Kjansen 7:3e5f6cca357e 188 /**************************************************************************//**
Kjansen 7:3e5f6cca357e 189 * @brief Write to a setpoint register.
Kjansen 7:3e5f6cca357e 190 *
Kjansen 7:3e5f6cca357e 191 * @param dev - The device structure.
Kjansen 7:3e5f6cca357e 192 * @param register_value - Command control bits.
Kjansen 7:3e5f6cca357e 193 * @param data - Data to be written in input register.
Kjansen 7:3e5f6cca357e 194 *
Kjansen 7:3e5f6cca357e 195 * @return read_back_data - value read from register.
Kjansen 7:3e5f6cca357e 196 ******************************************************************************/
Kjansen 7:3e5f6cca357e 197 uint8_t adt7420_wr_setpoint_reg(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 198 uint8_t register_value,
Kjansen 7:3e5f6cca357e 199 uint16_t data)
Kjansen 7:3e5f6cca357e 200 {
Kjansen 7:3e5f6cca357e 201 uint16_t read_back_data = 0;
Kjansen 7:3e5f6cca357e 202 uint8_t address, num_bytes;
Kjansen 7:3e5f6cca357e 203 uint8_t data_buffer[3] = { 0, 0, 0 };
Kjansen 7:3e5f6cca357e 204
Kjansen 7:3e5f6cca357e 205 switch (register_value) {
Kjansen 7:3e5f6cca357e 206 case REG_T_CRIT:
Kjansen 7:3e5f6cca357e 207 case REG_T_HIGH:
Kjansen 7:3e5f6cca357e 208 case REG_T_LOW: {
Kjansen 7:3e5f6cca357e 209 num_bytes = 3;
Kjansen 7:3e5f6cca357e 210 data_buffer[0] = ((data & ADT7420_MSB_MASK) >> ADT7420_MSB_OFFSET);
Kjansen 7:3e5f6cca357e 211 data_buffer[1] = data & ADT7420_LSB_MASK;
Kjansen 7:3e5f6cca357e 212 break;
Kjansen 7:3e5f6cca357e 213 }
Kjansen 7:3e5f6cca357e 214 case REG_HIST: {
Kjansen 7:3e5f6cca357e 215 num_bytes = 2;
Kjansen 7:3e5f6cca357e 216 data_buffer[0] = data & ADT7420_LSB_MASK;
Kjansen 7:3e5f6cca357e 217 break;
Kjansen 7:3e5f6cca357e 218 }
Kjansen 7:3e5f6cca357e 219 }
Kjansen 7:3e5f6cca357e 220
Kjansen 7:3e5f6cca357e 221 address = configure_write_type_registers(dev, register_value);
Kjansen 7:3e5f6cca357e 222 set_register_value(dev, address, num_bytes, data_buffer, ADT7420_MASK_SET_PT_REGISTER, 0x00);
Kjansen 7:3e5f6cca357e 223 read_back_data = adt7420_get_register_value(dev, address);
Kjansen 7:3e5f6cca357e 224
Kjansen 7:3e5f6cca357e 225 if (register_value == REG_HIST) {
Kjansen 7:3e5f6cca357e 226 data &= 0x000F; //msbits are all low for HIST register
Kjansen 7:3e5f6cca357e 227 read_back_data &= 0x000F; //msbits are all low for HIST register
Kjansen 7:3e5f6cca357e 228 }
Kjansen 7:3e5f6cca357e 229
Kjansen 7:3e5f6cca357e 230 return read_back_data == data ? SUCCESS : FAILURE;
Kjansen 7:3e5f6cca357e 231 }
Kjansen 7:3e5f6cca357e 232
Kjansen 7:3e5f6cca357e 233 /***************************************************************************//**
Kjansen 7:3e5f6cca357e 234 * @brief Sets the Fault Queue option for ADT7420/ADT7320.
Kjansen 7:3e5f6cca357e 235 *
Kjansen 7:3e5f6cca357e 236 * @param dev - The device structure.
Kjansen 7:3e5f6cca357e 237 * @param mode - Fault Queue selection.
Kjansen 7:3e5f6cca357e 238 * Example: 1 - 1 fault (default).
Kjansen 7:3e5f6cca357e 239 * 2 - 2 faults.
Kjansen 7:3e5f6cca357e 240 * 3 - 3 faults.
Kjansen 7:3e5f6cca357e 241 * 4 - 4 faults.
Kjansen 7:3e5f6cca357e 242 *
Kjansen 7:3e5f6cca357e 243 * @return None.
Kjansen 7:3e5f6cca357e 244 *******************************************************************************/
Kjansen 7:3e5f6cca357e 245 void adt7420_set_fault_queue(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 246 uint8_t mode)
Kjansen 7:3e5f6cca357e 247 {
Kjansen 7:3e5f6cca357e 248 uint8_t register_value[1] = { 0 };
Kjansen 7:3e5f6cca357e 249 uint8_t address;
Kjansen 7:3e5f6cca357e 250
Kjansen 7:3e5f6cca357e 251 if (adt7420_is_spi(dev)) {
Kjansen 7:3e5f6cca357e 252 address = ADT7320_REG_CONFIG;
Kjansen 7:3e5f6cca357e 253 register_value[0] = adt7420_get_register_value(dev, ADT7320_REG_CONFIG);
Kjansen 7:3e5f6cca357e 254 } else {
Kjansen 7:3e5f6cca357e 255 address = ADT7420_REG_CONFIG;
Kjansen 7:3e5f6cca357e 256 register_value[0] = adt7420_get_register_value(dev, ADT7420_REG_CONFIG);
Kjansen 7:3e5f6cca357e 257 }
Kjansen 7:3e5f6cca357e 258
Kjansen 7:3e5f6cca357e 259 set_register_value(dev, address, 2, register_value,
Kjansen 7:3e5f6cca357e 260 ADT7420_CONFIG_FAULT_QUEUE(ADT7420_FAULT_QUEUE_4_FAULTS),
Kjansen 7:3e5f6cca357e 261 ADT7420_CONFIG_FAULT_QUEUE(mode));
Kjansen 7:3e5f6cca357e 262 }
Kjansen 7:3e5f6cca357e 263
Kjansen 7:3e5f6cca357e 264 /***************************************************************************//**
Kjansen 7:3e5f6cca357e 265 * @brief Sets comparator/interrupt (CT/INT) mode for ADT7420/ADT7320.
Kjansen 7:3e5f6cca357e 266 *
Kjansen 7:3e5f6cca357e 267 * @param dev - The device structure.
Kjansen 7:3e5f6cca357e 268 * @param setting - Mode selection.
Kjansen 7:3e5f6cca357e 269 * Example: 0 - Interrupt (default).
Kjansen 7:3e5f6cca357e 270 * 1 - Comparator.
Kjansen 7:3e5f6cca357e 271 *
Kjansen 7:3e5f6cca357e 272 *
Kjansen 7:3e5f6cca357e 273 * @return None.
Kjansen 7:3e5f6cca357e 274 *******************************************************************************/
Kjansen 7:3e5f6cca357e 275 void adt7420_set_ct_int_mode(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 276 uint8_t setting)
Kjansen 7:3e5f6cca357e 277 {
Kjansen 7:3e5f6cca357e 278 uint8_t register_value[1] = { 0 };
Kjansen 7:3e5f6cca357e 279 uint8_t address;
Kjansen 7:3e5f6cca357e 280
Kjansen 7:3e5f6cca357e 281 if (adt7420_is_spi(dev)) {
Kjansen 7:3e5f6cca357e 282 address = ADT7320_REG_CONFIG;
Kjansen 7:3e5f6cca357e 283 register_value[0] = adt7420_get_register_value(dev, ADT7320_REG_CONFIG);
Kjansen 7:3e5f6cca357e 284 } else {
Kjansen 7:3e5f6cca357e 285 address = ADT7420_REG_CONFIG;
Kjansen 7:3e5f6cca357e 286 register_value[0] = adt7420_get_register_value(dev, ADT7420_REG_CONFIG);
Kjansen 7:3e5f6cca357e 287 }
Kjansen 7:3e5f6cca357e 288
Kjansen 7:3e5f6cca357e 289 set_register_value(dev, address,2 ,register_value, ADT7420_CONFIG_INT_CT_MODE,
Kjansen 7:3e5f6cca357e 290 (setting * ADT7420_CONFIG_INT_CT_MODE));
Kjansen 7:3e5f6cca357e 291 }
Kjansen 7:3e5f6cca357e 292
Kjansen 7:3e5f6cca357e 293 /***************************************************************************//**
Kjansen 7:3e5f6cca357e 294 * @brief Sets output polarity for the pins CT/INT (Critical Temp - Over/Under Temp).
Kjansen 7:3e5f6cca357e 295 *
Kjansen 7:3e5f6cca357e 296 * @param dev - The device structure.
Kjansen 7:3e5f6cca357e 297 * @param polarity - Polarity selection.
Kjansen 7:3e5f6cca357e 298 * Example: 0 - Active Low (default).
Kjansen 7:3e5f6cca357e 299 * 1 - Active High.
Kjansen 7:3e5f6cca357e 300 *
Kjansen 7:3e5f6cca357e 301 *
Kjansen 7:3e5f6cca357e 302 * @return None.
Kjansen 7:3e5f6cca357e 303 *******************************************************************************/
Kjansen 7:3e5f6cca357e 304 void adt7420_set_ct_int_polarity(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 305 uint8_t polarity)
Kjansen 7:3e5f6cca357e 306 {
Kjansen 7:3e5f6cca357e 307 uint8_t register_value[1] = { 0 };
Kjansen 7:3e5f6cca357e 308 uint8_t address;
Kjansen 7:3e5f6cca357e 309 uint8_t bit_mask, bit_value;
Kjansen 7:3e5f6cca357e 310
Kjansen 7:3e5f6cca357e 311 if (adt7420_is_spi(dev)) {
Kjansen 7:3e5f6cca357e 312 address = ADT7320_REG_CONFIG;
Kjansen 7:3e5f6cca357e 313 register_value[0] = adt7420_get_register_value(dev, ADT7320_REG_CONFIG);
Kjansen 7:3e5f6cca357e 314 } else {
Kjansen 7:3e5f6cca357e 315 address = ADT7420_REG_CONFIG;
Kjansen 7:3e5f6cca357e 316 register_value[0] = adt7420_get_register_value(dev, ADT7420_REG_CONFIG);
Kjansen 7:3e5f6cca357e 317 register_value[0] = adt7420_get_register_value(dev, ADT7420_REG_CONFIG);
Kjansen 7:3e5f6cca357e 318 }
Kjansen 7:3e5f6cca357e 319
Kjansen 7:3e5f6cca357e 320 bit_mask = (ADT7420_CONFIG_CT_POL) | (ADT7420_CONFIG_INT_POL);
Kjansen 7:3e5f6cca357e 321 bit_value = (polarity * ADT7420_CONFIG_CT_POL) | (polarity *
Kjansen 7:3e5f6cca357e 322 ADT7420_CONFIG_INT_POL);
Kjansen 7:3e5f6cca357e 323
Kjansen 7:3e5f6cca357e 324 set_register_value(dev, address, 2, register_value, bit_mask, bit_value);
Kjansen 7:3e5f6cca357e 325 }