1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * usb-omap.h - Platform data for the various OMAP USB IPs
4 *
5 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com
6 */
7
8#define OMAP3_HS_USB_PORTS 3
9
10enum usbhs_omap_port_mode {
11 OMAP_USBHS_PORT_MODE_UNUSED,
12 OMAP_EHCI_PORT_MODE_PHY,
13 OMAP_EHCI_PORT_MODE_TLL,
14 OMAP_EHCI_PORT_MODE_HSIC,
15 OMAP_OHCI_PORT_MODE_PHY_6PIN_DATSE0,
16 OMAP_OHCI_PORT_MODE_PHY_6PIN_DPDM,
17 OMAP_OHCI_PORT_MODE_PHY_3PIN_DATSE0,
18 OMAP_OHCI_PORT_MODE_PHY_4PIN_DPDM,
19 OMAP_OHCI_PORT_MODE_TLL_6PIN_DATSE0,
20 OMAP_OHCI_PORT_MODE_TLL_6PIN_DPDM,
21 OMAP_OHCI_PORT_MODE_TLL_3PIN_DATSE0,
22 OMAP_OHCI_PORT_MODE_TLL_4PIN_DPDM,
23 OMAP_OHCI_PORT_MODE_TLL_2PIN_DATSE0,
24 OMAP_OHCI_PORT_MODE_TLL_2PIN_DPDM
25};
26
27struct usbtll_omap_platform_data {
28 enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS];
29};
30
31struct ehci_hcd_omap_platform_data {
32 enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS];
33 int reset_gpio_port[OMAP3_HS_USB_PORTS];
34 struct regulator *regulator[OMAP3_HS_USB_PORTS];
35 unsigned phy_reset:1;
36};
37
38struct ohci_hcd_omap_platform_data {
39 enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS];
40 unsigned es2_compatibility:1;
41};
42
43struct usbhs_omap_platform_data {
44 int nports;
45 enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS];
46 int reset_gpio_port[OMAP3_HS_USB_PORTS];
47 struct regulator *regulator[OMAP3_HS_USB_PORTS];
48
49 struct ehci_hcd_omap_platform_data *ehci_data;
50 struct ohci_hcd_omap_platform_data *ohci_data;
51
52 /* OMAP3 <= ES2.1 have a single ulpi bypass control bit */
53 unsigned single_ulpi_bypass:1;
54 unsigned es2_compatibility:1;
55 unsigned phy_reset:1;
56};
57
58/*-------------------------------------------------------------------------*/
59
60struct omap_musb_board_data {
61 u8 interface_type;
62 u8 mode;
63 u16 power;
64 unsigned extvbus:1;
65 void (*set_phy_power)(u8 on);
66 void (*clear_irq)(void);
67 void (*set_mode)(u8 mode);
68 void (*reset)(void);
69};
70
71enum musb_interface {
72 MUSB_INTERFACE_ULPI,
73 MUSB_INTERFACE_UTMI
74};
75

source code of linux/include/linux/platform_data/usb-omap.h