Blame view
include/usb_defs.h
10.7 KB
83d290c56 SPDX: Convert all... |
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
012771d88 Initial revision |
2 3 4 5 |
/* * (C) Copyright 2001 * Denis Peter, MPL AG Switzerland * |
012771d88 Initial revision |
6 |
* Note: Part of this code has been derived from linux |
012771d88 Initial revision |
7 8 9 |
*/ #ifndef _USB_DEFS_H_ #define _USB_DEFS_H_ |
012771d88 Initial revision |
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
/* USB constants */ /* Device and/or Interface Class codes */ #define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ #define USB_CLASS_AUDIO 1 #define USB_CLASS_COMM 2 #define USB_CLASS_HID 3 #define USB_CLASS_PRINTER 7 #define USB_CLASS_MASS_STORAGE 8 #define USB_CLASS_HUB 9 #define USB_CLASS_DATA 10 #define USB_CLASS_VENDOR_SPEC 0xff /* some HID sub classes */ #define USB_SUB_HID_NONE 0 #define USB_SUB_HID_BOOT 1 /* some UID Protocols */ #define USB_PROT_HID_NONE 0 #define USB_PROT_HID_KEYBOARD 1 #define USB_PROT_HID_MOUSE 2 /* Sub STORAGE Classes */ #define US_SC_RBC 1 /* Typically, flash devices */ #define US_SC_8020 2 /* CD-ROM */ #define US_SC_QIC 3 /* QIC-157 Tapes */ #define US_SC_UFI 4 /* Floppy */ #define US_SC_8070 5 /* Removable media */ #define US_SC_SCSI 6 /* Transparent */ #define US_SC_MIN US_SC_RBC #define US_SC_MAX US_SC_SCSI /* STORAGE Protocols */ #define US_PR_CB 1 /* Control/Bulk w/o interrupt */ #define US_PR_CBI 0 /* Control/Bulk/Interrupt */ #define US_PR_BULK 0x50 /* bulk only */ /* USB types */ #define USB_TYPE_STANDARD (0x00 << 5) #define USB_TYPE_CLASS (0x01 << 5) #define USB_TYPE_VENDOR (0x02 << 5) #define USB_TYPE_RESERVED (0x03 << 5) /* USB recipients */ #define USB_RECIP_DEVICE 0x00 #define USB_RECIP_INTERFACE 0x01 #define USB_RECIP_ENDPOINT 0x02 #define USB_RECIP_OTHER 0x03 /* USB directions */ #define USB_DIR_OUT 0 #define USB_DIR_IN 0x80 |
e3d7440c2 usb: Move 'bmRequ... |
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
/* * bmRequestType: USB Device Requests, table 9.2 USB 2.0 spec. * (shifted) direction/type/recipient. */ #define DeviceRequest \ ((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8) #define DeviceOutRequest \ ((USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_DEVICE) << 8) #define InterfaceRequest \ ((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_INTERFACE) << 8) #define EndpointRequest \ ((USB_DIR_IN | USB_TYPE_STANDARD | USB_RECIP_INTERFACE) << 8) #define EndpointOutRequest \ ((USB_DIR_OUT | USB_TYPE_STANDARD | USB_RECIP_INTERFACE) << 8) |
012771d88 Initial revision |
81 82 83 84 85 86 87 88 89 90 91 |
/* Descriptor types */ #define USB_DT_DEVICE 0x01 #define USB_DT_CONFIG 0x02 #define USB_DT_STRING 0x03 #define USB_DT_INTERFACE 0x04 #define USB_DT_ENDPOINT 0x05 #define USB_DT_HID (USB_TYPE_CLASS | 0x01) #define USB_DT_REPORT (USB_TYPE_CLASS | 0x02) #define USB_DT_PHYSICAL (USB_TYPE_CLASS | 0x03) #define USB_DT_HUB (USB_TYPE_CLASS | 0x09) |
f34211960 usb: hub: Send co... |
92 |
#define USB_DT_SS_HUB (USB_TYPE_CLASS | 0x0a) |
012771d88 Initial revision |
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
/* Descriptor sizes per descriptor type */ #define USB_DT_DEVICE_SIZE 18 #define USB_DT_CONFIG_SIZE 9 #define USB_DT_INTERFACE_SIZE 9 #define USB_DT_ENDPOINT_SIZE 7 #define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */ #define USB_DT_HUB_NONVAR_SIZE 7 #define USB_DT_HID_SIZE 9 /* Endpoints */ #define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */ #define USB_ENDPOINT_DIR_MASK 0x80 #define USB_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */ #define USB_ENDPOINT_XFER_CONTROL 0 #define USB_ENDPOINT_XFER_ISOC 1 #define USB_ENDPOINT_XFER_BULK 2 #define USB_ENDPOINT_XFER_INT 3 /* USB Packet IDs (PIDs) */ #define USB_PID_UNDEF_0 0xf0 #define USB_PID_OUT 0xe1 #define USB_PID_ACK 0xd2 #define USB_PID_DATA0 0xc3 #define USB_PID_UNDEF_4 0xb4 #define USB_PID_SOF 0xa5 #define USB_PID_UNDEF_6 0x96 #define USB_PID_UNDEF_7 0x87 #define USB_PID_UNDEF_8 0x78 #define USB_PID_IN 0x69 #define USB_PID_NAK 0x5a #define USB_PID_DATA1 0x4b #define USB_PID_PREAMBLE 0x3c #define USB_PID_SETUP 0x2d #define USB_PID_STALL 0x1e #define USB_PID_UNDEF_F 0x0f /* Standard requests */ #define USB_REQ_GET_STATUS 0x00 #define USB_REQ_CLEAR_FEATURE 0x01 #define USB_REQ_SET_FEATURE 0x03 #define USB_REQ_SET_ADDRESS 0x05 #define USB_REQ_GET_DESCRIPTOR 0x06 #define USB_REQ_SET_DESCRIPTOR 0x07 #define USB_REQ_GET_CONFIGURATION 0x08 #define USB_REQ_SET_CONFIGURATION 0x09 #define USB_REQ_GET_INTERFACE 0x0A #define USB_REQ_SET_INTERFACE 0x0B #define USB_REQ_SYNCH_FRAME 0x0C /* HID requests */ #define USB_REQ_GET_REPORT 0x01 #define USB_REQ_GET_IDLE 0x02 #define USB_REQ_GET_PROTOCOL 0x03 #define USB_REQ_SET_REPORT 0x09 #define USB_REQ_SET_IDLE 0x0A #define USB_REQ_SET_PROTOCOL 0x0B |
7d9aa8fd8 usb: Add new comm... |
151 152 153 154 155 156 157 158 159 160 161 |
/* Device features */ #define USB_FEAT_HALT 0x00 #define USB_FEAT_WAKEUP 0x01 #define USB_FEAT_TEST 0x02 /* Test modes */ #define USB_TEST_MODE_J 0x01 #define USB_TEST_MODE_K 0x02 #define USB_TEST_MODE_SE0_NAK 0x03 #define USB_TEST_MODE_PACKET 0x04 #define USB_TEST_MODE_FORCE_ENABLE 0x05 |
012771d88 Initial revision |
162 |
|
7caced5aa dm: usb: Tidy up ... |
163 164 165 166 167 168 169 170 |
/* * "pipe" definitions, use unsigned so we can compare reliably, since this * value is shifted up to bits 30/31. */ #define PIPE_ISOCHRONOUS 0U #define PIPE_INTERRUPT 1U #define PIPE_CONTROL 2U #define PIPE_BULK 3U |
012771d88 Initial revision |
171 172 173 174 175 176 |
#define PIPE_DEVEP_MASK 0x0007ff00 #define USB_ISOCHRONOUS 0 #define USB_INTERRUPT 1 #define USB_CONTROL 2 #define USB_BULK 3 |
7caced5aa dm: usb: Tidy up ... |
177 178 179 180 181 182 183 184 |
#define USB_PIPE_TYPE_SHIFT 30 #define USB_PIPE_TYPE_MASK (3 << USB_PIPE_TYPE_SHIFT) #define USB_PIPE_DEV_SHIFT 8 #define USB_PIPE_DEV_MASK (0x7f << USB_PIPE_DEV_SHIFT) #define USB_PIPE_EP_SHIFT 15 #define USB_PIPE_EP_MASK (0xf << USB_PIPE_EP_SHIFT) |
012771d88 Initial revision |
185 186 187 188 189 190 191 192 193 |
/* USB-status codes: */ #define USB_ST_ACTIVE 0x1 /* TD is active */ #define USB_ST_STALLED 0x2 /* TD is stalled */ #define USB_ST_BUF_ERR 0x4 /* buffer error */ #define USB_ST_BABBLE_DET 0x8 /* Babble detected */ #define USB_ST_NAK_REC 0x10 /* NAK Received*/ #define USB_ST_CRC_ERR 0x20 /* CRC/timeout Error */ #define USB_ST_BIT_ERR 0x40 /* Bitstuff error */ #define USB_ST_NOT_PROC 0x80000000L /* Not yet processed */ |
012771d88 Initial revision |
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 |
/************************************************************************* * Hub defines */ /* * Hub request types */ #define USB_RT_HUB (USB_TYPE_CLASS | USB_RECIP_DEVICE) #define USB_RT_PORT (USB_TYPE_CLASS | USB_RECIP_OTHER) /* * Hub Class feature numbers */ #define C_HUB_LOCAL_POWER 0 #define C_HUB_OVER_CURRENT 1 /* * Port feature numbers */ #define USB_PORT_FEAT_CONNECTION 0 #define USB_PORT_FEAT_ENABLE 1 #define USB_PORT_FEAT_SUSPEND 2 #define USB_PORT_FEAT_OVER_CURRENT 3 #define USB_PORT_FEAT_RESET 4 #define USB_PORT_FEAT_POWER 8 #define USB_PORT_FEAT_LOWSPEED 9 |
3e126484d Prepare USB layer... |
221 |
#define USB_PORT_FEAT_HIGHSPEED 10 |
012771d88 Initial revision |
222 223 224 225 226 |
#define USB_PORT_FEAT_C_CONNECTION 16 #define USB_PORT_FEAT_C_ENABLE 17 #define USB_PORT_FEAT_C_SUSPEND 18 #define USB_PORT_FEAT_C_OVER_CURRENT 19 #define USB_PORT_FEAT_C_RESET 20 |
7d9aa8fd8 usb: Add new comm... |
227 |
#define USB_PORT_FEAT_TEST 21 |
012771d88 Initial revision |
228 |
|
55f4b5754 usb: fix: Fixing ... |
229 230 231 232 233 234 235 236 237 238 |
/* * Changes to Port feature numbers for Super speed, * from USB 3.0 spec Table 10-8 */ #define USB_SS_PORT_FEAT_U1_TIMEOUT 23 #define USB_SS_PORT_FEAT_U2_TIMEOUT 24 #define USB_SS_PORT_FEAT_C_LINK_STATE 25 #define USB_SS_PORT_FEAT_C_CONFIG_ERROR 26 #define USB_SS_PORT_FEAT_BH_RESET 28 #define USB_SS_PORT_FEAT_C_BH_RESET 29 |
012771d88 Initial revision |
239 240 241 242 243 244 245 246 |
/* wPortStatus bits */ #define USB_PORT_STAT_CONNECTION 0x0001 #define USB_PORT_STAT_ENABLE 0x0002 #define USB_PORT_STAT_SUSPEND 0x0004 #define USB_PORT_STAT_OVERCURRENT 0x0008 #define USB_PORT_STAT_RESET 0x0010 #define USB_PORT_STAT_POWER 0x0100 #define USB_PORT_STAT_LOW_SPEED 0x0200 |
3e126484d Prepare USB layer... |
247 |
#define USB_PORT_STAT_HIGH_SPEED 0x0400 /* support for EHCI */ |
55f4b5754 usb: fix: Fixing ... |
248 249 250 |
#define USB_PORT_STAT_SUPER_SPEED 0x0600 /* faking support to XHCI */ #define USB_PORT_STAT_SPEED_MASK \ (USB_PORT_STAT_LOW_SPEED | USB_PORT_STAT_HIGH_SPEED) |
6497c6670 USB: SS: Add supp... |
251 252 |
/* |
55f4b5754 usb: fix: Fixing ... |
253 |
* Changes to wPortStatus bit field in USB 3.0 |
98ba3d6c2 usb: hub: Add 3.0... |
254 |
* See USB 3.0 spec Table 10-10 |
6497c6670 USB: SS: Add supp... |
255 |
*/ |
55f4b5754 usb: fix: Fixing ... |
256 |
#define USB_SS_PORT_STAT_LINK_STATE 0x01e0 |
6497c6670 USB: SS: Add supp... |
257 258 |
#define USB_SS_PORT_STAT_POWER 0x0200 #define USB_SS_PORT_STAT_SPEED 0x1c00 |
55f4b5754 usb: fix: Fixing ... |
259 |
#define USB_SS_PORT_STAT_SPEED_5GBPS 0x0000 |
98ba3d6c2 usb: hub: Add 3.0... |
260 261 262 263 264 |
/* Bits that are the same from USB 2.0 */ #define USB_SS_PORT_STAT_MASK (USB_PORT_STAT_CONNECTION | \ USB_PORT_STAT_ENABLE | \ USB_PORT_STAT_OVERCURRENT | \ USB_PORT_STAT_RESET) |
012771d88 Initial revision |
265 266 267 268 269 270 271 |
/* wPortChange bits */ #define USB_PORT_STAT_C_CONNECTION 0x0001 #define USB_PORT_STAT_C_ENABLE 0x0002 #define USB_PORT_STAT_C_SUSPEND 0x0004 #define USB_PORT_STAT_C_OVERCURRENT 0x0008 #define USB_PORT_STAT_C_RESET 0x0010 |
6497c6670 USB: SS: Add supp... |
272 |
/* |
55f4b5754 usb: fix: Fixing ... |
273 274 |
* Changes to wPortChange bit fields in USB 3.0 * See USB 3.0 spec Table 10-12 |
6497c6670 USB: SS: Add supp... |
275 |
*/ |
55f4b5754 usb: fix: Fixing ... |
276 277 278 |
#define USB_SS_PORT_STAT_C_BH_RESET 0x0020 #define USB_SS_PORT_STAT_C_LINK_STATE 0x0040 #define USB_SS_PORT_STAT_C_CONFIG_ERROR 0x0080 |
6497c6670 USB: SS: Add supp... |
279 |
|
012771d88 Initial revision |
280 281 282 283 |
/* wHubCharacteristics (masks) */ #define HUB_CHAR_LPSM 0x0003 #define HUB_CHAR_COMPOUND 0x0004 #define HUB_CHAR_OCPM 0x0018 |
5624dfd5a usb: hub: Parse a... |
284 |
#define HUB_CHAR_TTTT 0x0060 /* TT Think Time mask */ |
012771d88 Initial revision |
285 286 |
/* |
605bd75af USB: Some cleanup... |
287 |
* Hub Status & Hub Change bit masks |
012771d88 Initial revision |
288 289 290 291 292 293 |
*/ #define HUB_STATUS_LOCAL_POWER 0x0001 #define HUB_STATUS_OVERCURRENT 0x0002 #define HUB_CHANGE_LOCAL_POWER 0x0001 #define HUB_CHANGE_OVERCURRENT 0x0002 |
5db439920 dm: usb: sandbox:... |
294 295 |
/* Mask for wIndex in get/set port feature */ #define USB_HUB_PORT_MASK 0xf |
bbc6f06c0 usb: hub: Support... |
296 297 |
/* Hub class request codes */ #define USB_REQ_SET_HUB_DEPTH 0x0c |
2e17c87eb dm: usb: Move USB... |
298 |
/* |
5624dfd5a usb: hub: Parse a... |
299 300 301 302 303 304 305 306 307 308 309 |
* As of USB 2.0, full/low speed devices are segregated into trees. * One type grows from USB 1.1 host controllers (OHCI, UHCI etc). * The other type grows from high speed hubs when they connect to * full/low speed devices using "Transaction Translators" (TTs). */ struct usb_tt { bool multi; /* true means one TT per port */ unsigned think_time; /* think time in ns */ }; /* |
2e17c87eb dm: usb: Move USB... |
310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 |
* CBI style */ #define US_CBI_ADSC 0 /* Command Block Wrapper */ struct umass_bbb_cbw { __u32 dCBWSignature; # define CBWSIGNATURE 0x43425355 __u32 dCBWTag; __u32 dCBWDataTransferLength; __u8 bCBWFlags; # define CBWFLAGS_OUT 0x00 # define CBWFLAGS_IN 0x80 # define CBWFLAGS_SBZ 0x7f __u8 bCBWLUN; __u8 bCDBLength; # define CBWCDBLENGTH 16 __u8 CBWCDB[CBWCDBLENGTH]; }; #define UMASS_BBB_CBW_SIZE 31 /* Command Status Wrapper */ struct umass_bbb_csw { __u32 dCSWSignature; # define CSWSIGNATURE 0x53425355 __u32 dCSWTag; __u32 dCSWDataResidue; __u8 bCSWStatus; # define CSWSTATUS_GOOD 0x0 # define CSWSTATUS_FAILED 0x1 # define CSWSTATUS_PHASE 0x2 }; #define UMASS_BBB_CSW_SIZE 13 /* * BULK only */ #define US_BBB_RESET 0xff #define US_BBB_GET_MAX_LUN 0xfe |
012771d88 Initial revision |
350 |
#endif /*_USB_DEFS_H_ */ |