diff --git a/src/class/cdc/cdc_device.h b/src/class/cdc/cdc_device.h index 76bb7c622..f1ac08e73 100644 --- a/src/class/cdc/cdc_device.h +++ b/src/class/cdc/cdc_device.h @@ -177,11 +177,11 @@ static inline bool tud_cdc_write_flush (void) // INTERNAL USBD-CLASS DRIVER API //--------------------------------------------------------------------+ void cdcd_init (void); +void cdcd_reset (uint8_t rhport); bool cdcd_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length); bool cdcd_control_request (uint8_t rhport, tusb_control_request_t const * request); bool cdcd_control_complete (uint8_t rhport, tusb_control_request_t const * request); bool cdcd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes); -void cdcd_reset (uint8_t rhport); #ifdef __cplusplus } diff --git a/src/class/hid/hid_device.h b/src/class/hid/hid_device.h index 49512ac4e..577b9ca8e 100644 --- a/src/class/hid/hid_device.h +++ b/src/class/hid/hid_device.h @@ -301,11 +301,11 @@ TU_ATTR_WEAK bool tud_hid_set_idle_cb(uint8_t idle_rate); // Internal Class Driver API //--------------------------------------------------------------------+ void hidd_init (void); +void hidd_reset (uint8_t rhport); bool hidd_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length); bool hidd_control_request (uint8_t rhport, tusb_control_request_t const * request); bool hidd_control_complete (uint8_t rhport, tusb_control_request_t const * request); bool hidd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); -void hidd_reset (uint8_t rhport); #ifdef __cplusplus } diff --git a/src/class/midi/midi_device.h b/src/class/midi/midi_device.h index f9d13ffb6..6d9b292a3 100644 --- a/src/class/midi/midi_device.h +++ b/src/class/midi/midi_device.h @@ -122,11 +122,11 @@ static inline uint32_t tudi_midi_write24 (uint8_t jack_id, uint8_t b1, uint8_t b // Internal Class Driver API //--------------------------------------------------------------------+ void midid_init (void); +void midid_reset (uint8_t rhport); bool midid_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length); bool midid_control_request (uint8_t rhport, tusb_control_request_t const * request); bool midid_control_complete (uint8_t rhport, tusb_control_request_t const * request); bool midid_xfer_cb (uint8_t rhport, uint8_t edpt_addr, xfer_result_t result, uint32_t xferred_bytes); -void midid_reset (uint8_t rhport); #ifdef __cplusplus } diff --git a/src/class/msc/msc_device.h b/src/class/msc/msc_device.h index 5998400b1..72f208ad5 100644 --- a/src/class/msc/msc_device.h +++ b/src/class/msc/msc_device.h @@ -152,11 +152,11 @@ TU_ATTR_WEAK bool tud_msc_is_writable_cb(uint8_t lun); // Internal Class Driver API //--------------------------------------------------------------------+ void mscd_init (void); +void mscd_reset (uint8_t rhport); bool mscd_open (uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length); bool mscd_control_request (uint8_t rhport, tusb_control_request_t const * p_request); bool mscd_control_complete (uint8_t rhport, tusb_control_request_t const * p_request); bool mscd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); -void mscd_reset (uint8_t rhport); #ifdef __cplusplus } diff --git a/src/class/vendor/vendor_device.c b/src/class/vendor/vendor_device.c index 2f7bba16a..e1a0c2739 100644 --- a/src/class/vendor/vendor_device.c +++ b/src/class/vendor/vendor_device.c @@ -45,21 +45,27 @@ typedef struct { uint8_t ep_in; uint8_t ep_out; -} cusd_interface_t; +} vendord_interface_t; -static cusd_interface_t _cusd_itf; +static vendord_interface_t _vendord_itf; /*------------------------------------------------------------------*/ /* FUNCTION DECLARATION *------------------------------------------------------------------*/ -void cusd_init(void) +void vendord_init(void) { - tu_varclr(&_cusd_itf); + tu_varclr(&_vendord_itf); } -bool cusd_open(uint8_t rhport, tusb_desc_interface_t const * p_desc_itf, uint16_t *p_len) +void vendord_reset(uint8_t rhport) { - cusd_interface_t* p_itf = &_cusd_itf; + +} + + +bool vendord_open(uint8_t rhport, tusb_desc_interface_t const * p_desc_itf, uint16_t *p_len) +{ + vendord_interface_t* p_itf = &_vendord_itf; // Open endpoint pair with usbd helper tusb_desc_endpoint_t const *p_desc_ep = (tusb_desc_endpoint_t const *) tu_desc_next(p_desc_itf); @@ -75,19 +81,10 @@ bool cusd_open(uint8_t rhport, tusb_desc_interface_t const * p_desc_itf, uint16_ return true; } -bool cusd_control_request(uint8_t rhport, tusb_control_request_t const * p_request) -{ - return false; -} - -bool cusd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes) +bool vendord_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes) { return true; } -void cusd_reset(uint8_t rhport) -{ - -} #endif diff --git a/src/class/vendor/vendor_device.h b/src/class/vendor/vendor_device.h index c4001a89f..0c9d0184f 100644 --- a/src/class/vendor/vendor_device.h +++ b/src/class/vendor/vendor_device.h @@ -40,6 +40,11 @@ // Should be used with MCU supporting only 1 USB port for code simplicity //--------------------------------------------------------------------+ +bool tud_vendor_mounted(void); + +uint32_t tud_vendor_write(void const* buffer, uint32_t bufsize); +uint32_t tud_vendor_read(void* buffer, uint32_t bufsize); + //--------------------------------------------------------------------+ // APPLICATION CALLBACK API (WEAK is optional) @@ -48,11 +53,9 @@ //--------------------------------------------------------------------+ // Internal Class Driver API //--------------------------------------------------------------------+ -void cusd_init(void); -bool cusd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length); -bool cusd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request); -bool cusd_control_complete (uint8_t rhport, tusb_control_request_t const * p_request); -bool cusd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); -void cusd_reset(uint8_t rhport); +void vendord_init(void); +void vendord_reset(uint8_t rhport); +bool vendord_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length); +bool vendord_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); #endif /* _TUSB_CUSTOM_DEVICE_H_ */ diff --git a/src/device/usbd.c b/src/device/usbd.c index 08eee7506..a24113026 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -68,12 +68,12 @@ typedef struct { uint8_t class_code; void (* init ) (void); + void (* reset ) (uint8_t rhport); bool (* open ) (uint8_t rhport, tusb_desc_interface_t const * desc_intf, uint16_t* p_length); bool (* control_request ) (uint8_t rhport, tusb_control_request_t const * request); bool (* control_complete ) (uint8_t rhport, tusb_control_request_t const * request); bool (* xfer_cb ) (uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); void (* sof ) (uint8_t rhport); - void (* reset ) (uint8_t); } usbd_class_driver_t; static usbd_class_driver_t const usbd_class_drivers[] = @@ -82,12 +82,12 @@ static usbd_class_driver_t const usbd_class_drivers[] = { .class_code = TUSB_CLASS_CDC, .init = cdcd_init, + .reset = cdcd_reset, .open = cdcd_open, .control_request = cdcd_control_request, .control_complete = cdcd_control_complete, .xfer_cb = cdcd_xfer_cb, - .sof = NULL, - .reset = cdcd_reset + .sof = NULL }, #endif @@ -95,12 +95,12 @@ static usbd_class_driver_t const usbd_class_drivers[] = { .class_code = TUSB_CLASS_MSC, .init = mscd_init, + .reset = mscd_reset, .open = mscd_open, .control_request = mscd_control_request, .control_complete = mscd_control_complete, .xfer_cb = mscd_xfer_cb, - .sof = NULL, - .reset = mscd_reset + .sof = NULL }, #endif @@ -108,12 +108,12 @@ static usbd_class_driver_t const usbd_class_drivers[] = { .class_code = TUSB_CLASS_HID, .init = hidd_init, + .reset = hidd_reset, .open = hidd_open, .control_request = hidd_control_request, .control_complete = hidd_control_complete, .xfer_cb = hidd_xfer_cb, - .sof = NULL, - .reset = hidd_reset + .sof = NULL }, #endif @@ -122,24 +122,24 @@ static usbd_class_driver_t const usbd_class_drivers[] = .class_code = TUSB_CLASS_AUDIO, .init = midid_init, .open = midid_open, + .reset = midid_reset, .control_request = midid_control_request, .control_complete = midid_control_complete, .xfer_cb = midid_xfer_cb, - .sof = NULL, - .reset = midid_reset + .sof = NULL }, #endif #if CFG_TUD_VENDOR { .class_code = TUSB_CLASS_VENDOR_SPECIFIC, - .init = cusd_init, - .open = cusd_open, - .control_request = cusd_control_request, - .control_complete = cusd_control_complete, - .xfer_cb = cusd_xfer_cb, - .sof = NULL, - .reset = cusd_reset + .init = vendord_init, + .reset = vendord_reset, + .open = vendord_open, + .control_request = NULL, // tud_control_vendor_request_cb + .control_complete = NULL, // tud_control_vendor_complete_cb + .xfer_cb = vendord_xfer_cb, + .sof = NULL }, #endif }; diff --git a/test/test/support/tusb_config.h b/test/test/support/tusb_config.h index eaa63b958..b82a09a23 100644 --- a/test/test/support/tusb_config.h +++ b/test/test/support/tusb_config.h @@ -70,31 +70,31 @@ // DEVICE CONFIGURATION //-------------------------------------------------------------------- -#define CFG_TUD_ENDOINT0_SIZE 64 +#define CFG_TUD_ENDOINT0_SIZE 64 //------------- CLASS -------------// -#define CFG_TUD_CDC 1 -#define CFG_TUD_MSC 1 -#define CFG_TUD_HID 1 +#define CFG_TUD_CDC 1 +#define CFG_TUD_MSC 1 +#define CFG_TUD_HID 1 -#define CFG_TUD_MIDI 1 -#define CFG_TUD_VENDOR 0 +#define CFG_TUD_MIDI 1 +#define CFG_TUD_VENDOR 1 //------------- CDC -------------// // FIFO size of CDC TX and RX -#define CFG_TUD_CDC_RX_BUFSIZE 64 -#define CFG_TUD_CDC_TX_BUFSIZE 64 +#define CFG_TUD_CDC_RX_BUFSIZE 64 +#define CFG_TUD_CDC_TX_BUFSIZE 64 //------------- MSC -------------// // Buffer size of Device Mass storage -#define CFG_TUD_MSC_BUFSIZE 512 +#define CFG_TUD_MSC_BUFSIZE 512 //------------- HID -------------// // Should be sufficient to hold ID (if any) + Data -#define CFG_TUD_HID_BUFSIZE 16 +#define CFG_TUD_HID_BUFSIZE 16 #ifdef __cplusplus }