diff options
author | Yuval Peress <peress@chromium.org> | 2021-09-18 10:54:16 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-09-21 02:41:35 +0000 |
commit | 773a0ca0b7d2d7d9aad543e2c894fd4cf363d3cd (patch) | |
tree | f3d4664c41e2849a70148004f48bcfa118050cb0 /zephyr/emul/emul_lis2dw12.c | |
parent | 558b809aae30c8e8e72492bc11831ce0f9aa9d24 (diff) | |
download | chrome-ec-773a0ca0b7d2d7d9aad543e2c894fd4cf363d3cd.tar.gz |
zephyr: test: Test failed write on soft reset register (lis2dw12)
Test the init code path that fails writing the soft reset register.
BRANCH=none
BUG=b:200046770
TEST=zmake configure --test zephyr/test/drivers
Signed-off-by: Yuval Peress <peress@chromium.org>
Change-Id: Ic395c7dd749c4203800b72afbb024919a71d0eae
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3170535
Commit-Queue: Yuval Peress <peress@google.com>
Tested-by: Yuval Peress <peress@google.com>
Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'zephyr/emul/emul_lis2dw12.c')
-rw-r--r-- | zephyr/emul/emul_lis2dw12.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/zephyr/emul/emul_lis2dw12.c b/zephyr/emul/emul_lis2dw12.c index e0ca762a8e..fba6dbe758 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 ctrl2 register */ + uint8_t ctrl2_reg; }; struct lis2dw12_emul_cfg { @@ -49,7 +51,10 @@ void lis2dw12_emul_reset(const struct emul *emul) i2c_common_emul_set_read_fail_reg(lis2dw12_emul_to_i2c_emul(emul), I2C_COMMON_EMUL_NO_FAIL_REG); + i2c_common_emul_set_write_fail_reg(lis2dw12_emul_to_i2c_emul(emul), + I2C_COMMON_EMUL_NO_FAIL_REG); data->who_am_i_reg = LIS2DW12_WHO_AM_I; + data->ctrl2_reg = 0; } void lis2dw12_emul_set_who_am_i(const struct emul *emul, uint8_t who_am_i) @@ -69,6 +74,10 @@ 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_CTRL2_ADDR: + __ASSERT_NO_MSG(bytes == 0); + *val = data->ctrl2_reg; + break; default: return -EINVAL; } @@ -78,10 +87,16 @@ static int lis2dw12_emul_read_byte(struct i2c_emul *emul, int reg, uint8_t *val, static int lis2dw12_emul_write_byte(struct i2c_emul *emul, int reg, uint8_t val, int bytes) { + struct lis2dw12_emul_data *data = LIS2DW12_DATA_FROM_I2C_EMUL(emul); + switch (reg) { case LIS2DW12_WHO_AM_I_REG: LOG_ERR("Can't write to who-am-i register"); return -EINVAL; + case LIS2DW12_CTRL2_ADDR: + __ASSERT_NO_MSG(bytes == 1); + data->ctrl2_reg = val; + break; default: return -EINVAL; } |