summaryrefslogtreecommitdiff
path: root/usb
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-01-08 19:24:21 +0100
committerHarald Welte <laforge@gnumonks.org>2012-01-08 19:24:21 +0100
commit35055940944b62166fd2a202195f3abfe411bb27 (patch)
tree887e055975ee1d74319b4469eb5f1fd36f6bfdff /usb
parent7261a4b6b79c8d1e2f6f0238d6aa47cb4f27ee62 (diff)
DFU: runtime only has _one_ interface/altsetting
Diffstat (limited to 'usb')
-rw-r--r--usb/device/dfu/dfu.h59
1 files changed, 14 insertions, 45 deletions
diff --git a/usb/device/dfu/dfu.h b/usb/device/dfu/dfu.h
index 52b4ea5..f0e86f4 100644
--- a/usb/device/dfu/dfu.h
+++ b/usb/device/dfu/dfu.h
@@ -46,54 +46,26 @@ struct dfu_desc {
.bcdDFUVersion = 0x0100, \
}
-#define DFU_IF_DESCRIPTORS_STRUCT \
- USBInterfaceDescriptor dfu_interface[DFU_NUM_IF];
+#define DFURT_NUM_IF 1
-#define DFU_IF_DESCRIPTORS { \
- { \
- .bLength = sizeof(USBInterfaceDescriptor), \
- .bDescriptorType = USBGenericDescriptor_INTERFACE, \
- .bInterfaceNumber = CONFIG_DFU_NUM_APP_IF, \
- .bAlternateSetting = 0, \
- .bNumEndpoints = 0, \
- .bInterfaceClass = 0xFE, \
- .bInterfaceSubClass = 0x01, \
- .bInterfaceProtocol = 0x01, \
- .iInterface = CONFIG_DFU_NUM_APP_STR, \
- }, \
- { \
- .bLength = sizeof(USBInterfaceDescriptor), \
- .bDescriptorType = USBGenericDescriptor_INTERFACE, \
- .bInterfaceNumber = CONFIG_DFU_NUM_APP_IF+1, \
- .bAlternateSetting = 0, \
- .bNumEndpoints = 0, \
- .bInterfaceClass = 0xFE, \
- .bInterfaceSubClass = 0x01, \
- .bInterfaceProtocol = 0x01, \
- .iInterface = CONFIG_DFU_NUM_APP_STR+1, \
- }, \
- { \
+#define DFURT_IF_DESCRIPTOR_STRUCT \
+ USBInterfaceDescriptor dfu_rt; \
+ struct usb_dfu_func_descriptor func_dfu;
+
+
+#define DFURT_IF_DESCRIPTOR(dfuIF, dfuSTR) \
+ .dfu_rt = { \
.bLength = sizeof(USBInterfaceDescriptor), \
.bDescriptorType = USBGenericDescriptor_INTERFACE, \
- .bInterfaceNumber = CONFIG_DFU_NUM_APP_IF+2, \
+ .bInterfaceNumber = dfuIF, \
.bAlternateSetting = 0, \
.bNumEndpoints = 0, \
.bInterfaceClass = 0xFE, \
.bInterfaceSubClass = 0x01, \
.bInterfaceProtocol = 0x01, \
- .iInterface = CONFIG_DFU_NUM_APP_STR+2, \
+ .iInterface = dfuSTR, \
}, \
-}
-
-extern const struct USBStringDescriptor USBDFU_string1;
-extern const struct USBStringDescriptor USBDFU_string2;
-extern const struct USBStringDescriptor USBDFU_string3;
-
-#define DFU_NUM_STRINGS 3
-#define DFU_STRING_DESCRIPTORS \
- (const unsigned char *) &USBDFU_string1, \
- (const unsigned char *) &USBDFU_string2, \
- (const unsigned char *) &USBDFU_string3,
+ .func_dfu = DFU_FUNC_DESC \
const struct dfu_desc dfu_cfg_descriptor;
const USBDDriverDescriptors dfu_descriptors;
@@ -101,12 +73,9 @@ const USBDDriverDescriptors dfu_descriptors;
#else /* BOARD_USB_DFU */
/* no DFU bootloader is being used */
-#define DFU_NUM_IF 0
-#define DFU_IF_DESCRIPTORS_STRUCT
-#define DFU_IF_DESCRIPTORS
-
-#define DFU_NUM_STRINGS 0
-#define DFU_STRING_DESCRIPTORS
+#define DFURT_NUM_IF 0
+#define DFURT_IF_DESCRIPTOR_STRUCT(a, b)
+#define DFURT_IF_DESCRIPTOR
#endif /* BOARD_USB_DFU */
personal git repositories of Harald Welte. Your mileage may vary