1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #ifndef _EC_GOOGLE_CHROMEEC_SMM_H 4 #define _EC_GOOGLE_CHROMEEC_SMM_H 5 6 #include <stdint.h> 7 8 /* Process all events from the EC when EC triggered an SMI#. */ 9 void chromeec_smi_process_events(void); 10 11 void chromeec_set_usb_charge_mode(int slp_type); 12 13 /* 14 * Set wake masks according to sleep type, clear SCI and SMI masks, 15 * and clear any pending events. 16 */ 17 void chromeec_smi_sleep(int slp_type, uint64_t s3_mask, uint64_t s5_mask); 18 19 /* 20 * Set device event masks according to sleep type, 21 * and clear any pending device events. 22 */ 23 void chromeec_smi_device_event_sleep(int slp_type, uint64_t s3_mask, 24 uint64_t s5_mask); 25 26 /* 27 * Provided the APMC command do the following while clearing pending events. 28 * APM_CNT_ACPI_ENABLE: clear SMI mask. set SCI mask. 29 * APM_CNT_ACPI_DISABLE: clear SCI mask. set SMI mask. 30 */ 31 void chromeec_smi_apmc(int apmc, uint64_t sci_mask, uint64_t smi_mask); 32 33 #endif /* _EC_GOOGLE_CHROMEEC_SMM_H */ 34