diff options
author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-06-15 16:29:19 -0400 |
---|---|---|
committer | Marti Bolivar <mbolivar@leaflabs.com> | 2011-10-18 13:30:17 -0400 |
commit | 9e3c80a3ae38c111c138aa9e7c70f1abb5d1424f (patch) | |
tree | 9accce7b55bb9b680f4dee2010087eb3b566b248 /libmaple/usb | |
parent | c023d179fa613f979d50a0d105f08b9b58c7ce6b (diff) | |
download | librambutan-9e3c80a3ae38c111c138aa9e7c70f1abb5d1424f.tar.gz librambutan-9e3c80a3ae38c111c138aa9e7c70f1abb5d1424f.zip |
usb: Move some board-specific configuration to Wirish.
Create new BOARD_USB_DISC_DEV and BOARD_USB_DISC_BIT board-specific
values. Use these as arguments to setupUSB() and disableUSB(). This
helps make the USB stack more generic, and goes towards the resolution
of an important FIXME.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
Diffstat (limited to 'libmaple/usb')
-rw-r--r-- | libmaple/usb/usb.c | 10 | ||||
-rw-r--r-- | libmaple/usb/usb.h | 5 | ||||
-rw-r--r-- | libmaple/usb/usb_config.h | 42 |
3 files changed, 18 insertions, 39 deletions
diff --git a/libmaple/usb/usb.c b/libmaple/usb/usb.c index 651b36e..9b70b6b 100644 --- a/libmaple/usb/usb.c +++ b/libmaple/usb/usb.c @@ -99,22 +99,22 @@ struct { volatile uint8 bESOFcnt; } ResumeS; -void setupUSB (void) { - gpio_set_mode(USB_DISC_DEV, USB_DISC_PIN, GPIO_OUTPUT_PP); +void setupUSB (gpio_dev *disc_dev, uint8 disc_bit) { + gpio_set_mode(disc_dev, disc_bit, GPIO_OUTPUT_PP); /* setup the apb1 clock for USB */ pRCC->APB1ENR |= 0x00800000; /* initialize the usb application */ - gpio_write_bit(USB_DISC_DEV, USB_DISC_PIN, 0); // presents us to the host + gpio_write_bit(disc_dev, disc_bit, 0); // presents us to the host USB_Init(); // low level init routine provided by the ST library } -void disableUSB (void) { +void disableUSB (gpio_dev *disc_dev, uint8 disc_bit) { // These are just guesses about how to do this // TODO: real disable function usbDsbISR(); - gpio_write_bit(USB_DISC_DEV, USB_DISC_PIN, 1); + gpio_write_bit(disc_dev, disc_bit, 1); } void usbSuspend(void) { diff --git a/libmaple/usb/usb.h b/libmaple/usb/usb.h index c724c54..0df3c8d 100644 --- a/libmaple/usb/usb.h +++ b/libmaple/usb/usb.h @@ -29,6 +29,7 @@ #include "usb_lib.h" #include "libmaple.h" +#include "gpio.h" #ifdef __cplusplus extern "C" { @@ -56,8 +57,8 @@ typedef enum { extern volatile uint32 bDeviceState; -void setupUSB(void); -void disableUSB(void); +void setupUSB(gpio_dev*, uint8); +void disableUSB(gpio_dev*, uint8); void usbSuspend(void); void usbResumeInit(void); void usbResume(RESUME_STATE); diff --git a/libmaple/usb/usb_config.h b/libmaple/usb/usb_config.h index 62a6a71..6eb88a5 100644 --- a/libmaple/usb/usb_config.h +++ b/libmaple/usb/usb_config.h @@ -25,42 +25,20 @@ *****************************************************************************/ #define VCOM_ID_VENDOR 0x1EAF +#define VCOM_ID_PRODUCT 0x0004 #define RESET_DELAY (100000) #define USB_CONFIG_MAX_POWER (100 >> 1) -#if defined(BOARD_maple) || defined(BOARD_maple_RET6) +#if !(defined(BOARD_maple) || defined(BOARD_maple_RET6) || \ + defined(BOARD_maple_mini) || defined(BOARD_maple_native)) - /* 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 - -#elif defined(BOARD_olimex_stm32_h103) - - #define VCOM_ID_PRODUCT 0x0004 - #define USB_DISC_DEV GPIOC - #define USB_DISC_PIN 11 - -#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.") +#warning ("Warning! 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, etc. 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 |