summaryrefslogtreecommitdiff
path: root/zephyr/emul/emul_ln9310.c
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/emul/emul_ln9310.c')
-rw-r--r--zephyr/emul/emul_ln9310.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/zephyr/emul/emul_ln9310.c b/zephyr/emul/emul_ln9310.c
index 9298767d67..d4eaa8e38d 100644
--- a/zephyr/emul/emul_ln9310.c
+++ b/zephyr/emul/emul_ln9310.c
@@ -29,6 +29,8 @@ struct ln9310_emul_data {
struct i2c_common_emul_data common;
/** The current emulated battery cell type */
enum battery_cell_type battery_cell_type;
+ /** Emulated INT1 MSK register */
+ uint8_t int1_msk_reg;
/** Emulated Lion control register */
uint8_t lion_ctrl_reg;
/** Emulated startup control register */
@@ -122,6 +124,13 @@ void ln9310_emul_set_vin_gt_10v(const struct emul *emulator, bool is_gt_10v)
data->bc_sts_b_reg &= ~LN9310_BC_STS_B_INFET_OUT_SWITCH_OK;
}
+bool ln9310_emul_is_init(const struct emul *emulator)
+{
+ struct ln9310_emul_data *data = emulator->data;
+
+ return (data->int1_msk_reg & LN9310_INT1_MODE) == 0;
+}
+
enum battery_cell_type board_get_battery_cell_type(void)
{
struct ln9310_emul_data *data = singleton->data;
@@ -149,6 +158,10 @@ static int ln9310_emul_write_byte(struct i2c_emul *emul, int reg, uint8_t val,
struct ln9310_emul_data *data = LN9310_DATA_FROM_I2C_EMUL(emul);
switch (reg) {
+ case LN9310_REG_INT1_MSK:
+ __ASSERT_NO_MSG(bytes == 1);
+ data->int1_msk_reg = val;
+ break;
case LN9310_REG_STARTUP_CTRL:
__ASSERT_NO_MSG(bytes == 1);
data->startup_ctrl_reg = val;
@@ -242,6 +255,10 @@ static int ln9310_emul_read_byte(struct i2c_emul *emul, int reg, uint8_t *val,
struct ln9310_emul_data *data = LN9310_DATA_FROM_I2C_EMUL(emul);
switch (reg) {
+ case LN9310_REG_INT1_MSK:
+ __ASSERT_NO_MSG(bytes == 0);
+ *val = data->int1_msk_reg;
+ break;
case LN9310_REG_STARTUP_CTRL:
__ASSERT_NO_MSG(bytes == 0);
*val = data->startup_ctrl_reg;