Xmega Application Note


usb_descriptors.c

Go to the documentation of this file.
00001 /* This file has been prepared for Doxygen automatic documentation generation.*/
00050 #include "config.h"
00051 #include "conf_usb.h"
00052 #include "usb_drv.h"
00053 #include "usb_descriptors.h"
00054 #include "usb_standard_request.h"
00055 #include "usb_specific_request.h"
00056 
00057 
00059 code S_usb_device_descriptor usb_dev_desc =
00060 {
00061         sizeof(usb_dev_desc),
00062         DEVICE_DESCRIPTOR,
00063         Usb_write_word_enum_struc(USB_SPECIFICATION),
00064         DEVICE_CLASS,
00065         DEVICE_SUB_CLASS,
00066         DEVICE_PROTOCOL,
00067         EP_CONTROL_LENGTH,
00068         Usb_write_word_enum_struc(VENDOR_ID),
00069         Usb_write_word_enum_struc(PRODUCT_ID),
00070         Usb_write_word_enum_struc(RELEASE_NUMBER),
00071         MAN_INDEX,
00072         PROD_INDEX,
00073         SN_INDEX,
00074         NB_CONFIGURATION,
00075 };
00076 
00077 
00079 code S_usb_user_configuration_descriptor usb_conf_desc =
00080 {
00081         
00082         {
00083                 sizeof(S_usb_configuration_descriptor),
00084                 CONFIGURATION_DESCRIPTOR,
00085                 Usb_write_word_enum_struc(sizeof(S_usb_user_configuration_descriptor)),
00086                 NB_INTERFACE,
00087                 CONF_NB,
00088                 CONF_INDEX,
00089                 CONF_ATTRIBUTES,
00090                 MAX_POWER,
00091         }
00092         ,
00093         {
00094                 sizeof(S_usb_interface_descriptor),
00095                 INTERFACE_DESCRIPTOR,
00096                 INTERFACE0_NB,
00097                 ALTERNATE0,
00098                 NB_ENDPOINT0,
00099                 INTERFACE0_CLASS,
00100                 INTERFACE0_SUB_CLASS,
00101                 INTERFACE0_PROTOCOL,
00102                 INTERFACE0_INDEX,
00103         }
00104         ,
00105         {
00106                 0x05,            /* Size */
00107                 CS_INTERFACE,
00108                 CS_HEADER_FD,
00109                 0x10,            /* USB v1.1 */
00110                 0x01,
00111                 0x05,            /* Size */
00112                 CS_INTERFACE,
00113                 CS_CALL_MGM_FD,
00114                 (CALL_MGM_CAP_SELF_MGM | CALL_MGM_CAP_DATA_CLASS),
00115                 INTERFACE1_NB,
00116                 0x04,            /* Size */
00117                 CS_INTERFACE,
00118                 CS_ACM_FD,
00119                 (ACM_CAP_LINE_CODING | ACM_CAP_BREAK),
00120                 0x05,            /* Size */
00121                 CS_INTERFACE,
00122                 CS_UNION_FD,
00123                 INTERFACE0_NB,
00124                 INTERFACE1_NB,
00125         }
00126         ,
00127         {
00128                 sizeof(S_usb_endpoint_descriptor),
00129                 ENDPOINT_DESCRIPTOR,
00130                 ENDPOINT_NB_3,
00131                 EP_ATTRIBUTES_3,
00132                 Usb_write_word_enum_struc(EP_SIZE_3),
00133                 EP_INTERVAL_3,
00134         }
00135         ,
00136         {
00137                 sizeof(S_usb_interface_descriptor),
00138                 INTERFACE_DESCRIPTOR,
00139                 INTERFACE1_NB,
00140                 ALTERNATE1,
00141                 NB_ENDPOINT1,
00142                 INTERFACE1_CLASS,
00143                 INTERFACE1_SUB_CLASS,
00144                 INTERFACE1_PROTOCOL,
00145                 INTERFACE1_INDEX,
00146         }
00147         ,
00148         {
00149                 sizeof(S_usb_endpoint_descriptor),
00150                 ENDPOINT_DESCRIPTOR,
00151                 ENDPOINT_NB_1,
00152                 EP_ATTRIBUTES_1,
00153                 Usb_write_word_enum_struc(EP_SIZE_1),
00154                 EP_INTERVAL_1,
00155         }
00156         ,
00157         {
00158                 sizeof(S_usb_endpoint_descriptor),
00159                 ENDPOINT_DESCRIPTOR,
00160                 ENDPOINT_NB_2,
00161                 EP_ATTRIBUTES_2,
00162                 Usb_write_word_enum_struc(EP_SIZE_2),
00163                 EP_INTERVAL_2,
00164         }
00165         
00166 };
00167 
00168 
00170 code S_usb_manufacturer_string_descriptor usb_user_manufacturer_string_descriptor =
00171 {
00172         sizeof(usb_user_manufacturer_string_descriptor),
00173         STRING_DESCRIPTOR,
00174         USB_MANUFACTURER_NAME
00175 };
00176 
00177 
00179 code S_usb_product_string_descriptor usb_user_product_string_descriptor =
00180 {
00181         sizeof(usb_user_product_string_descriptor),
00182         STRING_DESCRIPTOR,
00183         USB_PRODUCT_NAME
00184 };
00185 
00186 
00188 code S_usb_serial_number usb_user_serial_number =
00189 {
00190         sizeof(usb_user_serial_number),
00191         STRING_DESCRIPTOR,
00192         USB_SERIAL_NUMBER
00193 };
00194 
00195 
00197 code S_usb_language_id usb_user_language_id =
00198 {
00199         sizeof(usb_user_language_id),
00200         STRING_DESCRIPTOR,
00201         Usb_write_word_enum_struc(LANGUAGE_ID)
00202 };
00203 
00204 
00206 code S_usb_if0_descript usb_if0_descriptor =
00207 {
00208         sizeof(usb_if0_descriptor),
00209         STRING_DESCRIPTOR,
00210         USB_IF0_DESCRIPT
00211 };
@DOC_TITLE@
Generated on Mon Jan 18 09:26:08 2010 for AVR1907 Xplain USB Gateway by doxygen 1.5.5