udc.h 1.2 KB

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