summaryrefslogtreecommitdiff
path: root/ucoo/hal/usb/usb.stm32.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ucoo/hal/usb/usb.stm32.cc')
-rw-r--r--ucoo/hal/usb/usb.stm32.cc26
1 files changed, 19 insertions, 7 deletions
diff --git a/ucoo/hal/usb/usb.stm32.cc b/ucoo/hal/usb/usb.stm32.cc
index 79f73d2..37595e8 100644
--- a/ucoo/hal/usb/usb.stm32.cc
+++ b/ucoo/hal/usb/usb.stm32.cc
@@ -30,12 +30,19 @@
#include "usb_desc.stm32.h"
-#if UCOO_CONFIG_HAL_USB_DRIVER_HS
-# define usb_isr otg_hs_isr
-# define usb_driver otghs_usb_driver
+#if defined (TARGET_stm32f4)
+# if UCOO_CONFIG_HAL_USB_DRIVER_HS
+# define usb_isr otg_hs_isr
+# define usb_driver otghs_usb_driver
+# else
+# define usb_isr otg_fs_isr
+# define usb_driver otgfs_usb_driver
+# endif
+#elif defined (TARGET_stm32f1)
+# define usb_isr otg_fs_isr
+# define usb_driver otgfs_usb_driver
#else
-# define usb_isr otg_fs_isr
-# define usb_driver otgfs_usb_driver
+# error "not implemented for this target"
#endif
static usbd_device *usbdev;
@@ -74,18 +81,23 @@ UsbStreamControl::UsbStreamControl (const char *vendor, const char *product)
instance_ = this;
strings[0] = vendor;
strings[1] = product;
-#if UCOO_CONFIG_HAL_USB_DRIVER_HS
+#if defined (TARGET_stm32f4)
+# if UCOO_CONFIG_HAL_USB_DRIVER_HS
rcc_periph_clock_enable (RCC_OTGHS);
rcc_periph_clock_enable (RCC_GPIOB);
gpio_mode_setup (GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE,
GPIO13 | GPIO14 | GPIO15);
gpio_set_af (GPIOB, GPIO_AF12, GPIO13 | GPIO14 | GPIO15);
-#else
+# else
rcc_periph_clock_enable (RCC_OTGFS);
rcc_periph_clock_enable (RCC_GPIOA);
gpio_mode_setup (GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE,
GPIO9 | GPIO11 | GPIO12);
gpio_set_af (GPIOA, GPIO_AF10, GPIO9 | GPIO11 | GPIO12);
+# endif
+#elif defined (TARGET_stm32f1)
+ rcc_periph_clock_enable (RCC_OTGFS);
+ rcc_periph_clock_enable (RCC_GPIOA);
#endif
usbdev = usbd_init (&usb_driver, &usb_desc_dev, &usb_desc_config,
strings, lengthof (strings),