summaryrefslogtreecommitdiff
path: root/common/chipset.c
diff options
context:
space:
mode:
authorWai-Hong Tam <waihong@google.com>2018-11-08 14:28:12 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-11-15 02:16:28 -0800
commit38b16336b7d254f52261bb0ba12d6a8d691323ab (patch)
tree6986956c5e5e4c45e46906990b9eb41dc80051af /common/chipset.c
parentf02c6f83fae3cdce2933da60a0de44206295489f (diff)
downloadchrome-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.c13
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;