boart test board

Dependencies:   USBDevice mbed-dev lwip

Fork of USBSerial_HelloWorld by Compass Yap

Committer:
ua1arn
Date:
Fri Aug 03 05:41:14 2018 +0000
Revision:
23:121b78470d39
Parent:
21:85a0f94a84cd
mistyped

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ua1arn 21:85a0f94a84cd 1 /* $Id: usb200.h 6324 2018-04-28 23:00:51Z gena $ */
ua1arn 21:85a0f94a84cd 2 /*
ua1arn 21:85a0f94a84cd 3 * usb200.h
ua1arn 21:85a0f94a84cd 4 *
ua1arn 21:85a0f94a84cd 5 * Definitions conforming to the USB 2.0 specification.
ua1arn 21:85a0f94a84cd 6 *
ua1arn 21:85a0f94a84cd 7 * Adapted from Philips PDIUSBD12 firmware library - USB1.1 (USB100.H)
ua1arn 21:85a0f94a84cd 8 * Revised for USB 2.0 compliance -- MJB Nov 2005
ua1arn 21:85a0f94a84cd 9 */
ua1arn 21:85a0f94a84cd 10
ua1arn 21:85a0f94a84cd 11 #ifndef __USB200_H__
ua1arn 21:85a0f94a84cd 12 #define __USB200_H__
ua1arn 21:85a0f94a84cd 13
ua1arn 21:85a0f94a84cd 14
ua1arn 21:85a0f94a84cd 15 #define MAXIMUM_USB_STRING_LENGTH 255
ua1arn 21:85a0f94a84cd 16
ua1arn 21:85a0f94a84cd 17 /* values for the bits returned by the USB GET_STATUS command */
ua1arn 21:85a0f94a84cd 18 #define USB_GETSTATUS_SELF_POWERED 0x01
ua1arn 21:85a0f94a84cd 19 #define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED 0x02
ua1arn 21:85a0f94a84cd 20
ua1arn 21:85a0f94a84cd 21 /* USB Descriptor Types */
ua1arn 21:85a0f94a84cd 22 #define USB_DEVICE_DESCRIPTOR_TYPE 1
ua1arn 21:85a0f94a84cd 23 #define USB_CONFIGURATION_DESCRIPTOR_TYPE 2
ua1arn 21:85a0f94a84cd 24 #define USB_STRING_DESCRIPTOR_TYPE 3
ua1arn 21:85a0f94a84cd 25 #define USB_INTERFACE_DESCRIPTOR_TYPE 4
ua1arn 21:85a0f94a84cd 26 #define USB_ENDPOINT_DESCRIPTOR_TYPE 5
ua1arn 21:85a0f94a84cd 27 #define USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 6
ua1arn 21:85a0f94a84cd 28 #define USB_OTHER_SPEED_CONFIG_DESCRIPTOR_TYPE 7
ua1arn 21:85a0f94a84cd 29 #define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 8
ua1arn 21:85a0f94a84cd 30 #define USB_OTG_DESCRIPTOR_TYPE 9
ua1arn 21:85a0f94a84cd 31 #define USB_DEBUG_DESCRIPTOR_TYPE 10
ua1arn 21:85a0f94a84cd 32 #define USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 11
ua1arn 21:85a0f94a84cd 33 #define USB_DEVICE_CAPABITY_DESCRIPTOR_TYPE 0x10
ua1arn 21:85a0f94a84cd 34
ua1arn 21:85a0f94a84cd 35 /* Wireless USB extension Descriptor Type. */
ua1arn 21:85a0f94a84cd 36 #define USB_SECURITY_TYPE 12
ua1arn 21:85a0f94a84cd 37 #define USB_KEY_TYPE 13
ua1arn 21:85a0f94a84cd 38 #define USB_ENCRIPTION_TYPE 14
ua1arn 21:85a0f94a84cd 39 #define USB_BOS_TYPE 15
ua1arn 21:85a0f94a84cd 40 #define USB_DEVICE_CAPABILITY_TYPE 16
ua1arn 21:85a0f94a84cd 41 #define USB_WIRELESS_ENDPOINT_COMPANION_TYPE 17
ua1arn 21:85a0f94a84cd 42
ua1arn 21:85a0f94a84cd 43 /* USB Device Classes */
ua1arn 21:85a0f94a84cd 44 #define USB_DEVICE_CLASS_RESERVED 0x00
ua1arn 21:85a0f94a84cd 45 #define USB_DEVICE_CLASS_AUDIO 0x01
ua1arn 21:85a0f94a84cd 46 #define USB_DEVICE_CLASS_COMMUNICATIONS 0x02
ua1arn 21:85a0f94a84cd 47 #define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03
ua1arn 21:85a0f94a84cd 48 #define USB_DEVICE_CLASS_MONITOR 0x04
ua1arn 21:85a0f94a84cd 49 #define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05
ua1arn 21:85a0f94a84cd 50 #define USB_DEVICE_CLASS_POWER 0x06
ua1arn 21:85a0f94a84cd 51 #define USB_DEVICE_CLASS_PRINTER 0x07
ua1arn 21:85a0f94a84cd 52 #define USB_DEVICE_CLASS_STORAGE 0x08
ua1arn 21:85a0f94a84cd 53 #define USB_DEVICE_CLASS_HUB 0x09
ua1arn 21:85a0f94a84cd 54 #define USB_DEVICE_CLASS_WIRELESS_CONTROLLER 0xE0
ua1arn 21:85a0f94a84cd 55 #define USB_DEVICE_CLASS_MISCELLANEOUS 0xEF
ua1arn 21:85a0f94a84cd 56 #define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF
ua1arn 21:85a0f94a84cd 57
ua1arn 21:85a0f94a84cd 58 /* bMaxPower in Configuration Descriptor */
ua1arn 21:85a0f94a84cd 59 #define USB_CONFIG_POWER_MA(mA) ((mA)/2)
ua1arn 21:85a0f94a84cd 60
ua1arn 21:85a0f94a84cd 61 /* bEndpointAddress in Endpoint Descriptor */
ua1arn 21:85a0f94a84cd 62 #define USB_ENDPOINT_DIRECTION_MASK 0x80
ua1arn 21:85a0f94a84cd 63 #define USB_ENDPOINT_OUT(addr) ((addr) & 0x7F)
ua1arn 21:85a0f94a84cd 64 #define USB_ENDPOINT_IN(addr) ((addr) | 0x80)
ua1arn 21:85a0f94a84cd 65
ua1arn 21:85a0f94a84cd 66 /* bmAttributes in Endpoint Descriptor */
ua1arn 21:85a0f94a84cd 67 #define USB_ENDPOINT_TYPE_MASK 0x03
ua1arn 21:85a0f94a84cd 68 #define USB_ENDPOINT_TYPE_CONTROL 0x00
ua1arn 21:85a0f94a84cd 69 #define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
ua1arn 21:85a0f94a84cd 70 #define USB_ENDPOINT_TYPE_BULK 0x02
ua1arn 21:85a0f94a84cd 71 #define USB_ENDPOINT_TYPE_INTERRUPT 0x03
ua1arn 21:85a0f94a84cd 72 #define USB_ENDPOINT_SYNC_MASK 0x0C
ua1arn 21:85a0f94a84cd 73 #define USB_ENDPOINT_SYNC_NO_SYNCHRONIZATION 0x00
ua1arn 21:85a0f94a84cd 74 #define USB_ENDPOINT_SYNC_ASYNCHRONOUS 0x04
ua1arn 21:85a0f94a84cd 75 #define USB_ENDPOINT_SYNC_ADAPTIVE 0x08
ua1arn 21:85a0f94a84cd 76 #define USB_ENDPOINT_SYNC_SYNCHRONOUS 0x0C
ua1arn 21:85a0f94a84cd 77 #define USB_ENDPOINT_USAGE_MASK 0x30
ua1arn 21:85a0f94a84cd 78 #define USB_ENDPOINT_USAGE_DATA 0x00
ua1arn 21:85a0f94a84cd 79 #define USB_ENDPOINT_USAGE_FEEDBACK 0x10
ua1arn 21:85a0f94a84cd 80 #define USB_ENDPOINT_USAGE_IMPLICIT_FEEDBACK 0x20
ua1arn 21:85a0f94a84cd 81 #define USB_ENDPOINT_USAGE_RESERVED 0x30
ua1arn 21:85a0f94a84cd 82
ua1arn 21:85a0f94a84cd 83 #define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((uint16_t)((uint16_t)d<<8 | i))
ua1arn 21:85a0f94a84cd 84
ua1arn 21:85a0f94a84cd 85
ua1arn 21:85a0f94a84cd 86 /* Endpoint direction bit, stored in address field, also wIndex of SET/CLEAR_FEATURE */
ua1arn 21:85a0f94a84cd 87 #define USB_ENDPOINT_DIRECTION_MASK 0x80
ua1arn 21:85a0f94a84cd 88
ua1arn 21:85a0f94a84cd 89 /* test direction bit in the bEndpointAddress field of an endpoint descriptor. */
ua1arn 21:85a0f94a84cd 90 #define USB_ENDPOINT_DIRECTION_OUT(addr) (!((addr) & USB_ENDPOINT_DIRECTION_MASK))
ua1arn 21:85a0f94a84cd 91 #define USB_ENDPOINT_DIRECTION_IN(addr) ((addr) & USB_ENDPOINT_DIRECTION_MASK)
ua1arn 21:85a0f94a84cd 92
ua1arn 21:85a0f94a84cd 93 /* Bitmasks and defined values for bRequestType field of Setup pkt */
ua1arn 21:85a0f94a84cd 94 #define USB_RECIPIENT_MASK (uint8_t)0x1F
ua1arn 21:85a0f94a84cd 95 #define USB_RECIPIENT_DEVICE (uint8_t)0x00
ua1arn 21:85a0f94a84cd 96 #define USB_RECIPIENT_INTERFACE (uint8_t)0x01
ua1arn 21:85a0f94a84cd 97 #define USB_RECIPIENT_ENDPOINT (uint8_t)0x02
ua1arn 21:85a0f94a84cd 98
ua1arn 21:85a0f94a84cd 99 #define USB_REQUEST_TYPE_MASK (uint8_t)0x60
ua1arn 21:85a0f94a84cd 100 #define USB_STANDARD_REQUEST (uint8_t)0x00
ua1arn 21:85a0f94a84cd 101 #define USB_CLASS_REQUEST (uint8_t)0x20
ua1arn 21:85a0f94a84cd 102 #define USB_VENDOR_REQUEST (uint8_t)0x40
ua1arn 21:85a0f94a84cd 103
ua1arn 21:85a0f94a84cd 104 #define DEVICE_ADDRESS_MASK 0x7F
ua1arn 21:85a0f94a84cd 105
ua1arn 21:85a0f94a84cd 106 /* USB defined request codes */
ua1arn 21:85a0f94a84cd 107 /* see chapter 9 of the USB 2.0 specifcation for more information. */
ua1arn 21:85a0f94a84cd 108 /* These are the correct values based on the USB 2.0 specification */
ua1arn 21:85a0f94a84cd 109 #define USB_REQUEST_GET_STATUS 0x00
ua1arn 21:85a0f94a84cd 110 #define USB_REQUEST_CLEAR_FEATURE 0x01
ua1arn 21:85a0f94a84cd 111 #define USB_REQUEST_SET_FEATURE 0x03
ua1arn 21:85a0f94a84cd 112 #define USB_REQUEST_SET_ADDRESS 0x05
ua1arn 21:85a0f94a84cd 113 #define USB_REQUEST_GET_DESCRIPTOR 0x06
ua1arn 21:85a0f94a84cd 114 #define USB_REQUEST_SET_DESCRIPTOR 0x07
ua1arn 21:85a0f94a84cd 115 #define USB_REQUEST_GET_CONFIGURATION 0x08
ua1arn 21:85a0f94a84cd 116 #define USB_REQUEST_SET_CONFIGURATION 0x09
ua1arn 21:85a0f94a84cd 117 #define USB_REQUEST_GET_INTERFACE 0x0A
ua1arn 21:85a0f94a84cd 118 #define USB_REQUEST_SET_INTERFACE 0x0B
ua1arn 21:85a0f94a84cd 119 #define USB_REQUEST_SYNC_FRAME 0x0C
ua1arn 21:85a0f94a84cd 120
ua1arn 21:85a0f94a84cd 121 /* defined USB device classes */
ua1arn 21:85a0f94a84cd 122 /*
ua1arn 21:85a0f94a84cd 123 #define USB_DEVICE_CLASS_RESERVED 0x00
ua1arn 21:85a0f94a84cd 124 #define USB_DEVICE_CLASS_AUDIO 0x01
ua1arn 21:85a0f94a84cd 125 #define USB_DEVICE_CLASS_COMMUNICATIONS 0x02
ua1arn 21:85a0f94a84cd 126 #define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03
ua1arn 21:85a0f94a84cd 127 #define USB_DEVICE_CLASS_MONITOR 0x04
ua1arn 21:85a0f94a84cd 128 #define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05
ua1arn 21:85a0f94a84cd 129 #define USB_DEVICE_CLASS_POWER 0x06
ua1arn 21:85a0f94a84cd 130 #define USB_DEVICE_CLASS_PRINTER 0x07
ua1arn 21:85a0f94a84cd 131 #define USB_DEVICE_CLASS_STORAGE 0x08
ua1arn 21:85a0f94a84cd 132 #define USB_DEVICE_CLASS_HUB 0x09
ua1arn 21:85a0f94a84cd 133 #define USB_DEVICE_CLASS_TMC 0xFE
ua1arn 21:85a0f94a84cd 134 #define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF
ua1arn 21:85a0f94a84cd 135
ua1arn 21:85a0f94a84cd 136 */
ua1arn 21:85a0f94a84cd 137
ua1arn 21:85a0f94a84cd 138 #define CS_INTERFACE 0x24
ua1arn 21:85a0f94a84cd 139
ua1arn 21:85a0f94a84cd 140 #define CDC_INTERFACE_DESCRIPTOR_TYPE 0x24
ua1arn 21:85a0f94a84cd 141 #define CDC_ENDPOINT_DESCRIPTOR_TYPE 0x25
ua1arn 21:85a0f94a84cd 142
ua1arn 21:85a0f94a84cd 143 #define USB_INTERFACE_ASSOC_DESCRIPTOR_TYPE 0x0B
ua1arn 21:85a0f94a84cd 144
ua1arn 21:85a0f94a84cd 145 #define AUDIO_DESCRIPTOR_TYPE 0x21
ua1arn 21:85a0f94a84cd 146 #define USB_DEVICE_CLASS_AUDIO 0x01
ua1arn 21:85a0f94a84cd 147 #define AUDIO_SUBCLASS_AUDIOCONTROL 0x01
ua1arn 21:85a0f94a84cd 148 #define AUDIO_SUBCLASS_AUDIOSTREAMING 0x02
ua1arn 21:85a0f94a84cd 149 #define AUDIO_PROTOCOL_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 150 #define AUDIO_STREAMING_GENERAL 0x01
ua1arn 21:85a0f94a84cd 151 #define AUDIO_STREAMING_FORMAT_TYPE 0x02
ua1arn 21:85a0f94a84cd 152
ua1arn 21:85a0f94a84cd 153 /* Audio Descriptor Types */
ua1arn 21:85a0f94a84cd 154 #define AUDIO_INTERFACE_DESCRIPTOR_TYPE 0x24
ua1arn 21:85a0f94a84cd 155 #define AUDIO_ENDPOINT_DESCRIPTOR_TYPE 0x25
ua1arn 21:85a0f94a84cd 156
ua1arn 21:85a0f94a84cd 157 #define USB_ENDPOINT_TYPE_ASYNC_FEEDBACK 0x15
ua1arn 21:85a0f94a84cd 158 #define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
ua1arn 21:85a0f94a84cd 159 #define USB_ENDPOINT_TYPE_BULK 0x02
ua1arn 21:85a0f94a84cd 160 #define USB_ENDPOINT_TYPE_INTERRUPT 0x03
ua1arn 21:85a0f94a84cd 161 #define AUDIO_ENDPOINT_GENERAL 0x01
ua1arn 21:85a0f94a84cd 162
ua1arn 21:85a0f94a84cd 163
ua1arn 21:85a0f94a84cd 164 /* USB 2.0 defined Feature Selectors (wValue in Set_Feature setup pkt) */
ua1arn 21:85a0f94a84cd 165 #define USB_FEATURE_EP_HALT 0
ua1arn 21:85a0f94a84cd 166 #define USB_FEATURE_REMOTE_WAKEUP 1
ua1arn 21:85a0f94a84cd 167 #define USB_FEATURE_TEST_MODE 2
ua1arn 21:85a0f94a84cd 168
ua1arn 21:85a0f94a84cd 169 #define USB_OTG_HS_MAX_PACKET_SIZE 512U
ua1arn 21:85a0f94a84cd 170 #define USB_OTG_FS_MAX_PACKET_SIZE 64U
ua1arn 21:85a0f94a84cd 171 #define USB_OTG_MAX_EP0_SIZE 64U
ua1arn 21:85a0f94a84cd 172
ua1arn 21:85a0f94a84cd 173 /* Audio Interface Subclass Codes */
ua1arn 21:85a0f94a84cd 174 #define AUDIO_SUBCLASS_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 175 #define AUDIO_SUBCLASS_AUDIOCONTROL 0x01
ua1arn 21:85a0f94a84cd 176 #define AUDIO_SUBCLASS_AUDIOSTREAMING 0x02
ua1arn 21:85a0f94a84cd 177 #define AUDIO_SUBCLASS_MIDISTREAMING 0x03
ua1arn 21:85a0f94a84cd 178
ua1arn 21:85a0f94a84cd 179 /* Audio Interface Protocol Codes */
ua1arn 21:85a0f94a84cd 180 #define AUDIO_PROTOCOL_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 181
ua1arn 21:85a0f94a84cd 182
ua1arn 21:85a0f94a84cd 183 /* Audio Descriptor Types */
ua1arn 21:85a0f94a84cd 184 #define AUDIO_UNDEFINED_DESCRIPTOR_TYPE 0x20
ua1arn 21:85a0f94a84cd 185 #define AUDIO_DEVICE_DESCRIPTOR_TYPE 0x21
ua1arn 21:85a0f94a84cd 186 #define AUDIO_CONFIGURATION_DESCRIPTOR_TYPE 0x22
ua1arn 21:85a0f94a84cd 187 #define AUDIO_STRING_DESCRIPTOR_TYPE 0x23
ua1arn 21:85a0f94a84cd 188 #define AUDIO_INTERFACE_DESCRIPTOR_TYPE 0x24
ua1arn 21:85a0f94a84cd 189 #define AUDIO_ENDPOINT_DESCRIPTOR_TYPE 0x25
ua1arn 21:85a0f94a84cd 190
ua1arn 21:85a0f94a84cd 191
ua1arn 21:85a0f94a84cd 192 /* Audio Control Interface Descriptor Subtypes */
ua1arn 21:85a0f94a84cd 193 #define AUDIO_CONTROL_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 194 #define AUDIO_CONTROL_HEADER 0x01
ua1arn 21:85a0f94a84cd 195 #define AUDIO_CONTROL_INPUT_TERMINAL 0x02
ua1arn 21:85a0f94a84cd 196 #define AUDIO_CONTROL_OUTPUT_TERMINAL 0x03
ua1arn 21:85a0f94a84cd 197 #define AUDIO_CONTROL_MIXER_UNIT 0x04
ua1arn 21:85a0f94a84cd 198 #define AUDIO_CONTROL_SELECTOR_UNIT 0x05
ua1arn 21:85a0f94a84cd 199 #define AUDIO_CONTROL_FEATURE_UNIT 0x06
ua1arn 21:85a0f94a84cd 200 #define AUDIO_CONTROL_PROCESSING_UNIT 0x07
ua1arn 21:85a0f94a84cd 201 #define AUDIO_CONTROL_EXTENSION_UNIT 0x08
ua1arn 21:85a0f94a84cd 202
ua1arn 21:85a0f94a84cd 203 /* Audio Streaming Interface Descriptor Subtypes */
ua1arn 21:85a0f94a84cd 204 #define AUDIO_STREAMING_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 205 #define AUDIO_STREAMING_GENERAL 0x01
ua1arn 21:85a0f94a84cd 206 #define AUDIO_STREAMING_FORMAT_TYPE 0x02
ua1arn 21:85a0f94a84cd 207 #define AUDIO_STREAMING_FORMAT_SPECIFIC 0x03
ua1arn 21:85a0f94a84cd 208
ua1arn 21:85a0f94a84cd 209 /* Audio Endpoint Descriptor Subtypes */
ua1arn 21:85a0f94a84cd 210 #define AUDIO_ENDPOINT_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 211 #define AUDIO_ENDPOINT_GENERAL 0x01
ua1arn 21:85a0f94a84cd 212
ua1arn 21:85a0f94a84cd 213 /* Audio Processing Unit Process Types */
ua1arn 21:85a0f94a84cd 214 #define AUDIO_UNDEFINED_PROCESS 0x00
ua1arn 21:85a0f94a84cd 215 #define AUDIO_UP_DOWN_MIX_PROCESS 0x01
ua1arn 21:85a0f94a84cd 216 #define AUDIO_DOLBY_PROLOGIC_PROCESS 0x02
ua1arn 21:85a0f94a84cd 217 #define AUDIO_3D_STEREO_PROCESS 0x03
ua1arn 21:85a0f94a84cd 218 #define AUDIO_REVERBERATION_PROCESS 0x04
ua1arn 21:85a0f94a84cd 219 #define AUDIO_CHORUS_PROCESS 0x05
ua1arn 21:85a0f94a84cd 220 #define AUDIO_DYN_RANGE_COMP_PROCESS 0x06
ua1arn 21:85a0f94a84cd 221
ua1arn 21:85a0f94a84cd 222
ua1arn 21:85a0f94a84cd 223 /* Audio Request Codes */
ua1arn 21:85a0f94a84cd 224 #define AUDIO_REQUEST_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 225 #define AUDIO_REQUEST_SET_CUR 0x01
ua1arn 21:85a0f94a84cd 226 #define AUDIO_REQUEST_GET_CUR 0x81
ua1arn 21:85a0f94a84cd 227 #define AUDIO_REQUEST_SET_MIN 0x02
ua1arn 21:85a0f94a84cd 228 #define AUDIO_REQUEST_GET_MIN 0x82
ua1arn 21:85a0f94a84cd 229 #define AUDIO_REQUEST_SET_MAX 0x03
ua1arn 21:85a0f94a84cd 230 #define AUDIO_REQUEST_GET_MAX 0x83
ua1arn 21:85a0f94a84cd 231 #define AUDIO_REQUEST_SET_RES 0x04
ua1arn 21:85a0f94a84cd 232 #define AUDIO_REQUEST_GET_RES 0x84
ua1arn 21:85a0f94a84cd 233 #define AUDIO_REQUEST_SET_MEM 0x05
ua1arn 21:85a0f94a84cd 234 #define AUDIO_REQUEST_GET_MEM 0x85
ua1arn 21:85a0f94a84cd 235 #define AUDIO_REQUEST_GET_STAT 0xFF
ua1arn 21:85a0f94a84cd 236
ua1arn 21:85a0f94a84cd 237
ua1arn 21:85a0f94a84cd 238 /* Audio Control Selector Codes */
ua1arn 21:85a0f94a84cd 239 #define AUDIO_CONTROL_UNDEFINED 0x00 /* Common Selector */
ua1arn 21:85a0f94a84cd 240
ua1arn 21:85a0f94a84cd 241 /* Terminal Control Selectors */
ua1arn 21:85a0f94a84cd 242 #define AUDIO_COPY_PROTECT_CONTROL 0x01
ua1arn 21:85a0f94a84cd 243
ua1arn 21:85a0f94a84cd 244 /* Feature Unit Control Selectors */
ua1arn 21:85a0f94a84cd 245 #define AUDIO_MUTE_CONTROL 0x01
ua1arn 21:85a0f94a84cd 246 #define AUDIO_VOLUME_CONTROL 0x02
ua1arn 21:85a0f94a84cd 247 #define AUDIO_BASS_CONTROL 0x03
ua1arn 21:85a0f94a84cd 248 #define AUDIO_MID_CONTROL 0x04
ua1arn 21:85a0f94a84cd 249 #define AUDIO_TREBLE_CONTROL 0x05
ua1arn 21:85a0f94a84cd 250 #define AUDIO_GRAPHIC_EQUALIZER_CONTROL 0x06
ua1arn 21:85a0f94a84cd 251 #define AUDIO_AUTOMATIC_GAIN_CONTROL 0x07
ua1arn 21:85a0f94a84cd 252 #define AUDIO_DELAY_CONTROL 0x08
ua1arn 21:85a0f94a84cd 253 #define AUDIO_BASS_BOOST_CONTROL 0x09
ua1arn 21:85a0f94a84cd 254 #define AUDIO_LOUDNESS_CONTROL 0x0A
ua1arn 21:85a0f94a84cd 255
ua1arn 21:85a0f94a84cd 256 /* Processing Unit Control Selectors: */
ua1arn 21:85a0f94a84cd 257 #define AUDIO_ENABLE_CONTROL 0x01 /* Common Selector */
ua1arn 21:85a0f94a84cd 258 #define AUDIO_MODE_SELECT_CONTROL 0x02 /* Common Selector */
ua1arn 21:85a0f94a84cd 259
ua1arn 21:85a0f94a84cd 260 /* - Up/Down-mix Control Selectors */
ua1arn 21:85a0f94a84cd 261 /* AUDIO_ENABLE_CONTROL 0x01 Common Selector */
ua1arn 21:85a0f94a84cd 262 /* AUDIO_MODE_SELECT_CONTROL 0x02 Common Selector */
ua1arn 21:85a0f94a84cd 263
ua1arn 21:85a0f94a84cd 264 /* - Dolby Prologic Control Selectors */
ua1arn 21:85a0f94a84cd 265 /* AUDIO_ENABLE_CONTROL 0x01 Common Selector */
ua1arn 21:85a0f94a84cd 266 /* AUDIO_MODE_SELECT_CONTROL 0x02 Common Selector */
ua1arn 21:85a0f94a84cd 267
ua1arn 21:85a0f94a84cd 268 /* - 3D Stereo Extender Control Selectors */
ua1arn 21:85a0f94a84cd 269 /* AUDIO_ENABLE_CONTROL 0x01 Common Selector */
ua1arn 21:85a0f94a84cd 270 #define AUDIO_SPACIOUSNESS_CONTROL 0x02
ua1arn 21:85a0f94a84cd 271
ua1arn 21:85a0f94a84cd 272 /* - Reverberation Control Selectors */
ua1arn 21:85a0f94a84cd 273 /* AUDIO_ENABLE_CONTROL 0x01 Common Selector */
ua1arn 21:85a0f94a84cd 274 #define AUDIO_REVERB_LEVEL_CONTROL 0x02
ua1arn 21:85a0f94a84cd 275 #define AUDIO_REVERB_TIME_CONTROL 0x03
ua1arn 21:85a0f94a84cd 276 #define AUDIO_REVERB_FEEDBACK_CONTROL 0x04
ua1arn 21:85a0f94a84cd 277
ua1arn 21:85a0f94a84cd 278 /* - Chorus Control Selectors */
ua1arn 21:85a0f94a84cd 279 /* AUDIO_ENABLE_CONTROL 0x01 Common Selector */
ua1arn 21:85a0f94a84cd 280 #define AUDIO_CHORUS_LEVEL_CONTROL 0x02
ua1arn 21:85a0f94a84cd 281 #define AUDIO_SHORUS_RATE_CONTROL 0x03
ua1arn 21:85a0f94a84cd 282 #define AUDIO_CHORUS_DEPTH_CONTROL 0x04
ua1arn 21:85a0f94a84cd 283
ua1arn 21:85a0f94a84cd 284 /* - Dynamic Range Compressor Control Selectors */
ua1arn 21:85a0f94a84cd 285 /* AUDIO_ENABLE_CONTROL 0x01 Common Selector */
ua1arn 21:85a0f94a84cd 286 #define AUDIO_COMPRESSION_RATE_CONTROL 0x02
ua1arn 21:85a0f94a84cd 287 #define AUDIO_MAX_AMPL_CONTROL 0x03
ua1arn 21:85a0f94a84cd 288 #define AUDIO_THRESHOLD_CONTROL 0x04
ua1arn 21:85a0f94a84cd 289 #define AUDIO_ATTACK_TIME_CONTROL 0x05
ua1arn 21:85a0f94a84cd 290 #define AUDIO_RELEASE_TIME_CONTROL 0x06
ua1arn 21:85a0f94a84cd 291
ua1arn 21:85a0f94a84cd 292 /* Extension Unit Control Selectors */
ua1arn 21:85a0f94a84cd 293 /* AUDIO_ENABLE_CONTROL 0x01 Common Selector */
ua1arn 21:85a0f94a84cd 294
ua1arn 21:85a0f94a84cd 295 /* Endpoint Control Selectors */
ua1arn 21:85a0f94a84cd 296 #define AUDIO_SAMPLING_FREQ_CONTROL 0x01
ua1arn 21:85a0f94a84cd 297 #define AUDIO_PITCH_CONTROL 0x02
ua1arn 21:85a0f94a84cd 298
ua1arn 21:85a0f94a84cd 299
ua1arn 21:85a0f94a84cd 300 /* Audio Format Specific Control Selectors */
ua1arn 21:85a0f94a84cd 301
ua1arn 21:85a0f94a84cd 302 /* MPEG Control Selectors */
ua1arn 21:85a0f94a84cd 303 #define AUDIO_MPEG_CONTROL_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 304 #define AUDIO_MPEG_DUAL_CHANNEL_CONTROL 0x01
ua1arn 21:85a0f94a84cd 305 #define AUDIO_MPEG_SECOND_STEREO_CONTROL 0x02
ua1arn 21:85a0f94a84cd 306 #define AUDIO_MPEG_MULTILINGUAL_CONTROL 0x03
ua1arn 21:85a0f94a84cd 307 #define AUDIO_MPEG_DYN_RANGE_CONTROL 0x04
ua1arn 21:85a0f94a84cd 308 #define AUDIO_MPEG_SCALING_CONTROL 0x05
ua1arn 21:85a0f94a84cd 309 #define AUDIO_MPEG_HILO_SCALING_CONTROL 0x06
ua1arn 21:85a0f94a84cd 310
ua1arn 21:85a0f94a84cd 311 /* AC-3 Control Selectors */
ua1arn 21:85a0f94a84cd 312 #define AUDIO_AC3_CONTROL_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 313 #define AUDIO_AC3_MODE_CONTROL 0x01
ua1arn 21:85a0f94a84cd 314 #define AUDIO_AC3_DYN_RANGE_CONTROL 0x02
ua1arn 21:85a0f94a84cd 315 #define AUDIO_AC3_SCALING_CONTROL 0x03
ua1arn 21:85a0f94a84cd 316 #define AUDIO_AC3_HILO_SCALING_CONTROL 0x04
ua1arn 21:85a0f94a84cd 317
ua1arn 21:85a0f94a84cd 318
ua1arn 21:85a0f94a84cd 319 /* Audio Format Types */
ua1arn 21:85a0f94a84cd 320 #define AUDIO_FORMAT_TYPE_UNDEFINED 0x00
ua1arn 21:85a0f94a84cd 321 #define AUDIO_FORMAT_TYPE_I 0x01
ua1arn 21:85a0f94a84cd 322 #define AUDIO_FORMAT_TYPE_II 0x02
ua1arn 21:85a0f94a84cd 323 #define AUDIO_FORMAT_TYPE_III 0x03
ua1arn 21:85a0f94a84cd 324
ua1arn 21:85a0f94a84cd 325 /* Audio Data Format Codes */
ua1arn 21:85a0f94a84cd 326
ua1arn 21:85a0f94a84cd 327 /* Audio Data Format Type I Codes */
ua1arn 21:85a0f94a84cd 328 #define AUDIO_FORMAT_TYPE_I_UNDEFINED 0x0000
ua1arn 21:85a0f94a84cd 329 #define AUDIO_FORMAT_PCM 0x0001
ua1arn 21:85a0f94a84cd 330 #define AUDIO_FORMAT_PCM8 0x0002
ua1arn 21:85a0f94a84cd 331 #define AUDIO_FORMAT_IEEE_FLOAT 0x0003
ua1arn 21:85a0f94a84cd 332 #define AUDIO_FORMAT_ALAW 0x0004
ua1arn 21:85a0f94a84cd 333 #define AUDIO_FORMAT_MULAW 0x0005
ua1arn 21:85a0f94a84cd 334
ua1arn 21:85a0f94a84cd 335 /* Audio Data Format Type II Codes */
ua1arn 21:85a0f94a84cd 336 #define AUDIO_FORMAT_TYPE_II_UNDEFINED 0x1000
ua1arn 21:85a0f94a84cd 337 #define AUDIO_FORMAT_MPEG 0x1001
ua1arn 21:85a0f94a84cd 338 #define AUDIO_FORMAT_AC3 0x1002
ua1arn 21:85a0f94a84cd 339
ua1arn 21:85a0f94a84cd 340 /* Audio Data Format Type III Codes */
ua1arn 21:85a0f94a84cd 341 #define AUDIO_FORMAT_TYPE_III_UNDEFINED 0x2000
ua1arn 21:85a0f94a84cd 342 #define AUDIO_FORMAT_IEC1937_AC3 0x2001
ua1arn 21:85a0f94a84cd 343 #define AUDIO_FORMAT_IEC1937_MPEG1_L1 0x2002
ua1arn 21:85a0f94a84cd 344 #define AUDIO_FORMAT_IEC1937_MPEG1_L2_3 0x2003
ua1arn 21:85a0f94a84cd 345 #define AUDIO_FORMAT_IEC1937_MPEG2_NOEXT 0x2003
ua1arn 21:85a0f94a84cd 346 #define AUDIO_FORMAT_IEC1937_MPEG2_EXT 0x2004
ua1arn 21:85a0f94a84cd 347 #define AUDIO_FORMAT_IEC1937_MPEG2_L1_LS 0x2005
ua1arn 21:85a0f94a84cd 348 #define AUDIO_FORMAT_IEC1937_MPEG2_L2_3 0x2006
ua1arn 21:85a0f94a84cd 349
ua1arn 21:85a0f94a84cd 350
ua1arn 21:85a0f94a84cd 351 /* Predefined Audio Channel Configuration Bits */
ua1arn 21:85a0f94a84cd 352 #define AUDIO_CHANNEL_M 0x0000 /* Mono */
ua1arn 21:85a0f94a84cd 353 #define AUDIO_CHANNEL_L 0x0001 /* Left Front */
ua1arn 21:85a0f94a84cd 354 #define AUDIO_CHANNEL_R 0x0002 /* Right Front */
ua1arn 21:85a0f94a84cd 355 #define AUDIO_CHANNEL_C 0x0004 /* Center Front */
ua1arn 21:85a0f94a84cd 356 #define AUDIO_CHANNEL_LFE 0x0008 /* Low Freq. Enhance. */
ua1arn 21:85a0f94a84cd 357 #define AUDIO_CHANNEL_LS 0x0010 /* Left Surround */
ua1arn 21:85a0f94a84cd 358 #define AUDIO_CHANNEL_RS 0x0020 /* Right Surround */
ua1arn 21:85a0f94a84cd 359 #define AUDIO_CHANNEL_LC 0x0040 /* Left of Center */
ua1arn 21:85a0f94a84cd 360 #define AUDIO_CHANNEL_RC 0x0080 /* Right of Center */
ua1arn 21:85a0f94a84cd 361 #define AUDIO_CHANNEL_S 0x0100 /* Surround */
ua1arn 21:85a0f94a84cd 362 #define AUDIO_CHANNEL_SL 0x0200 /* Side Left */
ua1arn 21:85a0f94a84cd 363 #define AUDIO_CHANNEL_SR 0x0400 /* Side Right */
ua1arn 21:85a0f94a84cd 364 #define AUDIO_CHANNEL_T 0x0800 /* Top */
ua1arn 21:85a0f94a84cd 365
ua1arn 21:85a0f94a84cd 366
ua1arn 21:85a0f94a84cd 367 /* Feature Unit Control Bits */
ua1arn 21:85a0f94a84cd 368 #define AUDIO_CONTROL_MUTE 0x0001
ua1arn 21:85a0f94a84cd 369 #define AUDIO_CONTROL_VOLUME 0x0002
ua1arn 21:85a0f94a84cd 370 #define AUDIO_CONTROL_BASS 0x0004
ua1arn 21:85a0f94a84cd 371 #define AUDIO_CONTROL_MID 0x0008
ua1arn 21:85a0f94a84cd 372 #define AUDIO_CONTROL_TREBLE 0x0010
ua1arn 21:85a0f94a84cd 373 #define AUDIO_CONTROL_GRAPHIC_EQUALIZER 0x0020
ua1arn 21:85a0f94a84cd 374 #define AUDIO_CONTROL_AUTOMATIC_GAIN 0x0040
ua1arn 21:85a0f94a84cd 375 #define AUDIO_CONTROL_DEALY 0x0080
ua1arn 21:85a0f94a84cd 376 #define AUDIO_CONTROL_BASS_BOOST 0x0100
ua1arn 21:85a0f94a84cd 377 #define AUDIO_CONTROL_LOUDNESS 0x0200
ua1arn 21:85a0f94a84cd 378
ua1arn 21:85a0f94a84cd 379 /* Processing Unit Control Bits: */
ua1arn 21:85a0f94a84cd 380 #define AUDIO_CONTROL_ENABLE 0x0001 /* Common Bit */
ua1arn 21:85a0f94a84cd 381 #define AUDIO_CONTROL_MODE_SELECT 0x0002 /* Common Bit */
ua1arn 21:85a0f94a84cd 382
ua1arn 21:85a0f94a84cd 383 /* - Up/Down-mix Control Bits */
ua1arn 21:85a0f94a84cd 384 /* AUDIO_CONTROL_ENABLE 0x0001 Common Bit */
ua1arn 21:85a0f94a84cd 385 /* AUDIO_CONTROL_MODE_SELECT 0x0002 Common Bit */
ua1arn 21:85a0f94a84cd 386
ua1arn 21:85a0f94a84cd 387 /* - Dolby Prologic Control Bits */
ua1arn 21:85a0f94a84cd 388 /* AUDIO_CONTROL_ENABLE 0x0001 Common Bit */
ua1arn 21:85a0f94a84cd 389 /* AUDIO_CONTROL_MODE_SELECT 0x0002 Common Bit */
ua1arn 21:85a0f94a84cd 390
ua1arn 21:85a0f94a84cd 391 /* - 3D Stereo Extender Control Bits */
ua1arn 21:85a0f94a84cd 392 /* AUDIO_CONTROL_ENABLE 0x0001 Common Bit */
ua1arn 21:85a0f94a84cd 393 #define AUDIO_CONTROL_SPACIOUSNESS 0x0002
ua1arn 21:85a0f94a84cd 394
ua1arn 21:85a0f94a84cd 395 /* - Reverberation Control Bits */
ua1arn 21:85a0f94a84cd 396 /* AUDIO_CONTROL_ENABLE 0x0001 Common Bit */
ua1arn 21:85a0f94a84cd 397 #define AUDIO_CONTROL_REVERB_TYPE 0x0002
ua1arn 21:85a0f94a84cd 398 #define AUDIO_CONTROL_REVERB_LEVEL 0x0004
ua1arn 21:85a0f94a84cd 399 #define AUDIO_CONTROL_REVERB_TIME 0x0008
ua1arn 21:85a0f94a84cd 400 #define AUDIO_CONTROL_REVERB_FEEDBACK 0x0010
ua1arn 21:85a0f94a84cd 401
ua1arn 21:85a0f94a84cd 402 /* - Chorus Control Bits */
ua1arn 21:85a0f94a84cd 403 /* AUDIO_CONTROL_ENABLE 0x0001 Common Bit */
ua1arn 21:85a0f94a84cd 404 #define AUDIO_CONTROL_CHORUS_LEVEL 0x0002
ua1arn 21:85a0f94a84cd 405 #define AUDIO_CONTROL_SHORUS_RATE 0x0004
ua1arn 21:85a0f94a84cd 406 #define AUDIO_CONTROL_CHORUS_DEPTH 0x0008
ua1arn 21:85a0f94a84cd 407
ua1arn 21:85a0f94a84cd 408 /* - Dynamic Range Compressor Control Bits */
ua1arn 21:85a0f94a84cd 409 /* AUDIO_CONTROL_ENABLE 0x0001 Common Bit */
ua1arn 21:85a0f94a84cd 410 #define AUDIO_CONTROL_COMPRESSION_RATE 0x0002
ua1arn 21:85a0f94a84cd 411 #define AUDIO_CONTROL_MAX_AMPL 0x0004
ua1arn 21:85a0f94a84cd 412 #define AUDIO_CONTROL_THRESHOLD 0x0008
ua1arn 21:85a0f94a84cd 413 #define AUDIO_CONTROL_ATTACK_TIME 0x0010
ua1arn 21:85a0f94a84cd 414 #define AUDIO_CONTROL_RELEASE_TIME 0x0020
ua1arn 21:85a0f94a84cd 415
ua1arn 21:85a0f94a84cd 416 /* Extension Unit Control Bits */
ua1arn 21:85a0f94a84cd 417 /* AUDIO_CONTROL_ENABLE 0x0001 Common Bit */
ua1arn 21:85a0f94a84cd 418
ua1arn 21:85a0f94a84cd 419 /* Endpoint Control Bits */
ua1arn 21:85a0f94a84cd 420 #define AUDIO_CONTROL_SAMPLING_FREQ 0x01
ua1arn 21:85a0f94a84cd 421 #define AUDIO_CONTROL_PITCH 0x02
ua1arn 21:85a0f94a84cd 422 #define AUDIO_MAX_PACKETS_ONLY 0x80
ua1arn 21:85a0f94a84cd 423
ua1arn 21:85a0f94a84cd 424
ua1arn 21:85a0f94a84cd 425 /* Audio Terminal Types */
ua1arn 21:85a0f94a84cd 426
ua1arn 21:85a0f94a84cd 427 /* USB Terminal Types */
ua1arn 21:85a0f94a84cd 428 #define AUDIO_TERMINAL_USB_UNDEFINED 0x0100
ua1arn 21:85a0f94a84cd 429 #define AUDIO_TERMINAL_USB_STREAMING 0x0101
ua1arn 21:85a0f94a84cd 430 #define AUDIO_TERMINAL_USB_VENDOR_SPECIFIC 0x01FF
ua1arn 21:85a0f94a84cd 431
ua1arn 21:85a0f94a84cd 432 /* Input Terminal Types */
ua1arn 21:85a0f94a84cd 433 #define AUDIO_TERMINAL_INPUT_UNDEFINED 0x0200
ua1arn 21:85a0f94a84cd 434 #define AUDIO_TERMINAL_MICROPHONE 0x0201
ua1arn 21:85a0f94a84cd 435 #define AUDIO_TERMINAL_DESKTOP_MICROPHONE 0x0202
ua1arn 21:85a0f94a84cd 436 #define AUDIO_TERMINAL_PERSONAL_MICROPHONE 0x0203
ua1arn 21:85a0f94a84cd 437 #define AUDIO_TERMINAL_OMNI_DIR_MICROPHONE 0x0204
ua1arn 21:85a0f94a84cd 438 #define AUDIO_TERMINAL_MICROPHONE_ARRAY 0x0205
ua1arn 21:85a0f94a84cd 439 #define AUDIO_TERMINAL_PROCESSING_MIC_ARRAY 0x0206
ua1arn 21:85a0f94a84cd 440
ua1arn 21:85a0f94a84cd 441 /* Output Terminal Types */
ua1arn 21:85a0f94a84cd 442 #define AUDIO_TERMINAL_OUTPUT_UNDEFINED 0x0300
ua1arn 21:85a0f94a84cd 443 #define AUDIO_TERMINAL_SPEAKER 0x0301
ua1arn 21:85a0f94a84cd 444 #define AUDIO_TERMINAL_HEADPHONES 0x0302
ua1arn 21:85a0f94a84cd 445 #define AUDIO_TERMINAL_HEAD_MOUNTED_AUDIO 0x0303
ua1arn 21:85a0f94a84cd 446 #define AUDIO_TERMINAL_DESKTOP_SPEAKER 0x0304
ua1arn 21:85a0f94a84cd 447 #define AUDIO_TERMINAL_ROOM_SPEAKER 0x0305
ua1arn 21:85a0f94a84cd 448 #define AUDIO_TERMINAL_COMMUNICATION_SPEAKER 0x0306
ua1arn 21:85a0f94a84cd 449 #define AUDIO_TERMINAL_LOW_FREQ_SPEAKER 0x0307
ua1arn 21:85a0f94a84cd 450
ua1arn 21:85a0f94a84cd 451 /* Bi-directional Terminal Types */
ua1arn 21:85a0f94a84cd 452 #define AUDIO_TERMINAL_BIDIRECTIONAL_UNDEFINED 0x0400
ua1arn 21:85a0f94a84cd 453 #define AUDIO_TERMINAL_HANDSET 0x0401
ua1arn 21:85a0f94a84cd 454 #define AUDIO_TERMINAL_HEAD_MOUNTED_HANDSET 0x0402
ua1arn 21:85a0f94a84cd 455 #define AUDIO_TERMINAL_SPEAKERPHONE 0x0403
ua1arn 21:85a0f94a84cd 456 #define AUDIO_TERMINAL_SPEAKERPHONE_ECHOSUPRESS 0x0404
ua1arn 21:85a0f94a84cd 457 #define AUDIO_TERMINAL_SPEAKERPHONE_ECHOCANCEL 0x0405
ua1arn 21:85a0f94a84cd 458
ua1arn 21:85a0f94a84cd 459 /* Telephony Terminal Types */
ua1arn 21:85a0f94a84cd 460 #define AUDIO_TERMINAL_TELEPHONY_UNDEFINED 0x0500
ua1arn 21:85a0f94a84cd 461 #define AUDIO_TERMINAL_PHONE_LINE 0x0501
ua1arn 21:85a0f94a84cd 462 #define AUDIO_TERMINAL_TELEPHONE 0x0502
ua1arn 21:85a0f94a84cd 463 #define AUDIO_TERMINAL_DOWN_LINE_PHONE 0x0503
ua1arn 21:85a0f94a84cd 464
ua1arn 21:85a0f94a84cd 465 /* External Terminal Types */
ua1arn 21:85a0f94a84cd 466 #define AUDIO_TERMINAL_EXTERNAL_UNDEFINED 0x0600
ua1arn 21:85a0f94a84cd 467 #define AUDIO_TERMINAL_ANALOG_CONNECTOR 0x0601
ua1arn 21:85a0f94a84cd 468 #define AUDIO_TERMINAL_DIGITAL_AUDIO_INTERFACE 0x0602
ua1arn 21:85a0f94a84cd 469 #define AUDIO_TERMINAL_LINE_CONNECTOR 0x0603
ua1arn 21:85a0f94a84cd 470 #define AUDIO_TERMINAL_LEGACY_AUDIO_CONNECTOR 0x0604
ua1arn 21:85a0f94a84cd 471 #define AUDIO_TERMINAL_SPDIF_INTERFACE 0x0605
ua1arn 21:85a0f94a84cd 472 #define AUDIO_TERMINAL_1394_DA_STREAM 0x0606
ua1arn 21:85a0f94a84cd 473 #define AUDIO_TERMINAL_1394_DA_STREAM_TRACK 0x0607
ua1arn 21:85a0f94a84cd 474
ua1arn 21:85a0f94a84cd 475 /* Embedded Function Terminal Types */
ua1arn 21:85a0f94a84cd 476 #define AUDIO_TERMINAL_EMBEDDED_UNDEFINED 0x0700
ua1arn 21:85a0f94a84cd 477 #define AUDIO_TERMINAL_CALIBRATION_NOISE 0x0701
ua1arn 21:85a0f94a84cd 478 #define AUDIO_TERMINAL_EQUALIZATION_NOISE 0x0702
ua1arn 21:85a0f94a84cd 479 #define AUDIO_TERMINAL_CD_PLAYER 0x0703
ua1arn 21:85a0f94a84cd 480 #define AUDIO_TERMINAL_DAT 0x0704
ua1arn 21:85a0f94a84cd 481 #define AUDIO_TERMINAL_DCC 0x0705
ua1arn 21:85a0f94a84cd 482 #define AUDIO_TERMINAL_MINI_DISK 0x0706
ua1arn 21:85a0f94a84cd 483 #define AUDIO_TERMINAL_ANALOG_TAPE 0x0707
ua1arn 21:85a0f94a84cd 484 #define AUDIO_TERMINAL_PHONOGRAPH 0x0708
ua1arn 21:85a0f94a84cd 485 #define AUDIO_TERMINAL_VCR_AUDIO 0x0709
ua1arn 21:85a0f94a84cd 486 #define AUDIO_TERMINAL_VIDEO_DISC_AUDIO 0x070A
ua1arn 21:85a0f94a84cd 487 #define AUDIO_TERMINAL_DVD_AUDIO 0x070B
ua1arn 21:85a0f94a84cd 488 #define AUDIO_TERMINAL_TV_TUNER_AUDIO 0x070C
ua1arn 21:85a0f94a84cd 489 #define AUDIO_TERMINAL_SATELLITE_RECEIVER_AUDIO 0x070D
ua1arn 21:85a0f94a84cd 490 #define AUDIO_TERMINAL_CABLE_TUNER_AUDIO 0x070E
ua1arn 21:85a0f94a84cd 491 #define AUDIO_TERMINAL_DSS_AUDIO 0x070F
ua1arn 21:85a0f94a84cd 492 #define AUDIO_TERMINAL_RADIO_RECEIVER 0x0710
ua1arn 21:85a0f94a84cd 493 #define AUDIO_TERMINAL_RADIO_TRANSMITTER 0x0711
ua1arn 21:85a0f94a84cd 494 #define AUDIO_TERMINAL_MULTI_TRACK_RECORDER 0x0712
ua1arn 21:85a0f94a84cd 495 #define AUDIO_TERMINAL_SYNTHESIZER 0x0713
ua1arn 21:85a0f94a84cd 496
ua1arn 21:85a0f94a84cd 497 /*----------------------------------------------------------------------------
ua1arn 21:85a0f94a84cd 498 * Definitions based on usbcdc11.pdf (www.usb.org)
ua1arn 21:85a0f94a84cd 499 *---------------------------------------------------------------------------*/
ua1arn 21:85a0f94a84cd 500 // Communication device class specification version 1.10
ua1arn 21:85a0f94a84cd 501 #define CDC_V1_10 0x0110
ua1arn 21:85a0f94a84cd 502
ua1arn 21:85a0f94a84cd 503 // Communication interface class code
ua1arn 21:85a0f94a84cd 504 // (usbcdc11.pdf, 4.2, Table 15)
ua1arn 21:85a0f94a84cd 505 #define CDC_COMMUNICATION_INTERFACE_CLASS 0x02
ua1arn 21:85a0f94a84cd 506
ua1arn 21:85a0f94a84cd 507 // Communication interface class subclass codes
ua1arn 21:85a0f94a84cd 508 // (usbcdc11.pdf, 4.3, Table 16)
ua1arn 21:85a0f94a84cd 509 #define CDC_DIRECT_LINE_CONTROL_MODEL 0x01
ua1arn 21:85a0f94a84cd 510 #define CDC_ABSTRACT_CONTROL_MODEL 0x02
ua1arn 21:85a0f94a84cd 511 #define CDC_TELEPHONE_CONTROL_MODEL 0x03
ua1arn 21:85a0f94a84cd 512 #define CDC_MULTI_CHANNEL_CONTROL_MODEL 0x04
ua1arn 21:85a0f94a84cd 513 #define CDC_CAPI_CONTROL_MODEL 0x05
ua1arn 21:85a0f94a84cd 514 #define CDC_ETHERNET_NETWORKING_CONTROL_MODEL 0x06
ua1arn 21:85a0f94a84cd 515 #define CDC_ATM_NETWORKING_CONTROL_MODEL 0x07
ua1arn 21:85a0f94a84cd 516 #define CDC_ETHERNET_EMULATION_MODEL 0x0C
ua1arn 21:85a0f94a84cd 517
ua1arn 21:85a0f94a84cd 518 // Communication interface class control protocol codes
ua1arn 21:85a0f94a84cd 519 // (usbcdc11.pdf, 4.4, Table 17)
ua1arn 21:85a0f94a84cd 520 #define CDC_PROTOCOL_COMMON_AT_COMMANDS 0x01
ua1arn 21:85a0f94a84cd 521
ua1arn 21:85a0f94a84cd 522 // Data interface class code
ua1arn 21:85a0f94a84cd 523 // (usbcdc11.pdf, 4.5, Table 18)
ua1arn 21:85a0f94a84cd 524 #define CDC_DATA_INTERFACE_CLASS 0x0A
ua1arn 21:85a0f94a84cd 525
ua1arn 21:85a0f94a84cd 526 // Data interface class protocol codes
ua1arn 21:85a0f94a84cd 527 // (usbcdc11.pdf, 4.7, Table 19)
ua1arn 21:85a0f94a84cd 528 #define CDC_PROTOCOL_ISDN_BRI 0x30
ua1arn 21:85a0f94a84cd 529 #define CDC_PROTOCOL_HDLC 0x31
ua1arn 21:85a0f94a84cd 530 #define CDC_PROTOCOL_TRANSPARENT 0x32
ua1arn 21:85a0f94a84cd 531 #define CDC_PROTOCOL_Q921_MANAGEMENT 0x50
ua1arn 21:85a0f94a84cd 532 #define CDC_PROTOCOL_Q921_DATA_LINK 0x51
ua1arn 21:85a0f94a84cd 533 #define CDC_PROTOCOL_Q921_MULTIPLEXOR 0x52
ua1arn 21:85a0f94a84cd 534 #define CDC_PROTOCOL_V42 0x90
ua1arn 21:85a0f94a84cd 535 #define CDC_PROTOCOL_EURO_ISDN 0x91
ua1arn 21:85a0f94a84cd 536 #define CDC_PROTOCOL_V24_RATE_ADAPTATION 0x92
ua1arn 21:85a0f94a84cd 537 #define CDC_PROTOCOL_CAPI 0x93
ua1arn 21:85a0f94a84cd 538 #define CDC_PROTOCOL_HOST_BASED_DRIVER 0xFD
ua1arn 21:85a0f94a84cd 539 #define CDC_PROTOCOL_DESCRIBED_IN_PUFD 0xFE
ua1arn 21:85a0f94a84cd 540
ua1arn 21:85a0f94a84cd 541 // Type values for bDescriptorType field of functional descriptors
ua1arn 21:85a0f94a84cd 542 // (usbcdc11.pdf, 5.2.3, Table 24)
ua1arn 21:85a0f94a84cd 543 #define CDC_CS_INTERFACE 0x24
ua1arn 21:85a0f94a84cd 544 #define CDC_CS_ENDPOINT 0x25
ua1arn 21:85a0f94a84cd 545
ua1arn 21:85a0f94a84cd 546 // Type values for bDescriptorSubtype field of functional descriptors
ua1arn 21:85a0f94a84cd 547 // (usbcdc11.pdf, 5.2.3, Table 25)
ua1arn 21:85a0f94a84cd 548 #define CDC_HEADER 0x00
ua1arn 21:85a0f94a84cd 549 #define CDC_CALL_MANAGEMENT 0x01
ua1arn 21:85a0f94a84cd 550 #define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02
ua1arn 21:85a0f94a84cd 551 #define CDC_DIRECT_LINE_MANAGEMENT 0x03
ua1arn 21:85a0f94a84cd 552 #define CDC_TELEPHONE_RINGER 0x04
ua1arn 21:85a0f94a84cd 553 #define CDC_REPORTING_CAPABILITIES 0x05
ua1arn 21:85a0f94a84cd 554 #define CDC_UNION 0x06
ua1arn 21:85a0f94a84cd 555 #define CDC_COUNTRY_SELECTION 0x07
ua1arn 21:85a0f94a84cd 556 #define CDC_TELEPHONE_OPERATIONAL_MODES 0x08
ua1arn 21:85a0f94a84cd 557 #define CDC_USB_TERMINAL 0x09
ua1arn 21:85a0f94a84cd 558 #define CDC_NETWORK_CHANNEL 0x0A
ua1arn 21:85a0f94a84cd 559 #define CDC_PROTOCOL_UNIT 0x0B
ua1arn 21:85a0f94a84cd 560 #define CDC_EXTENSION_UNIT 0x0C
ua1arn 21:85a0f94a84cd 561 #define CDC_MULTI_CHANNEL_MANAGEMENT 0x0D
ua1arn 21:85a0f94a84cd 562 #define CDC_CAPI_CONTROL_MANAGEMENT 0x0E
ua1arn 21:85a0f94a84cd 563 #define CDC_ETHERNET_NETWORKING 0x0F
ua1arn 21:85a0f94a84cd 564 #define CDC_ATM_NETWORKING 0x10
ua1arn 21:85a0f94a84cd 565
ua1arn 21:85a0f94a84cd 566 // CDC class-specific request codes
ua1arn 21:85a0f94a84cd 567 // (usbcdc11.pdf, 6.2, Table 46)
ua1arn 21:85a0f94a84cd 568 // see Table 45 for info about the specific requests.
ua1arn 21:85a0f94a84cd 569 #define CDC_SEND_ENCAPSULATED_COMMAND 0x00
ua1arn 21:85a0f94a84cd 570 #define CDC_GET_ENCAPSULATED_RESPONSE 0x01
ua1arn 21:85a0f94a84cd 571 #define CDC_SET_COMM_FEATURE 0x02
ua1arn 21:85a0f94a84cd 572 #define CDC_GET_COMM_FEATURE 0x03
ua1arn 21:85a0f94a84cd 573 #define CDC_CLEAR_COMM_FEATURE 0x04
ua1arn 21:85a0f94a84cd 574 #define CDC_SET_AUX_LINE_STATE 0x10
ua1arn 21:85a0f94a84cd 575 #define CDC_SET_HOOK_STATE 0x11
ua1arn 21:85a0f94a84cd 576 #define CDC_PULSE_SETUP 0x12
ua1arn 21:85a0f94a84cd 577 #define CDC_SEND_PULSE 0x13
ua1arn 21:85a0f94a84cd 578 #define CDC_SET_PULSE_TIME 0x14
ua1arn 21:85a0f94a84cd 579 #define CDC_RING_AUX_JACK 0x15
ua1arn 21:85a0f94a84cd 580 #define CDC_SET_LINE_CODING 0x20
ua1arn 21:85a0f94a84cd 581 #define CDC_GET_LINE_CODING 0x21
ua1arn 21:85a0f94a84cd 582 #define CDC_SET_CONTROL_LINE_STATE 0x22
ua1arn 21:85a0f94a84cd 583 #define CDC_SEND_BREAK 0x23
ua1arn 21:85a0f94a84cd 584 #define CDC_SET_RINGER_PARMS 0x30
ua1arn 21:85a0f94a84cd 585 #define CDC_GET_RINGER_PARMS 0x31
ua1arn 21:85a0f94a84cd 586 #define CDC_SET_OPERATION_PARMS 0x32
ua1arn 21:85a0f94a84cd 587 #define CDC_GET_OPERATION_PARMS 0x33
ua1arn 21:85a0f94a84cd 588 #define CDC_SET_LINE_PARMS 0x34
ua1arn 21:85a0f94a84cd 589 #define CDC_GET_LINE_PARMS 0x35
ua1arn 21:85a0f94a84cd 590 #define CDC_DIAL_DIGITS 0x36
ua1arn 21:85a0f94a84cd 591 #define CDC_SET_UNIT_PARAMETER 0x37
ua1arn 21:85a0f94a84cd 592 #define CDC_GET_UNIT_PARAMETER 0x38
ua1arn 21:85a0f94a84cd 593 #define CDC_CLEAR_UNIT_PARAMETER 0x39
ua1arn 21:85a0f94a84cd 594 #define CDC_GET_PROFILE 0x3A
ua1arn 21:85a0f94a84cd 595 #define CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40
ua1arn 21:85a0f94a84cd 596 #define CDC_SET_ETHERNET_PMP_FILTER 0x41
ua1arn 21:85a0f94a84cd 597 #define CDC_GET_ETHERNET_PMP_FILTER 0x42
ua1arn 21:85a0f94a84cd 598 #define CDC_SET_ETHERNET_PACKET_FILTER 0x43
ua1arn 21:85a0f94a84cd 599 #define CDC_GET_ETHERNET_STATISTIC 0x44
ua1arn 21:85a0f94a84cd 600 #define CDC_SET_ATM_DATA_FORMAT 0x50
ua1arn 21:85a0f94a84cd 601 #define CDC_GET_ATM_DEVICE_STATISTICS 0x51
ua1arn 21:85a0f94a84cd 602 #define CDC_SET_ATM_DEFAULT_VC 0x52
ua1arn 21:85a0f94a84cd 603 #define CDC_GET_ATM_VC_STATISTICS 0x53
ua1arn 21:85a0f94a84cd 604
ua1arn 21:85a0f94a84cd 605 // Communication feature selector codes
ua1arn 21:85a0f94a84cd 606 // (usbcdc11.pdf, 6.2.2..6.2.4, Table 47)
ua1arn 21:85a0f94a84cd 607 #define CDC_ABSTRACT_STATE 0x01
ua1arn 21:85a0f94a84cd 608 #define CDC_COUNTRY_SETTING 0x02
ua1arn 21:85a0f94a84cd 609
ua1arn 21:85a0f94a84cd 610 // Feature Status returned for ABSTRACT_STATE Selector
ua1arn 21:85a0f94a84cd 611 // (usbcdc11.pdf, 6.2.3, Table 48)
ua1arn 21:85a0f94a84cd 612 #define CDC_IDLE_SETTING (1 << 0)
ua1arn 21:85a0f94a84cd 613 #define CDC_DATA_MULTPLEXED_STATE (1 << 1)
ua1arn 21:85a0f94a84cd 614
ua1arn 21:85a0f94a84cd 615
ua1arn 21:85a0f94a84cd 616 // Control signal bitmap values for the SetControlLineState request
ua1arn 21:85a0f94a84cd 617 // (usbcdc11.pdf, 6.2.14, Table 51)
ua1arn 21:85a0f94a84cd 618 #define CDC_DTE_PRESENT (1 << 0)
ua1arn 21:85a0f94a84cd 619 #define CDC_ACTIVATE_CARRIER (1 << 1)
ua1arn 21:85a0f94a84cd 620
ua1arn 21:85a0f94a84cd 621 // CDC class-specific notification codes
ua1arn 21:85a0f94a84cd 622 // (usbcdc11.pdf, 6.3, Table 68)
ua1arn 21:85a0f94a84cd 623 // see Table 67 for Info about class-specific notifications
ua1arn 21:85a0f94a84cd 624 #define CDC_NOTIFICATION_NETWORK_CONNECTION 0x00
ua1arn 21:85a0f94a84cd 625 #define CDC_RESPONSE_AVAILABLE 0x01
ua1arn 21:85a0f94a84cd 626 #define CDC_AUX_JACK_HOOK_STATE 0x08
ua1arn 21:85a0f94a84cd 627 #define CDC_RING_DETECT 0x09
ua1arn 21:85a0f94a84cd 628 #define CDC_NOTIFICATION_SERIAL_STATE 0x20
ua1arn 21:85a0f94a84cd 629 #define CDC_CALL_STATE_CHANGE 0x28
ua1arn 21:85a0f94a84cd 630 #define CDC_LINE_STATE_CHANGE 0x29
ua1arn 21:85a0f94a84cd 631 #define CDC_CONNECTION_SPEED_CHANGE 0x2A
ua1arn 21:85a0f94a84cd 632
ua1arn 21:85a0f94a84cd 633 // UART state bitmap values (Serial state notification).
ua1arn 21:85a0f94a84cd 634 // (usbcdc11.pdf, 6.3.5, Table 69)
ua1arn 21:85a0f94a84cd 635 #define CDC_SERIAL_STATE_OVERRUN (1 << 6) // receive data overrun error has occurred
ua1arn 21:85a0f94a84cd 636 #define CDC_SERIAL_STATE_PARITY (1 << 5) // parity error has occurred
ua1arn 21:85a0f94a84cd 637 #define CDC_SERIAL_STATE_FRAMING (1 << 4) // framing error has occurred
ua1arn 21:85a0f94a84cd 638 #define CDC_SERIAL_STATE_RING (1 << 3) // state of ring signal detection
ua1arn 21:85a0f94a84cd 639 #define CDC_SERIAL_STATE_BREAK (1 << 2) // state of break detection
ua1arn 21:85a0f94a84cd 640 #define CDC_SERIAL_STATE_TX_CARRIER (1 << 1) // state of transmission carrier
ua1arn 21:85a0f94a84cd 641 #define CDC_SERIAL_STATE_RX_CARRIER (1 << 0) // state of receiver carrier
ua1arn 21:85a0f94a84cd 642
ua1arn 21:85a0f94a84cd 643
ua1arn 21:85a0f94a84cd 644 // HID
ua1arn 21:85a0f94a84cd 645
ua1arn 21:85a0f94a84cd 646 #define HID_DESCRIPTOR_TYPE 0x21
ua1arn 21:85a0f94a84cd 647 #define HID_REPORT_DESC 0x22
ua1arn 21:85a0f94a84cd 648
ua1arn 21:85a0f94a84cd 649 #endif /* __USB200_H__ */