xref: /linux/drivers/platform/chrome/cros_ec.h (revision 4b660dbd9ee2059850fd30e0df420ca7a38a1856)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * ChromeOS Embedded Controller core interface.
4  *
5  * Copyright (C) 2020 Google LLC
6  */
7 
8 #ifndef __CROS_EC_H
9 #define __CROS_EC_H
10 
11 #include <linux/interrupt.h>
12 
13 struct cros_ec_device;
14 
15 int cros_ec_register(struct cros_ec_device *ec_dev);
16 void cros_ec_unregister(struct cros_ec_device *ec_dev);
17 
18 int cros_ec_suspend(struct cros_ec_device *ec_dev);
19 int cros_ec_suspend_late(struct cros_ec_device *ec_dev);
20 int cros_ec_suspend_prepare(struct cros_ec_device *ec_dev);
21 int cros_ec_resume(struct cros_ec_device *ec_dev);
22 int cros_ec_resume_early(struct cros_ec_device *ec_dev);
23 void cros_ec_resume_complete(struct cros_ec_device *ec_dev);
24 
25 irqreturn_t cros_ec_irq_thread(int irq, void *data);
26 
27 #endif /* __CROS_EC_H */
28