1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 #include <baseboard/variants.h> 3 #include <cpu/x86/smm.h> 4 #include <ec/google/chromeec/ec.h> 5 #include <ec/google/chromeec/smm.h> 6 #include <elog.h> 7 #include <intelblocks/smihandler.h> 8 #include <variant/ec.h> 9 mainboard_smi_espi_handler(void)10void mainboard_smi_espi_handler(void) 11 { 12 chromeec_smi_process_events(); 13 } 14 mainboard_smi_sleep(u8 slp_typ)15void mainboard_smi_sleep(u8 slp_typ) 16 { 17 const struct pad_config *pads; 18 size_t num; 19 20 pads = variant_sleep_gpio_table(slp_typ, &num); 21 gpio_configure_pads(pads, num); 22 23 chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS, 24 MAINBOARD_EC_S5_WAKE_EVENTS); 25 } 26 mainboard_smi_apmc(u8 apmc)27int mainboard_smi_apmc(u8 apmc) 28 { 29 chromeec_smi_apmc(apmc, MAINBOARD_EC_SCI_EVENTS, 30 MAINBOARD_EC_SMI_EVENTS); 31 return 0; 32 } 33 elog_gsmi_cb_mainboard_log_wake_source(void)34void elog_gsmi_cb_mainboard_log_wake_source(void) 35 { 36 google_chromeec_log_events(MAINBOARD_EC_LOG_EVENTS | 37 MAINBOARD_EC_S0IX_WAKE_EVENTS); 38 } 39