mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-27 10:22:08 +00:00
UT for adt7481
This commit is contained in:
@@ -167,5 +167,17 @@ ReturnStatus adt7481_get_therm_hysteresis(const I2C_Dev *i2c_dev,
|
||||
int8_t *tempHysteresisValue);
|
||||
ReturnStatus adt7481_set_therm_hysteresis(const I2C_Dev *i2c_dev,
|
||||
int8_t tempHysteresisValue);
|
||||
ReturnStatus adt7481_set_remote1_temp_therm_limit(const I2C_Dev *i2c_dev,
|
||||
int8_t tempLimitValue);
|
||||
ReturnStatus adt7481_set_remote1_temp_high_limit(const I2C_Dev *i2c_dev,
|
||||
int8_t tempLimitValue);
|
||||
ReturnStatus adt7481_set_remote1_temp_low_limit(const I2C_Dev *i2c_dev,
|
||||
int8_t tempLimitValue);
|
||||
ReturnStatus adt7481_get_remote1_temp_therm_limit(const I2C_Dev *i2c_dev,
|
||||
int8_t *tempLimitValue);
|
||||
ReturnStatus adt7481_get_remote1_temp_high_limit(const I2C_Dev *i2c_dev,
|
||||
int8_t *tempLimitValue);
|
||||
ReturnStatus adt7481_get_remote1_temp_low_limit(const I2C_Dev *i2c_dev,
|
||||
int8_t *tempLimitValue);
|
||||
|
||||
#endif /* ADT7481_H_ */
|
||||
|
||||
@@ -245,11 +245,11 @@ ePostCode adt7481_probe(const I2C_Dev *i2c_dev, POSTData *postData)
|
||||
} else if ((devId == TEMP_ADT7481_DEV_ID) &&
|
||||
(manfId == TEMP_ADT7481_MANF_ID)) {
|
||||
postcode = POST_DEV_FOUND;
|
||||
post_update_POSTData(postData, i2c_dev->bus, i2c_dev->slave_addr,
|
||||
manfId, devId);
|
||||
} else {
|
||||
postcode = POST_DEV_ID_MISMATCH;
|
||||
}
|
||||
post_update_POSTData(postData, i2c_dev->bus, i2c_dev->slave_addr, manfId,
|
||||
devId);
|
||||
return postcode;
|
||||
}
|
||||
|
||||
@@ -1122,7 +1122,7 @@ ReturnStatus adt7481_set_remote1_temp_offset(const I2C_Dev *i2c_dev,
|
||||
int16_t tempOffsetValue)
|
||||
{
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
uint8_t regValue = 0x0000;
|
||||
uint16_t regValue = 0x0000;
|
||||
|
||||
/* Converting Temp limit into the register value */
|
||||
regValue = TEMP_TO_REG_U16(tempOffsetValue);
|
||||
@@ -1132,7 +1132,7 @@ ReturnStatus adt7481_set_remote1_temp_offset(const I2C_Dev *i2c_dev,
|
||||
(uint8_t)regValue);
|
||||
if (status == RETURN_OK) {
|
||||
/* Write MSB data */
|
||||
status = adt7481_raw_write(i2c_dev, ADT7481_REG_W_REMOTE1_OFFSET_L,
|
||||
status = adt7481_raw_write(i2c_dev, ADT7481_REG_W_REMOTE1_OFFSET_H,
|
||||
(uint8_t)(regValue >> 8));
|
||||
}
|
||||
return status;
|
||||
@@ -1162,7 +1162,7 @@ ReturnStatus adt7481_get_remote2_temp_offset(const I2C_Dev *i2c_dev,
|
||||
tempOffsetValue = NULL;
|
||||
} else {
|
||||
/* Read MSB data */
|
||||
status = adt7481_raw_read(i2c_dev, ADT7481_REG_R_REMOTE2_OFFSET_L,
|
||||
status = adt7481_raw_read(i2c_dev, ADT7481_REG_R_REMOTE2_OFFSET_H,
|
||||
&hRegValue);
|
||||
if (status != RETURN_OK) {
|
||||
tempOffsetValue = NULL;
|
||||
@@ -1188,7 +1188,7 @@ ReturnStatus adt7481_set_remote2_temp_offset(const I2C_Dev *i2c_dev,
|
||||
int8_t tempOffsetValue)
|
||||
{
|
||||
ReturnStatus status = RETURN_NOTOK;
|
||||
uint8_t regValue = 0x0000;
|
||||
uint16_t regValue = 0x0000;
|
||||
|
||||
/* Converting Temp limit into the register value */
|
||||
regValue = TEMP_TO_REG_U16(tempOffsetValue);
|
||||
|
||||
@@ -203,6 +203,9 @@ $(PATHB)Test_led$(TARGET_EXTENSION): $(STD_FILES) $(TEST_LED_SRC)
|
||||
TEST_OCMP_LED_SRC=$(OCWARE_ROOT)/src/devices/ocmp_wrappers/ocmp_led.c $(OCWARE_ROOT)/src/devices/led.c $(OCWARE_ROOT)/src/devices/sx1509.c $(OCWARE_ROOT)/src/devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c fake/fake_SX1509_register.c fake/fake_led.c stub/stub_GateMutex.c $(OCWARE_ROOT)/platform/oc-sdr/cfg/OC_CONNECT_LED.c
|
||||
$(PATHB)Test_ocmp_led$(TARGET_EXTENSION): $(STD_FILES) $(TEST_OCMP_LED_SRC)
|
||||
|
||||
TEST_ADT7481_SRC=$(OCWARE_ROOT)/src/devices/adt7481.c $(OCWARE_ROOT)/src/devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c fake/fake_adt7481.c stub/stub_GateMutex.c $(OCWARE_ROOT)/src/post/post_util.c $(OCWARE_ROOT)/platform/oc-sdr/cfg/OC_CONNECT_SDR.c
|
||||
$(PATHB)Test_adt7481$(TARGET_EXTENSION): $(STD_FILES) $(TEST_ADT7481_SRC)
|
||||
|
||||
$(PATHB)%$(TARGET_EXTENSION):
|
||||
$(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@
|
||||
$(COV_CMDS)
|
||||
|
||||
66
firmware/ec/test/fake/fake_adt7481.c
Normal file
66
firmware/ec/test/fake/fake_adt7481.c
Normal file
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
#include "include/test_adt7481.h"
|
||||
|
||||
OcGpio_Port s_fake_io_port = {
|
||||
.fn_table = &FakeGpio_fnTable,
|
||||
.object_data = &(FakeGpio_Obj){},
|
||||
};
|
||||
|
||||
const I2C_Dev adt_invalid_dev = {
|
||||
.bus = 7,
|
||||
.slave_addr = 0x52,
|
||||
};
|
||||
|
||||
const I2C_Dev adt_invalid_bus = {
|
||||
.bus = 3,
|
||||
.slave_addr = 0x2F,
|
||||
};
|
||||
|
||||
uint8_t ADT7481_regs[] = {
|
||||
[ADT7481_REG_LOCAL_TEMP_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_HIGH_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_STATUS_1_R] = 0x00,
|
||||
[ADT7481_REG_CONFIGURATION_1_R] = 0x00,
|
||||
[ADT7481_REG_COVERSION_RATE_CHANNEL_SEL_R] = 0x00,
|
||||
[ADT7481_REG_LOCAL_TEMP_HIGH_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_LOCAL_TEMP_LOW_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_HIGH_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_LOW_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_CONFIGURATION_1_W] = 0x00,
|
||||
[ADT7481_REG_COVERSION_RATE_CHANNEL_SEL_W] = 0x00,
|
||||
[ADT7481_REG_LOCAL_TEMP_HIGH_LIMIT_W] = 0x00,
|
||||
[ADT7481_REG_LOCAL_TEMP_LOW_LIMIT_W] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_HIGH_LIMIT_W] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_LOW_LIMIT_W] = 0x00,
|
||||
[ADT7481_REG_ONE_SHOT_W] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_OFFSET_HIGH_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_OFFSET_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_HIGH_LIMIT_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_TEMP_LOW_LIMIT_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_1_THERM_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_LOCAL_THERM_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_THERM_HYSTERESIS_R] = 0x00,
|
||||
[ADT7481_REG_CONSECUTIVE_ALERT_R] = 0x00,
|
||||
[ADT7481_REG_STATUS_2_R] = 0x00,
|
||||
[ADT7481_REG_CONFIGURATION_2_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_HIGH_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_HIGH_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_LOW_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_OFFSET_HIGH_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_OFFSET_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_HIGH_LIMIT_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_TEMP_LOW_LIMIT_LOW_BYTE_R] = 0x00,
|
||||
[ADT7481_REG_REMOTE_2_THERM_LIMIT_R] = 0x00,
|
||||
[ADT7481_REG_DEVICE_ID_R] = 0x00,
|
||||
[ADT7481_REG_MAN_ID_R] = 0x00,
|
||||
[ADT7481_REG_END] = 0x00,
|
||||
};
|
||||
100
firmware/ec/test/include/test_adt7481.h
Normal file
100
firmware/ec/test/include/test_adt7481.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/**
|
||||
* Copyright (c) 2017-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
#ifndef _TEST_ADT7481_H
|
||||
#define _TEST_ADT7481_H
|
||||
|
||||
#include "fake/fake_GPIO.h"
|
||||
#include "fake/fake_I2C.h"
|
||||
#include "fake/fake_ThreadedISR.h"
|
||||
#include "inc/devices/adt7481.h"
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include "unity.h"
|
||||
|
||||
#define ADT7481_CONFIG1_SET_VALUE 0x59
|
||||
#define ADT7481_CONFIG1_VALUE 0x58
|
||||
#define ADT7481_COVERSION_RATE_CHANNEL_SEL 0x61
|
||||
#define ADT7481_DEFAULT_VAL 0xFF
|
||||
#define ADT7481_INVALID_DEV_ID 0x80
|
||||
#define ADT7481_INVALID_MANF_ID 0x40
|
||||
#define ADT7481_LOCAL_TEMP_R_VAL 0x63
|
||||
#define ADT7481_REMOTE_1_TEMP_HIGH_BYTE_R_VAL 0x54
|
||||
#define ADT7481_REMOTE_1_TEMP_LOW_BYTE_R_VAL 0x65
|
||||
#define ADT7481_REMOTE_2_TEMP_HIGH_BYTE_R_VAL 0x73
|
||||
#define ADT7481_REMOTE_2_TEMP_LOW_BYTE_R_VAL 0x67
|
||||
#define ADT7481_SET_COVERSION_RATE_CHANNEL_SEL 0x62
|
||||
#define ADT7481_SET_LOCAL_TEMP_LIMIT1 -63
|
||||
#define ADT7481_SET_LOCAL_TEMP_LIMIT2 -62
|
||||
#define ADT7481_SET_LOCAL_TEMP_LIMIT3 -61
|
||||
#define ADT7481_SET_LOCAL_TEMP_LIMIT4 -60
|
||||
#define ADT7481_STATUS_1_R_VAL 0x63
|
||||
#define ADT7481_STATUS_2_R_VAL 0x64
|
||||
#define ADT7481_TEMP_LIMIT1 0x41
|
||||
#define ADT7481_TEMP_LIMIT2 0x42
|
||||
#define ADT7481_TEMP_LIMIT3 0x43
|
||||
#define ADT7481_TEMP_LIMIT4 0x44
|
||||
#define ADT7481_REMOTE_TEMP_LIMIT 0x62
|
||||
#define ADT7481_REMOTE_1_TEMP_HIGH_LIMIT_LOW_BYTE_R_VAl 0x1A
|
||||
#define ADT7481_REMOTE_1_TEMP_HIGH_LIMIT_R_VAL 0x50
|
||||
#define ADT7481_REMOTE_1_THER_LIMIT_R_VAL 0x85
|
||||
#define ADT7481_REMOTE_1_TEMP_LOW_LIMIT_LOW_BYTE_R_VAL 0x67
|
||||
#define ADT7481_REMOTE_1_TEMP_LOW_LIMIT_R_VAL 0x89
|
||||
#define ADT7481_REMOTE_1_TEMP_OFFSET_HIGH_BYTE_R 0x70
|
||||
#define ADT7481_REMOTE_1_TEMP_OFFSET_LOW_BYTE_R 0x67
|
||||
#define ADT7481_REMOTE_2_TEMP_LIMIT 0x90
|
||||
#define CONF_TEMP_ADT7481_INVALID_PARAM 4
|
||||
#define POST_DATA_NULL 0x00
|
||||
#define REG_U8_TO_TEMP(y) (y - 64)
|
||||
#define REG_U16_TO_TEMP(y) (y - 64)
|
||||
#define TEMP_TO_REG_U8(x) (x + 64)
|
||||
#define TEMP_TO_REG_U16(x) ((x + 64) << 8)
|
||||
|
||||
typedef enum ADT7481Regs {
|
||||
ADT7481_REG_LOCAL_TEMP_R = 0x00,
|
||||
ADT7481_REG_REMOTE_1_TEMP_HIGH_BYTE_R,
|
||||
ADT7481_REG_STATUS_1_R,
|
||||
ADT7481_REG_CONFIGURATION_1_R,
|
||||
ADT7481_REG_COVERSION_RATE_CHANNEL_SEL_R,
|
||||
ADT7481_REG_LOCAL_TEMP_HIGH_LIMIT_R,
|
||||
ADT7481_REG_LOCAL_TEMP_LOW_LIMIT_R,
|
||||
ADT7481_REG_REMOTE_1_TEMP_HIGH_LIMIT_R,
|
||||
ADT7481_REG_REMOTE_1_TEMP_LOW_LIMIT_R,
|
||||
ADT7481_REG_CONFIGURATION_1_W,
|
||||
ADT7481_REG_COVERSION_RATE_CHANNEL_SEL_W,
|
||||
ADT7481_REG_LOCAL_TEMP_HIGH_LIMIT_W,
|
||||
ADT7481_REG_LOCAL_TEMP_LOW_LIMIT_W,
|
||||
ADT7481_REG_REMOTE_1_TEMP_HIGH_LIMIT_W,
|
||||
ADT7481_REG_REMOTE_1_TEMP_LOW_LIMIT_W,
|
||||
ADT7481_REG_ONE_SHOT_W,
|
||||
ADT7481_REG_REMOTE_1_TEMP_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_1_TEMP_OFFSET_HIGH_BYTE_R,
|
||||
ADT7481_REG_REMOTE_1_TEMP_OFFSET_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_1_TEMP_HIGH_LIMIT_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_1_TEMP_LOW_LIMIT_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_1_THERM_LIMIT_R = 0x19,
|
||||
ADT7481_REG_LOCAL_THERM_LIMIT_R = 0x20,
|
||||
ADT7481_REG_THERM_HYSTERESIS_R,
|
||||
ADT7481_REG_CONSECUTIVE_ALERT_R,
|
||||
ADT7481_REG_STATUS_2_R,
|
||||
ADT7481_REG_CONFIGURATION_2_R,
|
||||
ADT7481_REG_REMOTE_2_TEMP_HIGH_BYTE_R = 0x30,
|
||||
ADT7481_REG_REMOTE_2_TEMP_HIGH_LIMIT_R,
|
||||
ADT7481_REG_REMOTE_2_TEMP_LOW_LIMIT_R,
|
||||
ADT7481_REG_REMOTE_2_TEMP_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_2_TEMP_OFFSET_HIGH_BYTE_R,
|
||||
ADT7481_REG_REMOTE_2_TEMP_OFFSET_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_2_TEMP_HIGH_LIMIT_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_2_TEMP_LOW_LIMIT_LOW_BYTE_R,
|
||||
ADT7481_REG_REMOTE_2_THERM_LIMIT_R = 0x39,
|
||||
ADT7481_REG_DEVICE_ID_R = 0x3D,
|
||||
ADT7481_REG_MAN_ID_R,
|
||||
ADT7481_REG_END = 0xFF,
|
||||
} ADT7481Regs;
|
||||
|
||||
#endif
|
||||
1001
firmware/ec/test/suites/Test_adt7481.c
Normal file
1001
firmware/ec/test/suites/Test_adt7481.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user