00001
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,
00107 CS_INTERFACE,
00108 CS_HEADER_FD,
00109 0x10,
00110 0x01,
00111 0x05,
00112 CS_INTERFACE,
00113 CS_CALL_MGM_FD,
00114 (CALL_MGM_CAP_SELF_MGM | CALL_MGM_CAP_DATA_CLASS),
00115 INTERFACE1_NB,
00116 0x04,
00117 CS_INTERFACE,
00118 CS_ACM_FD,
00119 (ACM_CAP_LINE_CODING | ACM_CAP_BREAK),
00120 0x05,
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 };