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 | |
10 | enum 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 | |
27 | struct usbtll_omap_platform_data { |
28 | enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS]; |
29 | }; |
30 | |
31 | struct 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 | |
38 | struct ohci_hcd_omap_platform_data { |
39 | enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS]; |
40 | unsigned es2_compatibility:1; |
41 | }; |
42 | |
43 | struct 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 | |
60 | struct 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 | |
71 | enum musb_interface { |
72 | MUSB_INTERFACE_ULPI, |
73 | MUSB_INTERFACE_UTMI |
74 | }; |
75 | |