diff options
| -rw-r--r-- | port/musb/usb_dc_musb.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/port/musb/usb_dc_musb.c b/port/musb/usb_dc_musb.c index 8b868e3f..753e45bf 100644 --- a/port/musb/usb_dc_musb.c +++ b/port/musb/usb_dc_musb.c @@ -388,6 +388,8 @@ int usbd_ep_open(uint8_t busid, const struct usb_endpoint_descriptor *ep) HWREGB(USB_BASE + MUSB_IND_RXCSRL_OFFSET) = (USB_RXCSRL1_CLRDT | USB_RXCSRL1_FLUSH); else HWREGB(USB_BASE + MUSB_IND_RXCSRL_OFFSET) = USB_RXCSRL1_CLRDT; + + HWREGB(USB_BASE + MUSB_IND_TXCSRH_OFFSET) &= ~USB_TXCSRH1_MODE; } else { g_musb_udc.in_ep[ep_idx].ep_mps = USB_GET_MAXPACKETSIZE(ep->wMaxPacketSize); g_musb_udc.in_ep[ep_idx].ep_type = USB_GET_ENDPOINT_TYPE(ep->bmAttributes); @@ -424,7 +426,7 @@ int usbd_ep_open(uint8_t busid, const struct usb_endpoint_descriptor *ep) ui32Register |= USB_TXCSRH1_ISO; } - HWREGB(USB_BASE + MUSB_IND_TXCSRH_OFFSET) = ui32Register; + HWREGB(USB_BASE + MUSB_IND_TXCSRH_OFFSET) = ui32Register | USB_TXCSRH1_MODE; // Reset the Data toggle to zero. if (HWREGB(USB_BASE + MUSB_IND_TXCSRL_OFFSET) & USB_TXCSRL1_TXRDY) @@ -512,13 +514,13 @@ int usbd_ep_is_stalled(uint8_t busid, const uint8_t ep, uint8_t *stalled) musb_set_active_ep(ep_idx); if (USB_EP_DIR_IS_OUT(ep)) { - if(HWREGB(USB_BASE + MUSB_IND_RXCSRL_OFFSET) & USB_RXCSRL1_STALL) { + if (HWREGB(USB_BASE + MUSB_IND_RXCSRL_OFFSET) & USB_RXCSRL1_STALL) { *stalled = 1; } else { *stalled = 0; } } else { - if(HWREGB(USB_BASE + MUSB_IND_TXCSRL_OFFSET) & USB_TXCSRL1_STALL) { + if (HWREGB(USB_BASE + MUSB_IND_TXCSRL_OFFSET) & USB_TXCSRL1_STALL) { *stalled = 1; } else { *stalled = 0; |
