summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ec/google/wilco/Kconfig1
-rw-r--r--src/ec/google/wilco/chip.c9
-rw-r--r--src/ec/google/wilco/commands.h5
3 files changed, 15 insertions, 0 deletions
diff --git a/src/ec/google/wilco/Kconfig b/src/ec/google/wilco/Kconfig
index e905d5ee21..4202c1d7b5 100644
--- a/src/ec/google/wilco/Kconfig
+++ b/src/ec/google/wilco/Kconfig
@@ -2,6 +2,7 @@ config EC_GOOGLE_WILCO
bool
default n
select EC_GOOGLE_COMMON_MEC
+ select EC_ACPI
help
Google Wilco Embedded Controller interface.
diff --git a/src/ec/google/wilco/chip.c b/src/ec/google/wilco/chip.c
index a9caaeca23..0858e1c3bf 100644
--- a/src/ec/google/wilco/chip.c
+++ b/src/ec/google/wilco/chip.c
@@ -13,8 +13,10 @@
* GNU General Public License for more details.
*/
+#include <arch/acpi.h>
#include <bootstate.h>
#include <device/pnp.h>
+#include <ec/acpi/ec.h>
#include <pc80/keyboard.h>
#include <stdint.h>
#include <stdlib.h>
@@ -55,6 +57,13 @@ static void wilco_ec_init(struct device *dev)
if (!dev->enabled)
return;
+ /* Disable S0ix support in EC RAM with ACPI EC interface */
+ if (!acpi_is_wakeup_s3()) {
+ ec_set_ports(CONFIG_EC_BASE_ACPI_COMMAND,
+ CONFIG_EC_BASE_ACPI_DATA);
+ ec_write(EC_RAM_S0IX_SUPPORT, 0);
+ }
+
/* Print EC firmware information */
wilco_ec_print_all_info();
diff --git a/src/ec/google/wilco/commands.h b/src/ec/google/wilco/commands.h
index 53f6d0f401..9c1685b293 100644
--- a/src/ec/google/wilco/commands.h
+++ b/src/ec/google/wilco/commands.h
@@ -50,6 +50,11 @@ enum {
KB_BIOS_PROGRESS = 0xc2,
};
+enum ec_ram_addr {
+ /* Indicate support for S0ix */
+ EC_RAM_S0IX_SUPPORT = 0xb8,
+};
+
enum set_acpi_mode_cmd {
ACPI_OFF = 0,
ACPI_ON