ec.c
1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 3 #include <acpi/acpi.h> 4 #include <amdblocks/smi.h> 5 #include <ec/google/chromeec/ec.h> 6 #include <gpio.h> 7 #include <soc/smi.h> 8 #include <variant/ec.h> 9 10 static const struct sci_source espi_sci_sources[] = { 11 { 12 .scimap = SMITYPE_ESPI_SCI_B, 13 .gpe = EC_SCI_GPI, 14 .direction = SMI_SCI_LVL_HIGH, /* enum smi_sci_lvl */ 15 .level = SMI_SCI_EDG, /* enum smi_sci_dir */ 16 } 17 }; 18 19 void mainboard_ec_init(void) 20 { 21 const struct google_chromeec_event_info info = { 22 .log_events = MAINBOARD_EC_LOG_EVENTS, 23 .sci_events = MAINBOARD_EC_SCI_EVENTS, 24 .s3_wake_events = MAINBOARD_EC_S3_WAKE_EVENTS, 25 .s5_wake_events = MAINBOARD_EC_S5_WAKE_EVENTS, 26 .s0ix_wake_events = MAINBOARD_EC_S0IX_WAKE_EVENTS, 27 }; 28 29 google_chromeec_events_init(&info, acpi_is_wakeup_s3()); 30 31 /* Configure eSPI SCI events */ 32 gpe_configure_sci(espi_sci_sources, ARRAY_SIZE(espi_sci_sources)); 33 }