summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Honscheid <honscheid@google.com>2021-11-22 12:32:47 -0700
committerCommit Bot <commit-bot@chromium.org>2021-11-23 20:42:14 +0000
commitf5881fb511db49bf4521b7a163b29717c0e75142 (patch)
treece90ac3bf5193b628e536d345cc1badda1d71a00
parent1b1f3402ad93d5ca12e94ab17548704bebd25707 (diff)
downloadchrome-ec-f5881fb511db49bf4521b7a163b29717c0e75142.tar.gz
zephyr: lis2dw12: Add register to emulator
Update the emulator to handle the CTRL1 and add an assert message when attempting to access unsupported registers BRANCH=None BUG=b:200046770 TEST=zmake -D configure --test test-drivers Signed-off-by: Tristan Honscheid <honscheid@google.com> Change-Id: I446e8170a94ce99ea42c4947827470e472887ab2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3296682 Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r--zephyr/emul/emul_lis2dw12.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/zephyr/emul/emul_lis2dw12.c b/zephyr/emul/emul_lis2dw12.c
index 07fba6091f..53c3a8d951 100644
--- a/zephyr/emul/emul_lis2dw12.c
+++ b/zephyr/emul/emul_lis2dw12.c
@@ -29,6 +29,8 @@ struct lis2dw12_emul_data {
struct i2c_common_emul_data common;
/** Emulated who-am-i register */
uint8_t who_am_i_reg;
+ /** Emulated ctrl1 register */
+ uint8_t ctrl1_reg;
/** Emulated ctrl2 register */
uint8_t ctrl2_reg;
/** Soft reset count */
@@ -87,11 +89,16 @@ static int lis2dw12_emul_read_byte(struct i2c_emul *emul, int reg, uint8_t *val,
__ASSERT_NO_MSG(bytes == 0);
*val = data->who_am_i_reg;
break;
+ case LIS2DW12_CTRL1_ADDR:
+ __ASSERT_NO_MSG(bytes == 0);
+ *val = data->ctrl1_reg;
+ break;
case LIS2DW12_CTRL2_ADDR:
__ASSERT_NO_MSG(bytes == 0);
*val = data->ctrl2_reg;
break;
default:
+ __ASSERT(false, "No read handler for register 0x%02x", reg);
return -EINVAL;
}
return 0;
@@ -106,6 +113,9 @@ static int lis2dw12_emul_write_byte(struct i2c_emul *emul, int reg, uint8_t val,
case LIS2DW12_WHO_AM_I_REG:
LOG_ERR("Can't write to who-am-i register");
return -EINVAL;
+ case LIS2DW12_CTRL1_ADDR:
+ data->ctrl1_reg = val;
+ break;
case LIS2DW12_CTRL2_ADDR:
__ASSERT_NO_MSG(bytes == 1);
if ((val & LIS2DW12_SOFT_RESET_MASK) != 0) {
@@ -115,6 +125,7 @@ static int lis2dw12_emul_write_byte(struct i2c_emul *emul, int reg, uint8_t val,
data->ctrl2_reg = val & ~LIS2DW12_SOFT_RESET_MASK;
break;
default:
+ __ASSERT(false, "No write handler for register 0x%02x", reg);
return -EINVAL;
}
return 0;