udc.h 977 B

1234567891011121314151617181920212223242526
  1. /*
  2. * linux/include/asm-arm/arch-pxa/udc.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 and used in
  8. * the probe routine of linux/drivers/usb/gadget/pxa2xx_udc.c
  9. */
  10. struct pxa2xx_udc_mach_info {
  11. int (*udc_is_connected)(void); /* do we see host? */
  12. void (*udc_command)(int cmd);
  13. #define PXA2XX_UDC_CMD_CONNECT 0 /* let host see us */
  14. #define PXA2XX_UDC_CMD_DISCONNECT 1 /* so host won't see us */
  15. /* Boards following the design guidelines in the developer's manual,
  16. * with on-chip GPIOs not Lubbock's wierd hardware, can have a sane
  17. * VBUS IRQ and omit the methods above. Store the GPIO number
  18. * here; for GPIO 0, also mask in one of the pxa_gpio_mode() bits.
  19. */
  20. u16 gpio_vbus; /* high == vbus present */
  21. u16 gpio_pullup; /* high == pullup activated */
  22. };
  23. extern void pxa_set_udc_info(struct pxa2xx_udc_mach_info *info);