aboutsummaryrefslogtreecommitdiffstats
path: root/src/stm32/usbotg.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-08-22 08:48:10 -0400
committerKevin O'Connor <kevin@koconnor.net>2019-08-22 09:58:58 -0400
commita44bc950a393644b1af6b2e83bdcfc265a852583 (patch)
tree4206108a19775824342634b5297bad2416c75bb6 /src/stm32/usbotg.c
parent2a2cf1f536f985330054cf47f47ec7d2455e35fa (diff)
downloadkutter-a44bc950a393644b1af6b2e83bdcfc265a852583.tar.gz
kutter-a44bc950a393644b1af6b2e83bdcfc265a852583.tar.xz
kutter-a44bc950a393644b1af6b2e83bdcfc265a852583.zip
stm32: Move irq handler code above irq setup
Only code movement. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/stm32/usbotg.c')
-rw-r--r--src/stm32/usbotg.c84
1 files changed, 42 insertions, 42 deletions
diff --git a/src/stm32/usbotg.c b/src/stm32/usbotg.c
index b47643c3..95adfd36 100644
--- a/src/stm32/usbotg.c
+++ b/src/stm32/usbotg.c
@@ -264,48 +264,6 @@ usb_request_bootloader(void)
* Setup and interrupts
****************************************************************/
-DECL_CONSTANT_STR("RESERVE_PINS_USB", "PA11,PA12");
-
-// Initialize the usb controller
-void
-usb_init(void)
-{
- // Enable USB clock
- RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;
- while (!(OTG->GRSTCTL & USB_OTG_GRSTCTL_AHBIDL))
- ;
-
- // Configure USB in full-speed device mode
- OTG->GUSBCFG = (USB_OTG_GUSBCFG_FDMOD | USB_OTG_GUSBCFG_PHYSEL
- | (6 << USB_OTG_GUSBCFG_TRDT_Pos));
- OTGD->DCFG |= (3 << USB_OTG_DCFG_DSPD_Pos);
-#if CONFIG_MACH_STM32F446
- OTG->GOTGCTL = USB_OTG_GOTGCTL_BVALOEN | USB_OTG_GOTGCTL_BVALOVAL;
-#else
- OTG->GCCFG |= USB_OTG_GCCFG_NOVBUSSENS;
-#endif
-
- // Route pins
- gpio_peripheral(GPIO('A', 11), GPIO_FUNCTION(10), 0);
- gpio_peripheral(GPIO('A', 12), GPIO_FUNCTION(10), 0);
-
- // Setup USB packet memory
- fifo_configure();
-
- // Enable interrupts
- OTGD->DAINTMSK = (1 << 0) | (1 << USB_CDC_EP_BULK_IN);
- OTG->GINTMSK = (USB_OTG_GINTMSK_USBRST | USB_OTG_GINTSTS_USBSUSP
- | USB_OTG_GINTMSK_RXFLVLM | USB_OTG_GINTMSK_IEPINT);
- OTG->GAHBCFG = USB_OTG_GAHBCFG_GINT;
- NVIC_SetPriority(OTG_FS_IRQn, 1);
- NVIC_EnableIRQ(OTG_FS_IRQn);
-
- // Enable USB
- OTG->GCCFG |= USB_OTG_GCCFG_PWRDWN;
- OTGD->DCTL = 0;
-}
-DECL_INIT(usb_init);
-
// Configure interface after a USB reset event
static void
usb_reset(void)
@@ -396,3 +354,45 @@ OTG_FS_IRQHandler(void)
usb_notify_bulk_in();
}
}
+
+DECL_CONSTANT_STR("RESERVE_PINS_USB", "PA11,PA12");
+
+// Initialize the usb controller
+void
+usb_init(void)
+{
+ // Enable USB clock
+ RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;
+ while (!(OTG->GRSTCTL & USB_OTG_GRSTCTL_AHBIDL))
+ ;
+
+ // Configure USB in full-speed device mode
+ OTG->GUSBCFG = (USB_OTG_GUSBCFG_FDMOD | USB_OTG_GUSBCFG_PHYSEL
+ | (6 << USB_OTG_GUSBCFG_TRDT_Pos));
+ OTGD->DCFG |= (3 << USB_OTG_DCFG_DSPD_Pos);
+#if CONFIG_MACH_STM32F446
+ OTG->GOTGCTL = USB_OTG_GOTGCTL_BVALOEN | USB_OTG_GOTGCTL_BVALOVAL;
+#else
+ OTG->GCCFG |= USB_OTG_GCCFG_NOVBUSSENS;
+#endif
+
+ // Route pins
+ gpio_peripheral(GPIO('A', 11), GPIO_FUNCTION(10), 0);
+ gpio_peripheral(GPIO('A', 12), GPIO_FUNCTION(10), 0);
+
+ // Setup USB packet memory
+ fifo_configure();
+
+ // Enable interrupts
+ OTGD->DAINTMSK = (1 << 0) | (1 << USB_CDC_EP_BULK_IN);
+ OTG->GINTMSK = (USB_OTG_GINTMSK_USBRST | USB_OTG_GINTSTS_USBSUSP
+ | USB_OTG_GINTMSK_RXFLVLM | USB_OTG_GINTMSK_IEPINT);
+ OTG->GAHBCFG = USB_OTG_GAHBCFG_GINT;
+ NVIC_SetPriority(OTG_FS_IRQn, 1);
+ NVIC_EnableIRQ(OTG_FS_IRQn);
+
+ // Enable USB
+ OTG->GCCFG |= USB_OTG_GCCFG_PWRDWN;
+ OTGD->DCTL = 0;
+}
+DECL_INIT(usb_init);