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