blob: 895782d0d6636779380d1bd2eaac45aac867a294 [file] [log] [blame]
Angel Pons210a0082020-04-02 23:48:24 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Aaron Durbin996b15c2016-07-14 00:29:03 -05002
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#. */
9void chromeec_smi_process_events(void);
10
Kyösti Mälkki027f86e2022-12-02 15:30:10 +020011void chromeec_set_usb_charge_mode(int slp_type);
12
Aaron Durbin996b15c2016-07-14 00:29:03 -050013/*
14 * Set wake masks according to sleep type, clear SCI and SMI masks,
15 * and clear any pending events.
16 */
Furquan Shaikh8788fd62017-11-20 20:28:18 -080017void chromeec_smi_sleep(int slp_type, uint64_t s3_mask, uint64_t s5_mask);
Aaron Durbin996b15c2016-07-14 00:29:03 -050018
19/*
Duncan Laurie7378a172017-06-29 23:52:17 -070020 * Set device event masks according to sleep type,
21 * and clear any pending device events.
22 */
Furquan Shaikh8788fd62017-11-20 20:28:18 -080023void chromeec_smi_device_event_sleep(int slp_type, uint64_t s3_mask,
24 uint64_t s5_mask);
Duncan Laurie7378a172017-06-29 23:52:17 -070025
26/*
Aaron Durbin996b15c2016-07-14 00:29:03 -050027 * 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 */
Furquan Shaikh8788fd62017-11-20 20:28:18 -080031void chromeec_smi_apmc(int apmc, uint64_t sci_mask, uint64_t smi_mask);
Aaron Durbin996b15c2016-07-14 00:29:03 -050032
33#endif /* _EC_GOOGLE_CHROMEEC_SMM_H */