summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2021-08-31 16:41:45 +0700
committerhathach <[email protected]>2021-08-31 16:41:45 +0700
commit76345ea3a1d78924585b8c4e0c5b5cb5e89d74e7 (patch)
treecea27e78b18c64ed73c73a8d19279af55076c20f /src
parent38f5aee9c31299874dcda1758cb98e4404c6ad9d (diff)
clear stall and reset data toggle when open edpt
required to pass one of msc test.
Diffstat (limited to 'src')
-rw-r--r--src/portable/microchip/samd/dcd_samd.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/portable/microchip/samd/dcd_samd.c b/src/portable/microchip/samd/dcd_samd.c
index 54e8e62d9..526a6fb63 100644
--- a/src/portable/microchip/samd/dcd_samd.c
+++ b/src/portable/microchip/samd/dcd_samd.c
@@ -230,10 +230,12 @@ bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const * desc_edpt)
if ( dir == TUSB_DIR_OUT )
{
ep->EPCFG.bit.EPTYPE0 = desc_edpt->bmAttributes.xfer + 1;
+ ep->EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_STALLRQ0 | USB_DEVICE_EPSTATUSCLR_DTGLOUT; // clear stall & dtoggle
ep->EPINTENSET.bit.TRCPT0 = true;
}else
{
ep->EPCFG.bit.EPTYPE1 = desc_edpt->bmAttributes.xfer + 1;
+ ep->EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_STALLRQ1 | USB_DEVICE_EPSTATUSCLR_DTGLIN; // clear stall & dtoggle
ep->EPINTENSET.bit.TRCPT1 = true;
}