DonCon2040/include/usb/usb_driver.h
2023-04-22 18:18:02 +02:00

58 lines
985 B
C

#ifndef _USB_USB_DRIVER_H_
#define _USB_USB_DRIVER_H_
#include "tusb.h"
#include <stdint.h>
#define USBD_MANUFACTURER "DonCon"
#define USBD_PRODUCT "DonCon rev1"
#define USBD_MAX_POWER_MAX (500)
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
// USB_MODE_SWITCH_TATACON,
// USB_MODE_SWITCH_HORIPAD,
// USB_MODE_DUALSHOCK3,
// USB_MODE_DUALSHOCK4,
USB_MODE_XBOX360,
USB_MODE_DEBUG,
} usb_mode_t;
enum {
USBD_STR_LANGUAGE,
USBD_STR_MANUFACTURER,
USBD_STR_PRODUCT,
USBD_STR_SERIAL,
USBD_STR_CDC,
USBD_STR_SWITCH,
USBD_STR_PS3,
USBD_STR_PS4,
USBD_STR_XINPUT,
USBD_STR_RPI_RESET,
};
typedef struct {
uint8_t *data;
uint16_t size;
} usb_report_t;
extern char *const usbd_desc_str[];
void usb_driver_init(usb_mode_t mode);
void usb_driver_task();
usb_mode_t usb_driver_get_mode();
void usb_driver_send_and_receive_report(usb_report_t report);
#ifdef __cplusplus
}
#endif
#endif // _USB_USB_DRIVER_H_