usb_desc.h
Go to the documentation of this file.
1 /********************************************************************************************************
2  * @file usb_desc.h
3  *
4  * @brief This is the header file for TLSR8258
5  *
6  * @author Driver Group
7  * @date May 8, 2018
8  *
9  * @par Copyright (c) 2018, Telink Semiconductor (Shanghai) Co., Ltd.
10  * All rights reserved.
11  *
12  * The information contained herein is confidential property of Telink
13  * Semiconductor (Shanghai) Co., Ltd. and is available under the terms
14  * of Commercial License Agreement between Telink Semiconductor (Shanghai)
15  * Co., Ltd. and the licensee or the terms described here-in. This heading
16  * MUST NOT be removed from this file.
17  *
18  * Licensees are granted free, non-transferable use of the information in this
19  * file under Mutual Non-Disclosure Agreement. NO WARRENTY of ANY KIND is provided.
20  * @par History:
21  * 1.initial release(DEC. 26 2018)
22  *
23  * @version A001
24  *
25  *******************************************************************************************************/
26 
27 #ifndef USB_DESC_H_
28 #define USB_DESC_H_
29 
30 #include "./usbstd/usbstd.h"
31 
32 #define DOXYGEN_EN
33 
34 #ifdef DOXYGEN_EN
35 #define USB_MODE_CDC_EN 1 //by defined in complier setting
36 #define USB_MODE_MOUSE_EN 1 //by defined in complier setting
37 #define USB_MODE_KEYBOARD_EN 1 //by defined in complier setting
38 #define USB_MODE_SPEAKER_EN 1 //by defined in complier setting
39 #define USB_MODE_MICPHONE_EN 1 //by defined in complier setting
40 #endif
41 //#define USB_MODE_MASS_STORAGE_EN 1 //undefined
42 //#define USB_MODE_SOMATIC_EN 1 //undefined
43 #define USB_MODE_PRINTER_EN 0
44 
45 #if(USB_MODE_SPEAKER_EN||USB_MODE_MICPHONE_EN)
46  #define USB_MODE_AUDIO_EN 1
47 #endif
48 
49 
50 #if(USB_MODE_CDC_EN)
51 #define USB_VENDOR_STRING L"Telink Semi-conductor Ltd, Co"
52 #define USB_PRODUCT_STRING L"Telink CDC"
53 #define USB_SERIAL_STRING L"CDC demo "
54 #endif
55 
56 #if(USB_MODE_MOUSE_EN)
57 #define USB_VENDOR_STRING L"Telink Semi-conductor Ltd, Co"
58 #define USB_PRODUCT_STRING L"Telink Mouse"
59 #define USB_SERIAL_STRING L"Mouse demo"
60 #endif
61 
62 #if(USB_MODE_KEYBOARD_EN)
63 #define USB_VENDOR_STRING L"Telink Semi-conductor Ltd, Co"
64 #define USB_PRODUCT_STRING L"Telink Keyboard"
65 #define USB_SERIAL_STRING L"Keyboard demo"
66 #endif
67 
68 #if(USB_MODE_AUDIO_EN)
69 #define USB_VENDOR_STRING L"Telink Semi-conductor Ltd, Co"
70 #define USB_PRODUCT_STRING L"Telink Audio16"
71 #define USB_SERIAL_STRING L"Audio16 demo"
72 #endif
73 
74 #if((!USB_MODE_AUDIO_EN)&&(!USB_MODE_KEYBOARD_EN)&&(!USB_MODE_MOUSE_EN)&&(!USB_MODE_CDC_EN))
75 #define USB_VENDOR_STRING L"Telink Semi-conductor Ltd, Co"
76 #define USB_PRODUCT_STRING L"Telink No Product"
77 #define USB_SERIAL_STRING L"USB demo"
78 #endif
79 
80 #define USB_VENDOR_ID 0x248a
81 #define USB_PRODUCT_ID 0x8004
82 #define USB_VERSION_ID 0x0100
83 
84 
93 enum {
102 };
103 
107 enum {
112 };
113 
114 #if(USB_MODE_CDC_EN)
115 
117 #define USB_CDC_NOTIFICATION_EPSIZE 8
118 
119 #define USB_CDC_TX_RX_EPSIZE 64
120 #endif
121 
122 #if(USB_MODE_KEYBOARD_EN)
123 #define USB_KEYBOARD_POLL_INTERVAL 10
124 #endif
125 
126 #if(USB_MODE_MOUSE_EN)
127 #define USB_MOUSE_POLL_INTERVAL 4
128 #endif
129 
132 enum {
133 #if(USB_MODE_CDC_EN)
136 #endif
137 
138 #if(USB_MODE_KEYBOARD_EN)
140 #endif
141 
142 #if(USB_MODE_MOUSE_EN)
144 #endif
145 #if(USB_MODE_PRINTER_EN)
146  USB_INTF_PRINTER_ID,
147 #endif
148 #if(USB_MODE_MICPHONE_EN||USB_MODE_SPEAKER_EN)
150 #endif
151 #if(USB_MODE_MICPHONE_EN)
153 #endif
154 #if(USB_MODE_SPEAKER_EN)
156 #endif
158 };
159 
160 
161 
165 typedef struct {
167 #if(USB_MODE_PRINTER_EN)
168  USB_Descriptor_Interface_t printer_interface; //9 bytes
169  USB_Descriptor_Endpoint_t printer_in_edp; //7 bytes
170  USB_Descriptor_Endpoint_t printer_out_edp; //7 bytes
171 #endif
172 
173 #if(USB_MODE_CDC_EN)
176 #endif
177 
178 #if(USB_MODE_KEYBOARD_EN)
181 #endif
182 
183 #if(USB_MODE_MOUSE_EN)
186 #endif
187 
188 #if(USB_MODE_AUDIO_EN)
190 
191 #if(USB_MODE_SPEAKER_EN&&USB_MODE_MICPHONE_EN)
193 #else
194  USB_Audio_Descriptor_Interface_AC_t audio_ac; //9 bytes
195 #endif
196 #endif
197 
198 #if(USB_MODE_MICPHONE_EN)
201 #endif
202 
203 #if(USB_MODE_SPEAKER_EN)
206 #endif
207 
208 #if(USB_MODE_MICPHONE_EN)
216 #endif
217 
218 #if(USB_MODE_SPEAKER_EN)
226 #endif
227 
229 
230 
236 unsigned char *usb_desc_get_language(void);
237 
238 
244 unsigned char *usb_desc_get_vendor(void);
245 
251 unsigned char *usb_desc_get_product(void);
252 
258 unsigned char *usb_desc_get_serial(void);
259 
265 unsigned char *usb_desc_get_device(void);
266 
272 unsigned char *usb_desc_get_configuration(void);
273 
274 #if(USB_MODE_CDC_EN)
275 
280 unsigned char* usb_desc_get_cdc(void);
281 
287 unsigned char* usb_desc_get_cdc_inf(void);
288 
289 #endif
290 
291 #if(USB_MODE_KEYBOARD_EN)
292 
297 unsigned char* usb_keyboard_get_report_desc(void);
298 
304 unsigned short usb_keyboard_get_report_desc_size(void);
305 
311 unsigned char* usb_desc_get_keyboard(void);
312 
313 #endif
314 
315 #if(USB_MODE_MOUSE_EN)
316 
322 unsigned char* usb_mouse_get_report_desc(void);
323 
329 unsigned short usb_mouse_get_report_desc_size(void);
330 
336 unsigned char* usb_desc_get_mouse(void);
337 
338 #endif
339 
340 
341 #endif /* USB_DESC_H_ */
Definition: usb_desc.h:149
Definition: usb_desc.h:111
USB_Descriptor_Endpoint_t audio_mic_edp
Definition: usb_desc.h:214
Standard USB Interface Descriptor (LUFA naming conventions).
Definition: stdDescriptors.h:416
Definition: usb_desc.h:95
Definition: usb_desc.h:134
unsigned char * usb_desc_get_configuration(void)
This function serves to return the address of configuration descriptor.
unsigned char * usb_desc_get_vendor(void)
This function serves to return the address of vendor descriptor.
CDC Configuration Descriptor definition.
Definition: usb_desc.h:165
Definition: usb_desc.h:155
Definition: usb_desc.h:98
unsigned char * usb_desc_get_language(void)
This function serves to return the address of language descriptor.
Definition: usb_desc.h:109
Definition: usb_desc.h:97
unsigned char * usb_desc_get_mouse(void)
This function serves to return the address of Mouse configuration descriptor.
USB_Descriptor_Interface_t keyboard_interface
Definition: usb_desc.h:179
USB_Audio_Descriptor_Interface_AC_TL_t audio_ac_tl
Definition: usb_desc.h:192
Definition: usb_desc.h:96
unsigned char * usb_desc_get_device(void)
This function serves to return the address of device descriptor.
unsigned char * usb_desc_get_product(void)
This function serves to return the address of product descriptor.
Standard USB Endpoint Descriptor (LUFA naming conventions).
Definition: stdDescriptors.h:537
Definition: usb_desc.h:110
Definition: usbstd.h:28
Definition: usb_desc.h:143
unsigned char * usb_desc_get_cdc(void)
This function serves to return the address of CDC configuration descriptor.
USB_Descriptor_Interface_t audio_spk_interface_set0
Definition: usb_desc.h:219
Definition: usb_desc.h:98
Definition: usb_desc.h:98
USB_Descriptor_Interface_t audio_spk_interface_set1
Definition: usb_desc.h:220
USB_Audio_Descriptor_Format_t audio_spk_format
Definition: usb_desc.h:222
Audio class-specific Streaming Audio Interface Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:520
USB_CDC_Descriptor_t cdc_descriptor
Definition: usb_desc.h:175
unsigned char * usb_desc_get_keyboard(void)
This function serves to return the address of Keyboard configuration descriptor.
USB_Audio_Descriptor_OutputTerminal_t audio_spk_output_terminal
Definition: usb_desc.h:205
USB_Descriptor_Interface_t audio_mic_interface_set0
Definition: usb_desc.h:209
Definition: usb_desc.h:157
Audio class-specific Extended Endpoint Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:705
USB_HID_Descriptor_HID_Mouse_t mouse_descriptor
Definition: usb_desc.h:185
Definition: usbstd.h:33
Definition: AudioClassCommon.h:393
Definition: usb_desc.h:101
USB_Audio_Descriptor_Format_t audio_mic_format
Definition: usb_desc.h:212
Standard USB Configuration Descriptor (LUFA naming conventions).
Definition: stdDescriptors.h:355
Definition: usb_desc.h:101
unsigned short usb_keyboard_get_report_desc_size(void)
This function serves to return the length of Keyboard HID report descriptor.
unsigned char * usb_desc_get_serial(void)
This function serves to return the address of serial number descriptor.
USB_Descriptor_Configuration_Header_t Config
Definition: usb_desc.h:166
Definition: usb_desc.h:94
USB_Descriptor_Endpoint_t audio_spk_edp
Definition: usb_desc.h:224
USB_Audio_SampleFreq_t audio_mic_rate
Definition: usb_desc.h:213
24-Bit Audio Frequency Structure.
Definition: AudioClassCommon.h:600
Audio class-specific Input Terminal Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:258
USB_Audio_Descriptor_StreamEndpoint_Spc_t audio_mic_Stream_EDP_Spc
Definition: usb_desc.h:215
USB_Audio_Descriptor_InputTerminal_t audio_spk_input_terminal
Definition: usb_desc.h:204
Definition: usb_desc.h:95
USB_Descriptor_Interface_t mouse_interface
Definition: usb_desc.h:184
USB_Audio_Descriptor_Interface_AS_t audio_mic_as
Definition: usb_desc.h:211
Definition: usb_desc.h:97
Definition: usb_desc.h:108
USB_Audio_Descriptor_Interface_AS_t audio_spk_as
Definition: usb_desc.h:221
unsigned char * usb_desc_get_cdc_inf(void)
This function serves to return the address of interface descriptor.
USB_Audio_Descriptor_OutputTerminal_t audio_mic_output_terminal
Definition: usb_desc.h:200
USB_Audio_Descriptor_InputTerminal_t audio_mic_input_terminal
Definition: usb_desc.h:199
USB_Descriptor_Interface_t audio_mic_interface_set1
Definition: usb_desc.h:210
Definition: usb_desc.h:97
USB_HID_Descriptor_HID_Keyboard_t keyboard_descriptor
Definition: usb_desc.h:180
Definition: usb_desc.h:100
USB_Audio_Descriptor_StreamEndpoint_Spc_t audio_spk_Stream_EDP_Spc
Definition: usb_desc.h:225
Definition: usb_desc.h:139
unsigned short usb_mouse_get_report_desc_size(void)
This function serves to return the length of Mouse HID report descriptor.
unsigned char * usb_mouse_get_report_desc(void)
This function serves to return the address of Mouse HID report descriptor.
Definition: usb_desc.h:100
Definition: usb_desc.h:152
Definition: usbstd.h:45
USB_Descriptor_Interface_t audio_interface
Definition: usb_desc.h:189
unsigned char * usb_keyboard_get_report_desc(void)
This function serves to return the address of Keyboard HID report descriptor.
Definition: usb_desc.h:99
Definition: usb_desc.h:135
Audio class-specific Interface Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:378
USB_Audio_SampleFreq_t audio_spk_rate
Definition: usb_desc.h:223
Audio class-specific Format Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:573
USB_Descriptor_Interface_t cdc_interface
Definition: usb_desc.h:174
Audio class-specific Output Terminal Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:320