diff --git a/os/hal/ports/RP/LLD/USBDv1/hal_usb_lld.c b/os/hal/ports/RP/LLD/USBDv1/hal_usb_lld.c index 8a61f162..1a60f44e 100644 --- a/os/hal/ports/RP/LLD/USBDv1/hal_usb_lld.c +++ b/os/hal/ports/RP/LLD/USBDv1/hal_usb_lld.c @@ -523,12 +523,14 @@ OSAL_IRQ_HANDLER(RP_USBCTRL_IRQ_HANDLER) { } } +#if RP_USB_USE_ERROR_DATA_SEQ_INTR == TRUE if (ints & USB_INTE_ERROR_DATA_SEQ) { #ifdef USB_DEBUG cmd_send(CMD_DATA_ERROR, 0); #endif USB->CLR.SIESTATUS = USB_SIE_STATUS_DATA_SEQ_ERROR; } +#endif /* RP_USB_USE_ERROR_DATA_SEQ_INTR */ OSAL_IRQ_EPILOGUE(); } @@ -606,8 +608,10 @@ void usb_lld_start(USBDriver *usbp) { USB_INTE_DEV_RESUME_FROM_HOST | USB_INTE_DEV_SUSPEND | USB_INTE_BUS_RESET | - USB_INTE_BUFF_STATUS | - USB_INTE_ERROR_DATA_SEQ; + USB_INTE_BUFF_STATUS; +#if RP_USB_USE_ERROR_DATA_SEQ_INTR == TRUE + USB->INTE |= USB_INTE_ERROR_DATA_SEQ; +#endif /* RP_USB_USE_ERROR_DATA_SEQ_INTR */ #if RP_USB_USE_SOF_INTR == TRUE USB->INTE |= USB_INTE_DEV_SOF; #endif /* RP_USB_USE_SOF_INTR */ diff --git a/testhal/RP/RP2040/RT-RP2040-PICO-HID/cfg/mcuconf.h b/testhal/RP/RP2040/RT-RP2040-PICO-HID/cfg/mcuconf.h index c45cde0a..d6b191f4 100644 --- a/testhal/RP/RP2040/RT-RP2040-PICO-HID/cfg/mcuconf.h +++ b/testhal/RP/RP2040/RT-RP2040-PICO-HID/cfg/mcuconf.h @@ -76,5 +76,6 @@ #define RP_USB_USE_USBD1 TRUE #define RP_USB_FORCE_VBUS_DETECT TRUE #define RP_USB_USE_SOF_INTR FALSE +#define RP_USB_USE_ERROR_DATA_SEQ_INTR TRUE #endif /* MCUCONF_H */ diff --git a/testhal/RP/RP2040/RT-RP2040-PICO-SERIAL/cfg/mcuconf.h b/testhal/RP/RP2040/RT-RP2040-PICO-SERIAL/cfg/mcuconf.h index 4c22de7b..79abb121 100644 --- a/testhal/RP/RP2040/RT-RP2040-PICO-SERIAL/cfg/mcuconf.h +++ b/testhal/RP/RP2040/RT-RP2040-PICO-SERIAL/cfg/mcuconf.h @@ -76,5 +76,6 @@ #define RP_USB_USE_USBD1 TRUE #define RP_USB_FORCE_VBUS_DETECT TRUE #define RP_USB_USE_SOF_INTR TRUE +#define RP_USB_USE_ERROR_DATA_SEQ_INTR TRUE #endif /* MCUCONF_H */