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