diff options
-rw-r--r-- | src/ec/google/wilco/Kconfig | 1 | ||||
-rw-r--r-- | src/ec/google/wilco/chip.c | 9 | ||||
-rw-r--r-- | src/ec/google/wilco/commands.h | 5 |
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 |