diff options
author | Wai-Hong Tam <waihong@google.com> | 2018-11-08 14:28:12 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-11-15 02:16:28 -0800 |
commit | 38b16336b7d254f52261bb0ba12d6a8d691323ab (patch) | |
tree | 6986956c5e5e4c45e46906990b9eb41dc80051af /common/chipset.c | |
parent | f02c6f83fae3cdce2933da60a0de44206295489f (diff) | |
download | chrome-ec-38b16336b7d254f52261bb0ba12d6a8d691323ab.tar.gz |
chipset: Add a host command to issue AP reset
The host command is enabled by defining CONFIG_HOSTCMD_AP_RESET.
It calls the chipset_reset() function, similar to the console
command "apreset".
BRANCH=none
BUG=b:119261783
TEST=Manually tested as follow:
Enabled CONFIG_HOSTCMD_AP_RESET on Cheza and flashed EC image.
Copied the compiled ectool to Cheza. Ran "ectool apreset".
Checked EC console:
[6698.093141 chipset_reset(4)]
[6698.093753 power off 5]
...
the power state changing S0 -> S5 -> S0
Change-Id: I09f26f0c7ccd22905979e8b8675185505ad739eb
Signed-off-by: Wai-Hong Tam <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1327841
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/chipset.c')
-rw-r--r-- | common/chipset.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/common/chipset.c b/common/chipset.c index 4342ba5fab..f6481e5de8 100644 --- a/common/chipset.c +++ b/common/chipset.c @@ -45,6 +45,19 @@ DECLARE_CONSOLE_COMMAND(apshutdown, command_apshutdown, #endif +#ifdef CONFIG_HOSTCMD_AP_RESET +static int host_command_apreset(struct host_cmd_handler_args *args) +{ + /* Force the chipset to reset */ + chipset_reset(CHIPSET_RESET_HOST_CMD); + return EC_RES_SUCCESS; +} +DECLARE_HOST_COMMAND(EC_CMD_AP_RESET, + host_command_apreset, + EC_VER_MASK(0)); + +#endif + #ifdef CONFIG_CMD_AP_RESET_LOG static struct mutex reset_log_mutex; static int next_reset_log; |