udc.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. #ifndef USB_UDC_H
  3. #define USB_UDC_H
  4. #ifndef EP0_MAX_PACKET_SIZE
  5. #define EP0_MAX_PACKET_SIZE 64
  6. #endif
  7. #ifndef EP_MAX_PACKET_SIZE
  8. #define EP_MAX_PACKET_SIZE 64
  9. #endif
  10. #if !defined(CONFIG_PPC)
  11. /* mpc8xx_udc.h will set these values */
  12. #define UDC_OUT_PACKET_SIZE EP_MAX_PACKET_SIZE
  13. #define UDC_IN_PACKET_SIZE EP_MAX_PACKET_SIZE
  14. #define UDC_INT_PACKET_SIZE EP_MAX_PACKET_SIZE
  15. #define UDC_BULK_PACKET_SIZE EP_MAX_PACKET_SIZE
  16. #endif
  17. #define UDC_BULK_HS_PACKET_SIZE 512
  18. #ifndef UDC_INT_ENDPOINT
  19. #define UDC_INT_ENDPOINT 1
  20. #endif
  21. #ifndef UDC_OUT_ENDPOINT
  22. #define UDC_OUT_ENDPOINT 2
  23. #endif
  24. #ifndef UDC_IN_ENDPOINT
  25. #define UDC_IN_ENDPOINT 3
  26. #endif
  27. /* function declarations */
  28. int udc_init(void);
  29. void udc_irq(void);
  30. int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
  31. void udc_setup_ep(struct usb_device_instance *device, unsigned int ep,
  32. struct usb_endpoint_instance *endpoint);
  33. void udc_connect(void);
  34. void udc_disconnect(void);
  35. void udc_enable(struct usb_device_instance *device);
  36. void udc_disable(void);
  37. void udc_startup_events(struct usb_device_instance *device);
  38. /* Flow control */
  39. void udc_set_nak(int epid);
  40. void udc_unset_nak(int epid);
  41. #endif