From 2c535106ee5bbbcc019cb0820d1a5fcf0639eb9e Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 16 Sep 2019 11:45:36 -0400 Subject: stm32: Initial support for stm32f070 Signed-off-by: Kevin O'Connor --- src/stm32/usbfs.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'src/stm32/usbfs.c') diff --git a/src/stm32/usbfs.c b/src/stm32/usbfs.c index b9152e62..aadc4027 100644 --- a/src/stm32/usbfs.c +++ b/src/stm32/usbfs.c @@ -235,7 +235,7 @@ usb_reset(void) // Main irq handler void -USB_LP_CAN1_RX0_IRQHandler(void) +USB_IRQHandler(void) { uint32_t istr = USB->ISTR; if (istr & USB_ISTR_CTR) { @@ -269,10 +269,12 @@ DECL_CONSTANT_STR("RESERVE_PINS_USB", "PA11,PA12"); void usb_init(void) { - // Pull the D+ pin low briefly to signal a new connection - gpio_out_setup(GPIO('A', 12), 0); - udelay(5000); - gpio_in_setup(GPIO('A', 12), 0); + if (CONFIG_MACH_STM32F1) { + // Pull the D+ pin low briefly to signal a new connection + gpio_out_setup(GPIO('A', 12), 0); + udelay(5000); + gpio_in_setup(GPIO('A', 12), 0); + } // Enable USB clock enable_pclock(USB_BASE); @@ -280,12 +282,21 @@ usb_init(void) // Setup USB packet memory btable_configure(); + // Enable USB pullup +#ifdef USB_BCDR_DPPU + USB->BCDR = USB_BCDR_DPPU; +#endif + // Reset usb controller and enable interrupts USB->CNTR = USB_CNTR_FRES; USB->BTABLE = 0; USB->DADDR = 0; USB->CNTR = USB_CNTR_RESETM; USB->ISTR = 0; - armcm_enable_irq(USB_LP_CAN1_RX0_IRQHandler, USB_LP_CAN1_RX0_IRQn, 1); +#if CONFIG_MACH_STM32F103 + armcm_enable_irq(USB_IRQHandler, USB_LP_IRQn, 1); +#elif CONFIG_MACH_STM32F0 + armcm_enable_irq(USB_IRQHandler, USB_IRQn, 1); +#endif } DECL_INIT(usb_init); -- cgit v1.2.3-70-g09d2