summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2025-05-09 18:10:45 +0800
committersakumisu <[email protected]>2025-05-09 18:10:45 +0800
commitba2f91f24c08aec793658cc2eae0b72bd4093ebb (patch)
treea8976762cf0030571f821b1eefa46b2d72a9a953
parent2d8c4ca56a16391da36c668ccdea052ebcef2b2d (diff)
fix(port/musb/usb_dc_musb): enable USB_TXCSRH1_MODE for in ep
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--port/musb/usb_dc_musb.c8
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;