Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / include / linux / platform_data / s3c-hsotg.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* include/linux/platform_data/s3c-hsotg.h
3  *
4  * Copyright 2008 Openmoko, Inc.
5  * Copyright 2008 Simtec Electronics
6  *      Ben Dooks <ben@simtec.co.uk>
7  *      http://armlinux.simtec.co.uk/
8  *
9  * S3C USB2.0 High-speed / OtG platform information
10 */
11
12 #ifndef __LINUX_USB_S3C_HSOTG_H
13 #define __LINUX_USB_S3C_HSOTG_H
14
15 struct platform_device;
16
17 enum dwc2_hsotg_dmamode {
18         S3C_HSOTG_DMA_NONE,     /* do not use DMA at-all */
19         S3C_HSOTG_DMA_ONLY,     /* always use DMA */
20         S3C_HSOTG_DMA_DRV,      /* DMA is chosen by driver */
21 };
22
23 /**
24  * struct dwc2_hsotg_plat - platform data for high-speed otg/udc
25  * @dma: Whether to use DMA or not.
26  * @is_osc: The clock source is an oscillator, not a crystal
27  */
28 struct dwc2_hsotg_plat {
29         enum dwc2_hsotg_dmamode dma;
30         unsigned int            is_osc:1;
31         int                     phy_type;
32
33         int (*phy_init)(struct platform_device *pdev, int type);
34         int (*phy_exit)(struct platform_device *pdev, int type);
35 };
36
37 extern void dwc2_hsotg_set_platdata(struct dwc2_hsotg_plat *pd);
38
39 #endif /* __LINUX_USB_S3C_HSOTG_H */