1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * glue.h - DesignWare USB3 DRD glue header
4  */
5 
6 #ifndef __DRIVERS_USB_DWC3_GLUE_H
7 #define __DRIVERS_USB_DWC3_GLUE_H
8 
9 #include <linux/types.h>
10 #include "core.h"
11 
12 /**
13  * dwc3_probe_data: Initialization parameters passed to dwc3_core_probe()
14  * @dwc: Reference to dwc3 context structure
15  * @res: resource for the DWC3 core mmio region
16  * @ignore_clocks_and_resets: clocks and resets defined for the device should
17  *		be ignored by the DWC3 core, as they are managed by the glue
18  */
19 struct dwc3_probe_data {
20 	struct dwc3 *dwc;
21 	struct resource *res;
22 	bool ignore_clocks_and_resets;
23 };
24 
25 int dwc3_core_probe(const struct dwc3_probe_data *data);
26 void dwc3_core_remove(struct dwc3 *dwc);
27 
28 int dwc3_runtime_suspend(struct dwc3 *dwc);
29 int dwc3_runtime_resume(struct dwc3 *dwc);
30 int dwc3_runtime_idle(struct dwc3 *dwc);
31 int dwc3_pm_suspend(struct dwc3 *dwc);
32 int dwc3_pm_resume(struct dwc3 *dwc);
33 void dwc3_pm_complete(struct dwc3 *dwc);
34 int dwc3_pm_prepare(struct dwc3 *dwc);
35 
36 #endif
37