diff options
Diffstat (limited to 'bootloaders/diskloader/src/USBDesc.h')
-rw-r--r-- | bootloaders/diskloader/src/USBDesc.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/bootloaders/diskloader/src/USBDesc.h b/bootloaders/diskloader/src/USBDesc.h new file mode 100644 index 0000000..a551d69 --- /dev/null +++ b/bootloaders/diskloader/src/USBDesc.h @@ -0,0 +1,81 @@ + + +/* Copyright (c) 2011, Peter Barrett +** +** Permission to use, copy, modify, and/or distribute this software for +** any purpose with or without fee is hereby granted, provided that the +** above copyright notice and this permission notice appear in all copies. +** +** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR +** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +** SOFTWARE. +*/ + + +#ifndef CDC_ENABLED + +#define MSC_INTERFACE 0 // MSC Interface +#define MSC_ENDPOINT_OUT 1 +#define MSC_ENDPOINT_IN 2 + +#define INTERFACE_COUNT 1 // 1 for msc + +#else + +#define CDC_ACM_INTERFACE 0 // CDC ACM +#define CDC_DATA_INTERFACE 1 // CDC Data +#define CDC_ENDPOINT_ACM 1 +#define CDC_ENDPOINT_OUT 2 +#define CDC_ENDPOINT_IN 3 + +#define HID_INTERFACE 2 // HID Interface +#define HID_ENDPOINT_INT 4 + +#ifdef MSC_ENABLED + +#define MSC_INTERFACE 3 // MSC Interface +#define MSC_ENDPOINT_OUT 5 +#define MSC_ENDPOINT_IN 6 +#define INTERFACE_COUNT 4 // 2 for cdc + 1 for hid + 1 for msc + +#else + +#define INTERFACE_COUNT 3 // 2 for cdc + 1 for hid + +#endif + +#endif + +typedef struct +{ + ConfigDescriptor config; +#ifdef CDC_ENABLED + CDCDescriptor cdc; +#endif + HIDDescriptor hid; +#ifdef MSC_ENABLED + MSCDescriptor msc; +#endif +} Config; + +extern Config USB_ConfigDescriptor PROGMEM; +extern DeviceDescriptor USB_DeviceDescriptor PROGMEM; +extern DeviceDescriptor USB_DeviceDescriptorA PROGMEM; + +extern const u16 STRING_LANGUAGE[2] PROGMEM; +extern const u16 STRING_SERIAL[13] PROGMEM; + +#define IMANUFACTURER 0 +#define IPRODUCT 0 +#define ISERIAL 1 // Only need this for MSC + + +#define MSC_TX MSC_ENDPOINT_IN +#define MSC_RX MSC_ENDPOINT_OUT +#define CDC_TX CDC_ENDPOINT_IN +#define CDC_RX CDC_ENDPOINT_OUT
\ No newline at end of file |