diff options
Diffstat (limited to 'bootloaders/caterina/src/USBDesc.h')
-rw-r--r-- | bootloaders/caterina/src/USBDesc.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/bootloaders/caterina/src/USBDesc.h b/bootloaders/caterina/src/USBDesc.h new file mode 100644 index 0000000..fa962e9 --- /dev/null +++ b/bootloaders/caterina/src/USBDesc.h @@ -0,0 +1,60 @@ + + +/* 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 HID_ENABLED // HID is NOT enabled + #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 INTERFACE_COUNT 2 // 2 for CDC +#else // HID is enabled + #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 + #define INTERFACE_COUNT 3 // 2 for CDC + 1 for hid +#endif + +typedef struct +{ + ConfigDescriptor config; + CDCDescriptor cdc; +#ifdef HID_ENABLED + HIDDescriptor hid; +#endif +} Config; + +extern Config USB_ConfigDescriptor PROGMEM; +extern DeviceDescriptor USB_DeviceDescriptor PROGMEM; +extern DeviceDescriptor USB_DeviceDescriptorA PROGMEM; + +extern const uint16_t STRING_LANGUAGE[2] PROGMEM; +extern const uint16_t STRING_IPRODUCT[28] PROGMEM; +extern const uint16_t STRING_IMANUFACTURER[12] PROGMEM; +extern const uint16_t STRING_SERIAL[13] PROGMEM; + +#define IMANUFACTURER 1 +#define IPRODUCT 2 +#define ISERIAL 3 + +#define CDC_TX CDC_ENDPOINT_IN +#define CDC_RX CDC_ENDPOINT_OUT
\ No newline at end of file |