43 #ifndef _TUSB_TUSB_TYPES_H_
44 #define _TUSB_TUSB_TYPES_H_
59 TUSB_XFER_CONTROL = 0 ,
60 TUSB_XFER_ISOCHRONOUS ,
66 TUSB_DIR_HOST_TO_DEV = 0,
67 TUSB_DIR_DEV_TO_HOST = 1,
69 TUSB_DIR_DEV_TO_HOST_MASK = 0x80
75 TUSB_DESC_TYPE_DEVICE = 0x01 ,
76 TUSB_DESC_TYPE_CONFIGURATION = 0x02 ,
77 TUSB_DESC_TYPE_STRING = 0x03 ,
78 TUSB_DESC_TYPE_INTERFACE = 0x04 ,
79 TUSB_DESC_TYPE_ENDPOINT = 0x05 ,
80 TUSB_DESC_TYPE_DEVICE_QUALIFIER = 0x06 ,
81 TUSB_DESC_TYPE_OTHER_SPEED_CONFIGURATION = 0x07 ,
82 TUSB_DESC_TYPE_INTERFACE_POWER = 0x08 ,
83 TUSB_DESC_TYPE_OTG = 0x09 ,
84 TUSB_DESC_TYPE_DEBUG = 0x0A ,
85 TUSB_DESC_TYPE_INTERFACE_ASSOCIATION = 0x0B ,
86 TUSB_DESC_TYPE_INTERFACE_CLASS_SPECIFIC = 0x24
106 TUSB_REQUEST_TYPE_STANDARD = 0,
107 TUSB_REQUEST_TYPE_CLASS,
108 TUSB_REQUEST_TYPE_VENDOR
109 } tusb_control_request_type_t;
112 TUSB_REQUEST_RECIPIENT_DEVICE =0,
113 TUSB_REQUEST_RECIPIENT_INTERFACE,
114 TUSB_REQUEST_RECIPIENT_ENDPOINT,
115 TUSB_REQUEST_RECIPIENT_OTHER
116 } tusb_std_request_recipient_t;
137 TUSB_CLASS_MAPPED_INDEX_START = 17 ,
139 TUSB_CLASS_DIAGNOSTIC = 0xDC ,
140 TUSB_CLASS_WIRELESS_CONTROLLER = 0xE0 ,
141 TUSB_CLASS_MISC = 0xEF ,
142 TUSB_CLASS_APPLICATION_SPECIFIC = 0xFE ,
143 TUSB_CLASS_VENDOR_SPECIFIC = 0xFF
147 MISC_SUBCLASS_COMMON = 2
148 }misc_subclass_type_t;
151 MISC_PROTOCOL_IAD = 1
152 }misc_protocol_type_t;
155 TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP =
BIT_(5),
156 TUSB_DESC_CONFIG_ATT_SELF_POWER =
BIT_(6),
157 TUSB_DESC_CONFIG_ATT_BUS_POWER =
BIT_(7)
160 #define TUSB_DESC_CONFIG_POWER_MA(x) ((x)/2)
164 TUSB_DEVICE_STATE_UNPLUG = 0 ,
165 TUSB_DEVICE_STATE_ADDRESSED ,
166 TUSB_DEVICE_STATE_CONFIGURED ,
167 TUSB_DEVICE_STATE_SUSPENDED ,
169 TUSB_DEVICE_STATE_REMOVING ,
170 TUSB_DEVICE_STATE_SAFE_REMOVE ,
172 TUSB_DEVICE_STATE_INVALID_PARAMETER
177 TUSB_EVENT_XFER_COMPLETE,
178 TUSB_EVENT_XFER_ERROR,
179 TUSB_EVENT_XFER_STALLED,
181 TUSB_EVENT_BUS_RESET,
182 TUSB_EVENT_SETUP_RECEIVED,
186 DESCRIPTOR_OFFSET_LENGTH = 0,
187 DESCRIPTOR_OFFSET_TYPE = 1
191 INTERFACE_INVALID_NUMBER = 0xff
195 static inline uint8_t std_class_code_to_index(uint8_t std_class_code)
198 (std_class_code == TUSB_CLASS_DIAGNOSTIC ) ? TUSB_CLASS_MAPPED_INDEX_START :
199 (std_class_code == TUSB_CLASS_WIRELESS_CONTROLLER ) ? TUSB_CLASS_MAPPED_INDEX_START + 1 :
200 (std_class_code == TUSB_CLASS_MISC ) ? TUSB_CLASS_MAPPED_INDEX_START + 2 :
201 (std_class_code == TUSB_CLASS_APPLICATION_SPECIFIC ) ? TUSB_CLASS_MAPPED_INDEX_START + 3 :
202 (std_class_code == TUSB_CLASS_VENDOR_SPECIFIC ) ? TUSB_CLASS_MAPPED_INDEX_START + 4 : 0;
7
Definition: tusb_types.h:97
15
Definition: tusb_types.h:134
12
Definition: tusb_types.h:131
#define BIT_(n)
n-th Bit
Definition: binary.h:54
6
Definition: tusb_types.h:125
tusb_speed_t
defined base on EHCI specs value for Endpoint Speed
Definition: tusb_types.h:51
9
Definition: tusb_types.h:99
1
Definition: tusb_types.h:91
4
Definition: tusb_types.h:123
16
Definition: tusb_types.h:135
13
Definition: tusb_types.h:132
10
Definition: tusb_types.h:100
tusb_device_state_t
Device State.
Definition: tusb_types.h:163
12
Definition: tusb_types.h:102
5
Definition: tusb_types.h:95
4
Definition: tusb_types.h:94
3
Definition: tusb_types.h:122
8
Definition: tusb_types.h:127
0
Definition: tusb_types.h:90
6
Definition: tusb_types.h:96
14
Definition: tusb_types.h:133
7
Definition: tusb_types.h:126
9
Definition: tusb_types.h:128
3
Definition: tusb_types.h:93
2
Definition: tusb_types.h:92
0
Definition: tusb_types.h:119
tusb_std_descriptor_type_t
USB Descriptor Types (section 9.4 table 9-5)
Definition: tusb_types.h:74
11
Definition: tusb_types.h:130
tusb_std_class_code_t
Definition: tusb_types.h:118
1
Definition: tusb_types.h:120
2
Definition: tusb_types.h:121
8
Definition: tusb_types.h:98
5
Definition: tusb_types.h:124
#define ATTR_ALWAYS_INLINE
Generally, functions are not inlined unless optimization is specified. For functions declared inline...
Definition: compiler_gcc.h:89
#define ATTR_CONST
Many functions do not examine any values except their arguments, and have no effects except the retur...
Definition: compiler_gcc.h:100
11
Definition: tusb_types.h:101
tusb_xfer_type_t
defined base on USB Specs Endpoint's bmAttributes
Definition: tusb_types.h:58
10
Definition: tusb_types.h:129
tusb_std_request_code_t
Definition: tusb_types.h:89