summaryrefslogtreecommitdiff
path: root/zephyr/include/emul/emul_pi3usb9201.h
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2021-06-15 01:34:13 -0600
committerCommit Bot <commit-bot@chromium.org>2021-06-30 19:06:56 +0000
commit3c3f146e86216a03c5946ceedf0996e8c647c55c (patch)
treed5a5c34dccf662ae06d5faf563505bb3d9d1344f /zephyr/include/emul/emul_pi3usb9201.h
parent8df0ec85f3fc54f618cab271f58d6a8a3f55cbc7 (diff)
downloadchrome-ec-3c3f146e86216a03c5946ceedf0996e8c647c55c.tar.gz
zephyr: Add pi3usb9201 emulator and test
BUG=b:184852906 BRANCH=none TEST=zmake configure --test zephyr/test/drivers Change-Id: Ie554b6957269c638357d82d6f5dcc2ceda08caab Signed-off-by: Edward Hill <ecgh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2961272 Commit-Queue: Keith Short <keithshort@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'zephyr/include/emul/emul_pi3usb9201.h')
-rw-r--r--zephyr/include/emul/emul_pi3usb9201.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/zephyr/include/emul/emul_pi3usb9201.h b/zephyr/include/emul/emul_pi3usb9201.h
new file mode 100644
index 0000000000..b171cfefc9
--- /dev/null
+++ b/zephyr/include/emul/emul_pi3usb9201.h
@@ -0,0 +1,55 @@
+/* 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 pi3usb9201 emulator
+ */
+
+#ifndef __EMUL_PI3USB9201_H
+#define __EMUL_PI3USB9201_H
+
+#include <emul.h>
+#include <drivers/i2c.h>
+#include <drivers/i2c_emul.h>
+
+#define PI3USB9201_REG_CTRL_1 0x0
+#define PI3USB9201_REG_CTRL_2 0x1
+#define PI3USB9201_REG_CLIENT_STS 0x2
+#define PI3USB9201_REG_HOST_STS 0x3
+
+/**
+ * @brief Get pointer to pi3usb9201 emulator using device tree order number.
+ *
+ * @param ord Device tree order number obtained from DT_DEP_ORD macro
+ *
+ * @return Pointer to pi3usb9201 emulator
+ */
+struct i2c_emul *pi3usb9201_emul_get(int ord);
+
+/**
+ * @brief Set value of given register of pi3usb9201
+ *
+ * @param emul Pointer to pi3usb9201 emulator
+ * @param reg Register address
+ * @param val New value of the register
+ *
+ * @return 0 on success or error
+ */
+int pi3usb9201_emul_set_reg(struct i2c_emul *emul, int reg, uint8_t val);
+
+/**
+ * @brief Get value of given register of pi3usb9201
+ *
+ * @param emul Pointer to pi3usb9201 emulator
+ * @param reg Register address
+ * @param val Pointer to write current value of register
+ *
+ * @return 0 on success or error
+ */
+int pi3usb9201_emul_get_reg(struct i2c_emul *emul, int reg, uint8_t *val);
+
+#endif /* __EMUL_PI3USB9201_H */