summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/emul/emul_isl923x.c25
-rw-r--r--zephyr/include/emul/emul_isl923x.h2
-rw-r--r--zephyr/test/drivers/src/isl923x.c14
3 files changed, 32 insertions, 9 deletions
diff --git a/zephyr/emul/emul_isl923x.c b/zephyr/emul/emul_isl923x.c
index 399bf167a5..f0a3e67bd0 100644
--- a/zephyr/emul/emul_isl923x.c
+++ b/zephyr/emul/emul_isl923x.c
@@ -11,6 +11,7 @@
#include <drivers/emul.h>
#include <errno.h>
#include <sys/__assert.h>
+#include <ztest.h>
#include "driver/charger/isl923x.h"
#include "driver/charger/isl923x_public.h"
@@ -129,7 +130,13 @@ struct i2c_emul *isl923x_emul_get_i2c_emul(const struct emul *emulator)
return &(data->common.emul);
}
-void isl923x_emul_reset(const struct emul *emulator)
+static void isl923x_emul_reset(struct isl923x_emul_data *data)
+{
+ data->common.write_fail_reg = I2C_COMMON_EMUL_NO_FAIL_REG;
+ data->common.read_fail_reg = I2C_COMMON_EMUL_NO_FAIL_REG;
+}
+
+void isl923x_emul_reset_registers(const struct emul *emulator)
{
struct isl923x_emul_data *data = emulator->data;
struct i2c_common_emul_data common_backup = data->common;
@@ -425,3 +432,19 @@ static int emul_isl923x_init(const struct emul *emul,
&isl923x_emul_data_##n)
DT_INST_FOREACH_STATUS_OKAY(INIT_ISL923X)
+
+#ifdef CONFIG_ZTEST_NEW_API
+
+#define ISL923X_EMUL_RESET_RULE_AFTER(n) \
+ isl923x_emul_reset(&isl923x_emul_data_##n)
+
+static void emul_isl923x_reset_before(const struct ztest_unit_test *test,
+ void *data)
+{
+ ARG_UNUSED(test);
+ ARG_UNUSED(data);
+
+ DT_INST_FOREACH_STATUS_OKAY(ISL923X_EMUL_RESET_RULE_AFTER);
+}
+ZTEST_RULE(emul_isl923x_reset, emul_isl923x_reset_before, NULL);
+#endif /* CONFIG_ZTEST_NEW_API */
diff --git a/zephyr/include/emul/emul_isl923x.h b/zephyr/include/emul/emul_isl923x.h
index 93a29a9c09..b2cc97e83c 100644
--- a/zephyr/include/emul/emul_isl923x.h
+++ b/zephyr/include/emul/emul_isl923x.h
@@ -33,7 +33,7 @@ struct i2c_emul *isl923x_emul_get_i2c_emul(const struct emul *emulator);
*
* @param emulator The emulator to modify
*/
-void isl923x_emul_reset(const struct emul *emulator);
+void isl923x_emul_reset_registers(const struct emul *emulator);
/**
* @brief Set the manufacturer ID
diff --git a/zephyr/test/drivers/src/isl923x.c b/zephyr/test/drivers/src/isl923x.c
index 05737a9af0..bbfc3cb920 100644
--- a/zephyr/test/drivers/src/isl923x.c
+++ b/zephyr/test/drivers/src/isl923x.c
@@ -583,7 +583,7 @@ ZTEST(isl923x, test_init)
int input_current;
/* Test failed CTRL2 register read (prochot debounce) */
- isl923x_emul_reset(isl923x_emul);
+ isl923x_emul_reset_registers(isl923x_emul);
i2c_common_emul_set_read_fail_reg(i2c_emul, ISL923X_REG_CONTROL2);
isl923x_drv.init(CHARGER_NUM);
i2c_common_emul_set_read_fail_reg(i2c_emul,
@@ -595,7 +595,7 @@ ZTEST(isl923x, test_init)
"Expected input current 0mV but got %dmV", input_current);
/* Test failed CTRL2 register write */
- isl923x_emul_reset(isl923x_emul);
+ isl923x_emul_reset_registers(isl923x_emul);
i2c_common_emul_set_write_fail_reg(i2c_emul, ISL923X_REG_CONTROL2);
isl923x_drv.init(CHARGER_NUM);
i2c_common_emul_set_write_fail_reg(i2c_emul,
@@ -607,7 +607,7 @@ ZTEST(isl923x, test_init)
"Expected input current 0mV but got %dmV", input_current);
/* Test failed CTRL 0 read */
- isl923x_emul_reset(isl923x_emul);
+ isl923x_emul_reset_registers(isl923x_emul);
i2c_common_emul_set_read_fail_reg(i2c_emul, ISL923X_REG_CONTROL0);
isl923x_drv.init(CHARGER_NUM);
i2c_common_emul_set_read_fail_reg(i2c_emul,
@@ -619,7 +619,7 @@ ZTEST(isl923x, test_init)
"Expected input current 0mV but got %dmV", input_current);
/* Test failed CTRL 0 write */
- isl923x_emul_reset(isl923x_emul);
+ isl923x_emul_reset_registers(isl923x_emul);
i2c_common_emul_set_write_fail_reg(i2c_emul, ISL923X_REG_CONTROL0);
isl923x_drv.init(CHARGER_NUM);
i2c_common_emul_set_write_fail_reg(i2c_emul,
@@ -631,7 +631,7 @@ ZTEST(isl923x, test_init)
"Expected input current 0mV but got %dmV", input_current);
/* Test failed CTRL 3 read */
- isl923x_emul_reset(isl923x_emul);
+ isl923x_emul_reset_registers(isl923x_emul);
i2c_common_emul_set_read_fail_reg(i2c_emul, ISL9238_REG_CONTROL3);
isl923x_drv.init(CHARGER_NUM);
i2c_common_emul_set_read_fail_reg(i2c_emul,
@@ -643,7 +643,7 @@ ZTEST(isl923x, test_init)
"Expected input current 0mV but got %dmV", input_current);
/* Test failed CTRL 3 write */
- isl923x_emul_reset(isl923x_emul);
+ isl923x_emul_reset_registers(isl923x_emul);
i2c_common_emul_set_write_fail_reg(i2c_emul, ISL9238_REG_CONTROL3);
isl923x_drv.init(CHARGER_NUM);
i2c_common_emul_set_write_fail_reg(i2c_emul,
@@ -655,7 +655,7 @@ ZTEST(isl923x, test_init)
"Expected input current 0mV but got %dmV", input_current);
/* Test failed write adapter current limit */
- isl923x_emul_reset(isl923x_emul);
+ isl923x_emul_reset_registers(isl923x_emul);
i2c_common_emul_set_write_fail_reg(i2c_emul,
ISL923X_REG_ADAPTER_CURRENT_LIMIT1);
isl923x_drv.init(CHARGER_NUM);