diff options
author | Tristan Honscheid <honscheid@google.com> | 2021-11-22 12:32:47 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-23 20:42:14 +0000 |
commit | f5881fb511db49bf4521b7a163b29717c0e75142 (patch) | |
tree | ce90ac3bf5193b628e536d345cc1badda1d71a00 | |
parent | 1b1f3402ad93d5ca12e94ab17548704bebd25707 (diff) | |
download | chrome-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.c | 11 |
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; |