mirror of
https://github.com/hathach/tinyusb.git
synced 2025-02-19 15:40:41 +00:00
clear data toggle in clear stall, also set config bit
This commit is contained in:
parent
75a2157715
commit
fa96078882
@ -145,6 +145,9 @@ void dcd_set_config (uint8_t rhport, uint8_t config_num)
|
||||
{
|
||||
(void) rhport;
|
||||
(void) config_num;
|
||||
|
||||
// Configured State
|
||||
// UDP->UDP_GLB_STAT |= UDP_GLB_STAT_CONFG_Msk;
|
||||
}
|
||||
|
||||
// Wake up host
|
||||
@ -163,15 +166,23 @@ void dcd_edpt0_status_complete(uint8_t rhport, tusb_control_request_t const * re
|
||||
{
|
||||
(void) rhport;
|
||||
|
||||
if (request->bRequest == TUSB_REQ_SET_ADDRESS)
|
||||
if (request->bmRequestType_bit.recipient == TUSB_REQ_RCPT_DEVICE &&
|
||||
request->bmRequestType_bit.type == TUSB_REQ_TYPE_STANDARD )
|
||||
{
|
||||
uint8_t const dev_addr = (uint8_t) request->wValue;
|
||||
if (request->bRequest == TUSB_REQ_SET_ADDRESS)
|
||||
{
|
||||
uint8_t const dev_addr = (uint8_t) request->wValue;
|
||||
|
||||
// Enable addressed state
|
||||
UDP->UDP_GLB_STAT |= UDP_GLB_STAT_FADDEN_Msk;
|
||||
// Enable addressed state
|
||||
UDP->UDP_GLB_STAT |= UDP_GLB_STAT_FADDEN_Msk;
|
||||
|
||||
// Set new address & Function enable bit
|
||||
UDP->UDP_FADDR = UDP_FADDR_FEN_Msk | UDP_FADDR_FADD(dev_addr);
|
||||
// Set new address & Function enable bit
|
||||
UDP->UDP_FADDR = UDP_FADDR_FEN_Msk | UDP_FADDR_FADD(dev_addr);
|
||||
}else if (request->bRequest == TUSB_REQ_SET_CONFIGURATION)
|
||||
{
|
||||
// Configured State
|
||||
UDP->UDP_GLB_STAT |= UDP_GLB_STAT_CONFG_Msk;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -255,8 +266,12 @@ void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
|
||||
|
||||
uint8_t const epnum = tu_edpt_number(ep_addr);
|
||||
|
||||
// clear stall, must also clear data toggle
|
||||
// clear stall
|
||||
UDP->UDP_CSR[epnum] &= ~UDP_CSR_FORCESTALL_Msk;
|
||||
|
||||
// must also reset EP to clear data toggle
|
||||
UDP->UDP_RST_EP = tu_bit_set(UDP->UDP_RST_EP, epnum);
|
||||
UDP->UDP_RST_EP = tu_bit_clear(UDP->UDP_RST_EP, epnum);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
|
Loading…
x
Reference in New Issue
Block a user