xref: /linux/drivers/platform/chrome/cros_ec.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1034dbec1SEnric Balletbo i Serra /* SPDX-License-Identifier: GPL-2.0-only */
2034dbec1SEnric Balletbo i Serra /*
3034dbec1SEnric Balletbo i Serra  * ChromeOS Embedded Controller core interface.
4034dbec1SEnric Balletbo i Serra  *
5034dbec1SEnric Balletbo i Serra  * Copyright (C) 2020 Google LLC
6034dbec1SEnric Balletbo i Serra  */
7034dbec1SEnric Balletbo i Serra 
8034dbec1SEnric Balletbo i Serra #ifndef __CROS_EC_H
9034dbec1SEnric Balletbo i Serra #define __CROS_EC_H
10034dbec1SEnric Balletbo i Serra 
1124c69043SGwendal Grignou #include <linux/interrupt.h>
1224c69043SGwendal Grignou 
13a7bad167STzung-Bi Shih struct cros_ec_device;
14a7bad167STzung-Bi Shih 
15034dbec1SEnric Balletbo i Serra int cros_ec_register(struct cros_ec_device *ec_dev);
16afb0a80eSUwe Kleine-König void cros_ec_unregister(struct cros_ec_device *ec_dev);
17034dbec1SEnric Balletbo i Serra 
18034dbec1SEnric Balletbo i Serra int cros_ec_suspend(struct cros_ec_device *ec_dev);
19*47ea0ddbSLalith Rajendran int cros_ec_suspend_late(struct cros_ec_device *ec_dev);
20*47ea0ddbSLalith Rajendran int cros_ec_suspend_prepare(struct cros_ec_device *ec_dev);
21034dbec1SEnric Balletbo i Serra int cros_ec_resume(struct cros_ec_device *ec_dev);
22*47ea0ddbSLalith Rajendran int cros_ec_resume_early(struct cros_ec_device *ec_dev);
23*47ea0ddbSLalith Rajendran void cros_ec_resume_complete(struct cros_ec_device *ec_dev);
24034dbec1SEnric Balletbo i Serra 
2524c69043SGwendal Grignou irqreturn_t cros_ec_irq_thread(int irq, void *data);
26034dbec1SEnric Balletbo i Serra 
27034dbec1SEnric Balletbo i Serra #endif /* __CROS_EC_H */
28