diff options
author | Yuval Peress <peress@chromium.org> | 2021-09-11 10:26:48 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-09-14 19:17:18 +0000 |
commit | 20323c55b8b52747f7c2067f1660223dcd1e7c58 (patch) | |
tree | e01ac60493e86f0201ca10d0ff6e4fdfe95e5eef /zephyr/include/emul/emul_ln9310.h | |
parent | 33c72485b79bc8de3be010dc0480047d3129fd27 (diff) | |
download | chrome-ec-20323c55b8b52747f7c2067f1660223dcd1e7c58.tar.gz |
zephyr: emul: ln9310
Add an LN9310 emulator. The emulator is mostly a stub right now with
some limited functionality to update the battery cell type and chip
version number.
BRANCH=none
BUG=b:184856083
TEST=zmake configure --test zephyr/test/drivers
Signed-off-by: Yuval Peress <peress@chromium.org>
Change-Id: I156393f4612bf69e31d4d28d88d74fa4dd1689fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3156846
Commit-Queue: Yuval Peress <peress@google.com>
Tested-by: Yuval Peress <peress@google.com>
Reviewed-by: Tomasz Michalec <tmichalec@google.com>
Reviewed-by: Jeremy Bettis <jbettis@chromium.org>
Diffstat (limited to 'zephyr/include/emul/emul_ln9310.h')
-rw-r--r-- | zephyr/include/emul/emul_ln9310.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/zephyr/include/emul/emul_ln9310.h b/zephyr/include/emul/emul_ln9310.h new file mode 100644 index 0000000000..8c9101dfab --- /dev/null +++ b/zephyr/include/emul/emul_ln9310.h @@ -0,0 +1,63 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/** + * @file + * + * @brief Backend API for LN9310 emulator + */ + +#ifndef ZEPHYR_INCLUDE_EMUL_EMUL_LN9310_H_ +#define ZEPHYR_INCLUDE_EMUL_EMUL_LN9310_H_ + +#include <emul.h> +#include "driver/ln9310.h" + +/** + * @brief Select the current emulator to use. + * + * Currently, only a single ln9310 can be instantiated at any given instance due + * to how the driver was written. Once this restriction is removed, there's + * still an issue with the board_get_battery_cell_type() function as it doesn't + * take a device pointer. This function selects the current LN9310 context which + * will serve the data for that board function. + * + * @param emulator The LN9310 emulator to select. + */ +void ln9310_emul_set_context(const struct emul *emulator); + +/** + * @brief Clear all the emulator data. + * + * @param emulator The LN9310 emulator to clear. + */ +void ln9310_emul_reset(const struct emul *emulator); + +/** + * @brief Update the emulator's battery cell type. + * + * @param emulator The LN9310 emulator to update. + * @param type The battery type to use. + */ +void ln9310_emul_set_battery_cell_type(const struct emul *emulator, + enum battery_cell_type type); + +/** + * @brief Update the emulator's version number. + * + * @param emulator The LN9310 emulator to update. + * @param version The LN9310 chip version number. + */ +void ln9310_emul_set_version(const struct emul *emulator, int version); + +/** + * @brief Update whether or not the LN9310 is currently getting more than 10V. + * + * @param emulator The LN9310 emulator to update. + * @param is_gt_10v Whether or not the chip is currently getting more than 10V. + */ +void ln9310_emul_set_vin_gt_10v(const struct emul *emulator, bool is_gt_10v); + +#endif /* ZEPHYR_INCLUDE_EMUL_EMUL_LN9310_H_ */ |