drivers: usb_device: smartbond: Fix reenable of EP0
When EP0 was disabled EP0 was setup to ignore setup and
out packets.
In usb_dc_ep_enable() function mask was never cleared.
It resulted in USB stop functioning after application
disabled endpoint (usb_disable()) and then tried
to enable usb again.
Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg@codecoup.pl>
diff --git a/drivers/usb/device/usb_dc_smartbond.c b/drivers/usb/device/usb_dc_smartbond.c
index e409e45..a6fb8a1 100644
--- a/drivers/usb/device/usb_dc_smartbond.c
+++ b/drivers/usb/device/usb_dc_smartbond.c
@@ -1192,6 +1192,8 @@
USB->USB_MAMSK_REG |= USB_USB_MAMSK_REG_USB_M_EP0_TX_Msk;
} else if (ep_state->ep_addr == EP0_OUT) {
USB->USB_MAMSK_REG |= USB_USB_MAMSK_REG_USB_M_EP0_RX_Msk;
+ /* Clear USB_IGN_SETUP and USB_IGN_OUT */
+ USB->USB_RXC0_REG = 0;
ep_state->last_packet_size = 0;
ep_state->transferred = 0;
ep_state->total_len = 0;