GNU Linux-libre 6.8.7-gnu
[releases.git] / drivers / usb / host / xhci-plat.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * xhci-plat.h - xHCI host controller driver platform Bus Glue.
4  *
5  * Copyright (C) 2015 Renesas Electronics Corporation
6  */
7
8 #ifndef _XHCI_PLAT_H
9 #define _XHCI_PLAT_H
10
11 #include "xhci.h"       /* for hcd_to_xhci() */
12
13 struct xhci_plat_priv {
14         const char *firmware_name;
15         unsigned long long quirks;
16         void (*plat_start)(struct usb_hcd *);
17         int (*init_quirk)(struct usb_hcd *);
18         int (*suspend_quirk)(struct usb_hcd *);
19         int (*resume_quirk)(struct usb_hcd *);
20 };
21
22 #define hcd_to_xhci_priv(h) ((struct xhci_plat_priv *)hcd_to_xhci(h)->priv)
23 #define xhci_to_priv(x) ((struct xhci_plat_priv *)(x)->priv)
24
25 int xhci_plat_probe(struct platform_device *pdev, struct device *sysdev,
26                     const struct xhci_plat_priv *priv_match);
27
28 void xhci_plat_remove(struct platform_device *dev);
29 extern const struct dev_pm_ops xhci_plat_pm_ops;
30
31 #endif  /* _XHCI_PLAT_H */