2 * Copyright (C) 2007 Anton Blad
3 * Copyright (C) 2007 Fredrik Kuivinen
4 * Copyright (C) 2007 Jakob Rosén
6 * This file is licensed under GPL v2.
9 #ifndef USBDESCRIPTORS_H
10 #define USBDESCRIPTORS_H
12 #include <avr/pgmspace.h>
14 #include "trutproto.h"
16 #define USB_LANGID 0x0809 // English (United Kingdom)
18 extern uint8_t ep_sizes
[NUM_EPS
];
23 uint8_t descriptorType
;
26 uint8_t deviceSubClass
;
27 uint8_t deviceProtocol
;
28 uint8_t maxPacketSize
;
35 uint8_t numConfigurations
;
36 } usb_device_descriptor
;
41 uint8_t descriptorType
;
43 uint8_t numInterfaces
;
44 uint8_t configurationValue
;
45 uint8_t configuration
;
48 } usb_configuration_descriptor
;
53 uint8_t descriptorType
;
54 uint8_t interfaceNumber
;
55 uint8_t alternateSetting
;
57 uint8_t interfaceClass
;
58 uint8_t interfaceSubClass
;
59 uint8_t interfaceProtocol
;
61 } usb_interface_descriptor
;
66 uint8_t descriptorType
;
67 uint8_t endpointAddress
;
69 uint16_t maxPacketSize
;
71 } usb_endpoint_descriptor
;
75 usb_configuration_descriptor configuration
;
76 usb_interface_descriptor interface_0
;
77 usb_endpoint_descriptor if1_endpoint_1
;
78 usb_endpoint_descriptor if1_endpoint_2
;
79 usb_interface_descriptor interface_1_setting_0
;
80 usb_endpoint_descriptor if1_endpoint_3_bulkout
;
81 usb_interface_descriptor interface_1_setting_1
;
82 usb_endpoint_descriptor if1_endpoint_3_bulkin
;
83 usb_interface_descriptor interface_1_setting_2
;
84 usb_endpoint_descriptor if1_endpoint_3_introut
;
85 usb_interface_descriptor interface_1_setting_3
;
86 usb_endpoint_descriptor if1_endpoint_3_intrin
;
87 } configuration_descriptor_1
;
92 uint8_t descriptorType
;
94 } string_descriptor_0
;
96 #define USB_NUMSTRINGS 9
97 extern PGM_P PROGMEM string_descriptors
[USB_NUMSTRINGS
];
99 extern usb_device_descriptor PROGMEM device_descriptor
;
100 extern configuration_descriptor_1 PROGMEM configuration_1
;
101 extern string_descriptor_0 PROGMEM string_languages
;