1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * This supports machine-specific differences in how the PXA2xx |
4 | * USB Device Controller (UDC) is wired. |
5 | * |
6 | * It is set in linux/arch/arm/mach-pxa/<machine>.c or in |
7 | * linux/arch/mach-ixp4xx/<machine>.c and used in |
8 | * the probe routine of linux/drivers/usb/gadget/pxa2xx_udc.c |
9 | */ |
10 | #ifndef PXA2XX_UDC_H |
11 | #define PXA2XX_UDC_H |
12 | |
13 | struct pxa2xx_udc_mach_info { |
14 | int (*udc_is_connected)(void); /* do we see host? */ |
15 | void (*udc_command)(int cmd); |
16 | #define PXA2XX_UDC_CMD_CONNECT 0 /* let host see us */ |
17 | #define PXA2XX_UDC_CMD_DISCONNECT 1 /* so host won't see us */ |
18 | |
19 | /* Boards following the design guidelines in the developer's manual, |
20 | * with on-chip GPIOs not Lubbock's weird hardware, can have a sane |
21 | * VBUS IRQ and omit the methods above. Store the GPIO number |
22 | * here. Note that sometimes the signals go through inverters... |
23 | */ |
24 | bool gpio_pullup_inverted; |
25 | int gpio_pullup; /* high == pullup activated */ |
26 | }; |
27 | |
28 | #ifdef CONFIG_PXA27x |
29 | extern void pxa27x_clear_otgph(void); |
30 | #else |
31 | #define pxa27x_clear_otgph() do {} while (0) |
32 | #endif |
33 | |
34 | #endif |
35 | |