diff options
author | Abe Levkoy <alevkoy@chromium.org> | 2022-09-29 14:30:13 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-30 17:00:51 +0000 |
commit | 4b8df114dce6362c946161ed5739a5c0306a03ef (patch) | |
tree | 7a0154c48c420fd6b90298f114c0c1d1c833348c | |
parent | c48d0ce8c92b2254e2068fdf5c5ab336e1aa7d4b (diff) | |
download | chrome-ec-4b8df114dce6362c946161ed5739a5c0306a03ef.tar.gz |
zephyr: mock power: Prepare for external use
Expose an interface to request arbitrary AP power state changes. Expose
the enumeration of request types. Fix an include.
BUG=b:239515386
TEST=twister -T zephyr/test/drivers
BRANCH=none
LOW_COVERAGE_REASON=This is a mock. It will be used later.
Signed-off-by: Abe Levkoy <alevkoy@chromium.org>
Change-Id: I6ef8e3798f3ea78e76f671c79fba3e8082da41d5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3926349
Reviewed-by: Al Semjonovs <asemjonovs@google.com>
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
-rw-r--r-- | zephyr/mock/include/mock/power.h | 20 | ||||
-rw-r--r-- | zephyr/mock/power.c | 16 |
2 files changed, 27 insertions, 9 deletions
diff --git a/zephyr/mock/include/mock/power.h b/zephyr/mock/include/mock/power.h index 9f7a0c451d..f2d1460584 100644 --- a/zephyr/mock/include/mock/power.h +++ b/zephyr/mock/include/mock/power.h @@ -11,7 +11,17 @@ extern "C" { #endif /* __cplusplus */ #include <zephyr/fff.h> -#include "power.h" + +#include <power.h> + +/* AP power state transition request types. */ +enum power_request_t { + POWER_REQ_NONE, + POWER_REQ_OFF, + POWER_REQ_ON, + POWER_REQ_SOFT_OFF, + POWER_REQ_COUNT, +}; /* Mocks for ec/power/common.c and board specific implementations */ DECLARE_FAKE_VALUE_FUNC(enum power_state, power_handle_state, enum power_state); @@ -27,4 +37,12 @@ void chipset_power_on_custom_fake(void); int command_power_custom_fake(int argc, const char **argv); +/** @brief Mocks an AP power state change request. + * + * The mock power state will attempt to complete the request asynchronously. + * + * @param req The requested power state transition. + */ +void mock_power_request(enum power_request_t req); + #endif /* ZEPHYR_TEST_MOCK_POWER_H */ diff --git a/zephyr/mock/power.c b/zephyr/mock/power.c index fc82cc7250..7f424cf23b 100644 --- a/zephyr/mock/power.c +++ b/zephyr/mock/power.c @@ -52,13 +52,6 @@ static void mock_power_rule_before(const struct ztest_unit_test *test, ZTEST_RULE(mock_power_rule, mock_power_rule_before, NULL); -enum power_request_t { - POWER_REQ_NONE, - POWER_REQ_OFF, - POWER_REQ_ON, - POWER_REQ_COUNT, -}; - static const char *power_req_name[POWER_REQ_COUNT] = { "none", "OFF", @@ -68,7 +61,7 @@ static const char *power_req_name[POWER_REQ_COUNT] = { static enum power_request_t current_power_request = POWER_REQ_NONE; static enum power_request_t pending_power_request = POWER_REQ_NONE; -void handle_power_request(enum power_request_t req) +static void handle_power_request(enum power_request_t req) { if (current_power_request == POWER_REQ_NONE) { current_power_request = req; @@ -80,6 +73,13 @@ void handle_power_request(enum power_request_t req) } } +void mock_power_request(enum power_request_t req) +{ + handle_power_request(req); + task_wake(TASK_ID_CHIPSET); + k_sleep(K_SECONDS(1)); +} + void power_request_complete(void) { current_power_request = pending_power_request; |