summaryrefslogtreecommitdiff
path: root/usb/device/dfu/dfu.h
diff options
context:
space:
mode:
Diffstat (limited to 'usb/device/dfu/dfu.h')
-rw-r--r--usb/device/dfu/dfu.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/usb/device/dfu/dfu.h b/usb/device/dfu/dfu.h
index 4d5aa5b..34afa4a 100644
--- a/usb/device/dfu/dfu.h
+++ b/usb/device/dfu/dfu.h
@@ -25,6 +25,17 @@ struct USBStringDescriptor {
#ifdef BOARD_USB_DFU
+#include <usb/common/dfu/usb_dfu.h>
+
+/* for board-specific config */
+#include <board.h>
+
+struct dfu_desc {
+ USBConfigurationDescriptor ucfg;
+ USBInterfaceDescriptor uif[BOARD_DFU_NUM_IF];
+ struct usb_dfu_func_descriptor func_dfu;
+} __attribute__ ((packed));
+
/* USB DFU functional descriptor */
#define DFU_FUNC_DESC { \
.bLength = USB_DT_DFU_SIZE, \
@@ -84,6 +95,9 @@ extern const struct USBStringDescriptor USBDFU_string3;
(const unsigned char *) &USBDFU_string2, \
(const unsigned char *) &USBDFU_string3,
+const struct dfu_desc dfu_cfg_descriptor;
+const USBDDriverDescriptors dfu_descriptors;
+
#else /* BOARD_USB_DFU */
/* no DFU bootloader is being used */
@@ -115,4 +129,8 @@ void USBDFU_DFU_RequestHandler(const USBGenericRequest *request);
void USBDFU_Initialize(const USBDDriverDescriptors *pDescriptors, unsigned char *pInterfaces);
+#define DFU_RET_NOTHING 0
+#define DFU_RET_ZLP 1
+#define DFU_RET_STALL 2
+
#endif
personal git repositories of Harald Welte. Your mileage may vary