1613a2e65SBjorn Andersson /* SPDX-License-Identifier: GPL-2.0 */ 2613a2e65SBjorn Andersson /* 3613a2e65SBjorn Andersson * glue.h - DesignWare USB3 DRD glue header 4613a2e65SBjorn Andersson */ 5613a2e65SBjorn Andersson 6613a2e65SBjorn Andersson #ifndef __DRIVERS_USB_DWC3_GLUE_H 7613a2e65SBjorn Andersson #define __DRIVERS_USB_DWC3_GLUE_H 8613a2e65SBjorn Andersson 9613a2e65SBjorn Andersson #include <linux/types.h> 10613a2e65SBjorn Andersson #include "core.h" 11613a2e65SBjorn Andersson 12613a2e65SBjorn Andersson /** 13613a2e65SBjorn Andersson * dwc3_probe_data: Initialization parameters passed to dwc3_core_probe() 14613a2e65SBjorn Andersson * @dwc: Reference to dwc3 context structure 15613a2e65SBjorn Andersson * @res: resource for the DWC3 core mmio region 16*170940f7SBjorn Andersson * @ignore_clocks_and_resets: clocks and resets defined for the device should 17*170940f7SBjorn Andersson * be ignored by the DWC3 core, as they are managed by the glue 18613a2e65SBjorn Andersson */ 19613a2e65SBjorn Andersson struct dwc3_probe_data { 20613a2e65SBjorn Andersson struct dwc3 *dwc; 21613a2e65SBjorn Andersson struct resource *res; 22*170940f7SBjorn Andersson bool ignore_clocks_and_resets; 23613a2e65SBjorn Andersson }; 24613a2e65SBjorn Andersson 25613a2e65SBjorn Andersson int dwc3_core_probe(const struct dwc3_probe_data *data); 26613a2e65SBjorn Andersson void dwc3_core_remove(struct dwc3 *dwc); 27613a2e65SBjorn Andersson 28613a2e65SBjorn Andersson int dwc3_runtime_suspend(struct dwc3 *dwc); 29613a2e65SBjorn Andersson int dwc3_runtime_resume(struct dwc3 *dwc); 30613a2e65SBjorn Andersson int dwc3_runtime_idle(struct dwc3 *dwc); 31613a2e65SBjorn Andersson int dwc3_pm_suspend(struct dwc3 *dwc); 32613a2e65SBjorn Andersson int dwc3_pm_resume(struct dwc3 *dwc); 33613a2e65SBjorn Andersson void dwc3_pm_complete(struct dwc3 *dwc); 34613a2e65SBjorn Andersson int dwc3_pm_prepare(struct dwc3 *dwc); 35613a2e65SBjorn Andersson 36613a2e65SBjorn Andersson #endif 37