32 #if defined(__LPC18XX__) || defined(__LPC43XX__)
35 #include "../../USBTask.h"
37 #if defined(USB_CAN_BE_DEVICE)
38 #include "../../Device.h"
42 #if defined(USB_DEVICE_ROM_DRIVER)
51 USB_REG(corenum)->USBCMD_D |= (1 << 0);
54 USB_REG(corenum)->USBCMD_D &= ~(1 << 0);
64 static bool coreEnabled[2];
69 if (!coreEnabled[corenum]) {
71 if (!coreEnabled[1 - corenum]) {
94 #if defined(USB_CAN_BE_HOST)
98 #if defined(USB_CAN_BE_DEVICE)
105 coreEnabled[corenum] =
true;
108 #if defined(USB_CAN_BE_DEVICE) && (!defined(USB_DEVICE_ROM_DRIVER))
110 USB_REG(corenum)->USBCMD_D = USBCMD_D_Reset;
112 while (
USB_REG(corenum)->USBCMD_D & USBCMD_D_Reset) ;
115 USB_REG(corenum)->USBMODE_D = (0x2 << 0) ;
119 LPC_USB0->OTGSC = (1 << 3) | (1 << 0) ;
120 #if (USB_FORCED_FULLSPEED)
132 #if defined(USB_CAN_BE_HOST)
133 USB_REG(corenum)->USBSTS_H = 0xFFFFFFFF;
134 USB_REG(corenum)->PORTSC1_H &= ~(1 << 12);
135 USB_REG(corenum)->USBMODE_H = (1 << 0);
139 #if defined(USB_CAN_BE_DEVICE)
141 USB_REG(corenum)->USBSTS_D = 0xFFFFFFFF;
142 USB_REG(corenum)->ENDPTNAK = 0xFFFFFFFF;
143 USB_REG(corenum)->ENDPTNAKEN = 0;
144 USB_REG(corenum)->ENDPTSETUPSTAT =
USB_REG(corenum)->ENDPTSETUPSTAT;
145 USB_REG(corenum)->ENDPTCOMPLETE =
USB_REG(corenum)->ENDPTCOMPLETE;
146 while (
USB_REG(corenum)->ENDPTPRIME) ;
147 USB_REG(corenum)->ENDPTFLUSH = 0xFFFFFFFF;
148 while (
USB_REG(corenum)->ENDPTFLUSH) ;
153 if (coreEnabled[1 - corenum]) {
169 if (coreEnabled[1 - corenum]) {
174 coreEnabled[corenum] =
false;
179 NVIC_EnableIRQ((corenum) ? USB1_IRQn : USB0_IRQn);
184 NVIC_DisableIRQ((corenum) ? USB1_IRQn : USB0_IRQn);
190 #ifdef USB_CAN_BE_HOST
195 #ifdef USB_CAN_BE_DEVICE
196 #ifdef USB_DEVICE_ROM_DRIVER
208 #ifdef USB_CAN_BE_HOST
213 #ifdef USB_CAN_BE_DEVICE
214 #ifdef USB_DEVICE_ROM_DRIVER