diff options
author | Shaunak Saha <shaunak.saha@intel.com> | 2016-07-24 22:54:13 -0700 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-08-10 21:11:23 +0200 |
commit | 3922cec524745864b3505a038f0c64c2b3c67b18 (patch) | |
tree | 748a92ab61e2f6b6ab2bf3cc60898485f289c116 /src | |
parent | 09115a92f6ac6123a6f1ed435c05fe60dc01d58c (diff) | |
download | coreboot-3922cec524745864b3505a038f0c64c2b3c67b18.tar.xz |
google/reef: Add mainboard handler function for gpio SMI
This patch adds mainboard_smi_gpi_handler which handles the
SMI event. This can happen in situations like lidclose and
system goes to shutdown.
BUG=chrome-os-partner:54977
TEST=When system is in firmware mode executing the command
lidclose from ec console shuts down the system.
Change-Id: I8ff6001e48dcbbd4cee5097e759352d8fea6189b
Signed-off-by: Shaunak Saha <shaunak.saha@intel.com>
Reviewed-on: https://review.coreboot.org/15834
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/google/reef/ec.h | 3 | ||||
-rw-r--r-- | src/mainboard/google/reef/smihandler.c | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/mainboard/google/reef/ec.h b/src/mainboard/google/reef/ec.h index f76c5a8876..c4b1505c2c 100644 --- a/src/mainboard/google/reef/ec.h +++ b/src/mainboard/google/reef/ec.h @@ -24,6 +24,9 @@ */ #define EC_SCI_GPI GPE0_DW1_11 +/* EC SMI */ +#define EC_SMI_GPI GPIO_49 + /* * On lidopen/lidclose GPIO_22 from North Community gets toggled and * is used in _PRW to wake up device from sleep. GPIO_22 maps to diff --git a/src/mainboard/google/reef/smihandler.c b/src/mainboard/google/reef/smihandler.c index 05d363f876..e26c176b1b 100644 --- a/src/mainboard/google/reef/smihandler.c +++ b/src/mainboard/google/reef/smihandler.c @@ -18,8 +18,15 @@ #include <cpu/x86/smm.h> #include <ec/google/chromeec/smm.h> #include <soc/pm.h> +#include <soc/smm.h> #include "ec.h" +void mainboard_smi_gpi_handler(const struct gpi_status *sts) +{ + if (gpi_status_get(sts, EC_SMI_GPI)) + chromeec_smi_process_events(); +} + void mainboard_smi_sleep(u8 slp_typ) { if (slp_typ == ACPI_S3) |