udc.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* arch/arm/mach-s3c2410/include/mach/udc.h
  2. *
  3. * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
  4. *
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. *
  10. *
  11. * Changelog:
  12. * 14-Mar-2005 RTP Created file
  13. * 02-Aug-2005 RTP File rename
  14. * 07-Sep-2005 BJD Minor cleanups, changed cmd to enum
  15. * 18-Jan-2007 HMW Add per-platform vbus_draw function
  16. */
  17. #ifndef __ASM_ARM_ARCH_UDC_H
  18. #define __ASM_ARM_ARCH_UDC_H
  19. enum s3c2410_udc_cmd_e {
  20. S3C2410_UDC_P_ENABLE = 1, /* Pull-up enable */
  21. S3C2410_UDC_P_DISABLE = 2, /* Pull-up disable */
  22. S3C2410_UDC_P_RESET = 3, /* UDC reset, in case of */
  23. };
  24. struct s3c2410_udc_mach_info {
  25. void (*udc_command)(enum s3c2410_udc_cmd_e);
  26. void (*vbus_draw)(unsigned int ma);
  27. unsigned int pullup_pin;
  28. unsigned int pullup_pin_inverted;
  29. unsigned int vbus_pin;
  30. unsigned char vbus_pin_inverted;
  31. };
  32. extern void __init s3c24xx_udc_set_platdata(struct s3c2410_udc_mach_info *);
  33. /**
  34. * s3c24xx_hsudc_platdata - Platform data for USB High-Speed gadget controller.
  35. * @epnum: Number of endpoints to be instantiated by the controller driver.
  36. * @gpio_init: Platform specific USB related GPIO initialization.
  37. * @gpio_uninit: Platform specific USB releted GPIO uninitialzation.
  38. *
  39. * Representation of platform data for the S3C24XX USB 2.0 High Speed gadget
  40. * controllers.
  41. */
  42. struct s3c24xx_hsudc_platdata {
  43. unsigned int epnum;
  44. void (*gpio_init)(void);
  45. void (*gpio_uninit)(void);
  46. };
  47. extern void __init s3c24xx_hsudc_set_platdata(struct s3c24xx_hsudc_platdata *pd);
  48. #endif /* __ASM_ARM_ARCH_UDC_H */