|
|
@@ -148,22 +148,6 @@ bool ep_isstalled(uint8_t ep) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void enable(bool enable) {
|
|
|
- if (enable) {
|
|
|
- RCC->APB1ENR |= RCC_APB1ENR_USBEN;
|
|
|
- RCC->APB1RSTR |= RCC_APB1RSTR_USBRST;
|
|
|
- RCC->APB1RSTR &= ~RCC_APB1RSTR_USBRST;
|
|
|
- USB->CNTR = USB_CNTR_CTRM | USB_CNTR_RESETM | USB_CNTR_ERRM |
|
|
|
-#if !defined(USBD_SOF_DISABLED)
|
|
|
- USB_CNTR_SOFM |
|
|
|
-#endif
|
|
|
- USB_CNTR_SUSPM | USB_CNTR_WKUPM;
|
|
|
- } else if (RCC->APB1ENR & RCC_APB1ENR_USBEN) {
|
|
|
- RCC->APB1RSTR |= RCC_APB1RSTR_USBRST;
|
|
|
- RCC->APB1ENR &= ~RCC_APB1ENR_USBEN;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
void reset (void) {
|
|
|
USB->CNTR |= USB_CNTR_FRES;
|
|
|
USB->CNTR &= ~USB_CNTR_FRES;
|
|
|
@@ -201,6 +185,24 @@ uint8_t connect(bool connect) {
|
|
|
return usbd_lane_unk;
|
|
|
}
|
|
|
|
|
|
+void enable(bool enable) {
|
|
|
+ if (enable) {
|
|
|
+ RCC->APB1ENR |= RCC_APB1ENR_USBEN;
|
|
|
+ RCC->APB1RSTR |= RCC_APB1RSTR_USBRST;
|
|
|
+ RCC->APB1RSTR &= ~RCC_APB1RSTR_USBRST;
|
|
|
+ USB->CNTR = USB_CNTR_CTRM | USB_CNTR_RESETM | USB_CNTR_ERRM |
|
|
|
+#if !defined(USBD_SOF_DISABLED)
|
|
|
+ USB_CNTR_SOFM |
|
|
|
+#endif
|
|
|
+ USB_CNTR_SUSPM | USB_CNTR_WKUPM;
|
|
|
+ } else if (RCC->APB1ENR & RCC_APB1ENR_USBEN) {
|
|
|
+ RCC->APB1RSTR |= RCC_APB1RSTR_USBRST;
|
|
|
+ RCC->APB1ENR &= ~RCC_APB1ENR_USBEN;
|
|
|
+ /* disconnecting DP if configured */
|
|
|
+ connect(0);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void setaddr (uint8_t addr) {
|
|
|
USB->DADDR = USB_DADDR_EF | addr;
|
|
|
}
|