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 struct device; 15 16 struct cros_ec_device *cros_ec_device_alloc(struct device *dev); 17 18 int cros_ec_register(struct cros_ec_device *ec_dev); 19 void cros_ec_unregister(struct cros_ec_device *ec_dev); 20 21 int cros_ec_suspend(struct cros_ec_device *ec_dev); 22 int cros_ec_suspend_late(struct cros_ec_device *ec_dev); 23 int cros_ec_suspend_prepare(struct cros_ec_device *ec_dev); 24 int cros_ec_resume(struct cros_ec_device *ec_dev); 25 int cros_ec_resume_early(struct cros_ec_device *ec_dev); 26 void cros_ec_resume_complete(struct cros_ec_device *ec_dev); 27 28 irqreturn_t cros_ec_irq_thread(int irq, void *data); 29 30 #endif /* __CROS_EC_H */ 31