aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/usb/usb_config.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmaple/usb/usb_config.h')
-rw-r--r--libmaple/usb/usb_config.h77
1 files changed, 70 insertions, 7 deletions
diff --git a/libmaple/usb/usb_config.h b/libmaple/usb/usb_config.h
index e5f3979..23b49ee 100644
--- a/libmaple/usb/usb_config.h
+++ b/libmaple/usb/usb_config.h
@@ -4,6 +4,68 @@
#define __USB_CONFIG_H
#include "usb_lib.h"
+#include "gpio.h"
+
+/******************************************************************************
+ ******************************************************************************
+ ***
+ *** HACK ALERT
+ ***
+ *** FIXME FIXME FIXME FIXME
+ ***
+ *** A bunch of board-specific #defines that are only used by the
+ *** USB routines got put into libmaple.h for what appear to be
+ *** historical reasons. I'm [mbolivar] putting them in here for
+ *** now, so that we can treat the usb/ directory as a black box,
+ *** freeing the rest of libmaple/ to be implemented as a
+ *** general-purpose STM32 library. All of this REALLY needs to get
+ *** moved into wirish when we get a chance to redo the USB stack.
+ ***
+ ******************************************************************************
+ *****************************************************************************/
+
+#define VCOM_ID_VENDOR 0x1EAF
+#define RESET_DELAY (100000)
+#define USB_CONFIG_MAX_POWER (100 >> 1)
+
+#if defined(BOARD_maple) || defined(BOARD_maple_RET6)
+
+ /* USB Identifier numbers */
+ #define VCOM_ID_PRODUCT 0x0004
+ #define USB_DISC_DEV GPIOC
+ #define USB_DISC_PIN 12
+
+#elif defined(BOARD_maple_mini)
+
+ #define VCOM_ID_PRODUCT 0x0004
+ #define USB_DISC_DEV GPIOB
+ #define USB_DISC_PIN 9
+
+#elif defined(BOARD_maple_native)
+
+ #define VCOM_ID_PRODUCT 0x0004
+ #define USB_DISC_DEV GPIOB
+ #define USB_DISC_PIN 8
+
+#else
+
+#error ("Sorry! the USB stack relies on LeafLabs board-specific " \
+ "configuration right now. If you want, you can pretend you're one " \
+ "of our boards; i.e., #define BOARD_maple, BOARD_maple_mini, or " \
+ "BOARD_maple_native according to what matches your MCU best. " \
+ "You should also take a look at libmaple/usb/descriptors.c; we make " \
+ "some assumptions there that you probably won't like.")
+
+#endif
+
+/******************************************************************************
+ ******************************************************************************
+ ***
+ *** END HACK
+ ***
+ ******************************************************************************
+ *****************************************************************************/
+
/* choose addresses to give endpoints the max 64 byte buffers */
#define USB_BTABLE_ADDRESS 0x00
@@ -33,14 +95,15 @@
#define NUM_ENDPTS 0x04
/* handle all usb interrupts */
-#define ISR_MSK ( CNTR_CTRM | \
- CNTR_WKUPM | \
- CNTR_SUSPM | \
- CNTR_ERRM | \
- CNTR_SOFM | \
- CNTR_ESOFM | \
- CNTR_RESETM )
+#define ISR_MSK (CNTR_CTRM | \
+ CNTR_WKUPM | \
+ CNTR_SUSPM | \
+ CNTR_ERRM | \
+ CNTR_SOFM | \
+ CNTR_ESOFM | \
+ CNTR_RESETM)
#define F_SUSPEND_ENABLED 1
+
#endif