summaryrefslogtreecommitdiff
path: root/zephyr/include/emul/emul_ln9310.h
diff options
context:
space:
mode:
authorYuval Peress <peress@chromium.org>2021-09-11 10:26:48 -0600
committerCommit Bot <commit-bot@chromium.org>2021-09-14 19:17:18 +0000
commit20323c55b8b52747f7c2067f1660223dcd1e7c58 (patch)
treee01ac60493e86f0201ca10d0ff6e4fdfe95e5eef /zephyr/include/emul/emul_ln9310.h
parent33c72485b79bc8de3be010dc0480047d3129fd27 (diff)
downloadchrome-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.h63
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_ */