usb.h 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. // SPDX-License-Identifier: BSD-3-Clause
  2. // Copyright (c) 2016-2022, Alex Taradov <alex@taradov.com>. All rights reserved.
  3. #ifndef _USB_H_
  4. #define _USB_H_
  5. /*- Includes ----------------------------------------------------------------*/
  6. #include <stdint.h>
  7. #include <stdbool.h>
  8. #include "usb_descriptors.h"
  9. /*- Prototypes --------------------------------------------------------------*/
  10. void usb_hw_init(void);
  11. void usb_attach(void);
  12. void usb_detach(void);
  13. void usb_configure_endpoint(usb_endpoint_descriptor_t *ep_desc);
  14. bool usb_endpoint_configured(int ep, int dir);
  15. int usb_endpoint_get_status(int ep, int dir);
  16. void usb_endpoint_set_feature(int ep, int dir);
  17. void usb_endpoint_clear_feature(int ep, int dir);
  18. void usb_set_address(int address);
  19. void usb_send(int ep, uint8_t *data, int size);
  20. void usb_recv(int ep, uint8_t *data, int size);
  21. void usb_control_send_zlp(void);
  22. void usb_control_stall(void);
  23. void usb_control_send(uint8_t *data, int size);
  24. void usb_control_recv(void (*callback)(uint8_t *data, int size));
  25. void usb_task(void);
  26. void usb_configuration_callback(int config);
  27. #endif // _USB_H_