diff --git a/src/device/dcd.h b/src/device/dcd.h index 63f923fa..18678f15 100644 --- a/src/device/dcd.h +++ b/src/device/dcd.h @@ -107,7 +107,7 @@ void dcd_remote_wakeup(uint8_t rhport); * must be called to notify the stack * - busy : Check if endpoint transferring is complete (TODO remove) * - stall : stall endpoint - * - clear_stall : clear stall + * - clear_stall : clear stall, data toggle is also reset to DATA0 *------------------------------------------------------------------*/ bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const * p_endpoint_desc); bool dcd_edpt_xfer (uint8_t rhport, uint8_t ep_addr, uint8_t * buffer, uint16_t total_bytes); diff --git a/src/device/usbd.c b/src/device/usbd.c index d811c471..434a2c3d 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -456,7 +456,7 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const case TUSB_REQ_CLEAR_FEATURE: if ( TUSB_REQ_FEATURE_EDPT_HALT == p_request->wValue ) { - dcd_edpt_clear_stall(rhport, tu_u16_low(p_request->wIndex)); + usbd_edpt_clear_stall(rhport, tu_u16_low(p_request->wIndex)); } usbd_control_status(rhport, p_request); break; diff --git a/src/portable/nordic/nrf5x/dcd_nrf5x.c b/src/portable/nordic/nrf5x/dcd_nrf5x.c index 3e5f69f7..53f92bb1 100644 --- a/src/portable/nordic/nrf5x/dcd_nrf5x.c +++ b/src/portable/nordic/nrf5x/dcd_nrf5x.c @@ -322,7 +322,12 @@ void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr) if ( tu_edpt_number(ep_addr) ) { + // clear stall NRF_USBD->EPSTALL = (USBD_EPSTALL_STALL_UnStall << USBD_EPSTALL_STALL_Pos) | ep_addr; + + // reset data toggle to DATA0 + NRF_USBD->DTOGGLE = (USBD_DTOGGLE_VALUE_Data0 << USBD_DTOGGLE_VALUE_Pos) | ep_addr; + __ISB(); __DSB(); } } diff --git a/src/tusb_option.h b/src/tusb_option.h index cb6d573e..4e55132b 100644 --- a/src/tusb_option.h +++ b/src/tusb_option.h @@ -128,7 +128,6 @@ */ #ifndef CFG_TUSB_DEBUG #define CFG_TUSB_DEBUG 0 - #warning CFG_TUSB_DEBUG is not defined, default value is 0 #endif // place data in accessible RAM for usb controller @@ -165,6 +164,14 @@ #define CFG_TUD_MSC 0 #endif +#ifndef CFG_TUD_MIDI + #define CFG_TUD_MIDI 0 +#endif + +#ifndef CFG_TUD_CUSTOM_CLASS + #define CFG_TUD_CUSTOM_CLASS 0 +#endif + #endif // TUSB_OPT_DEVICE_ENABLED //--------------------------------------------------------------------