`
`Feature selectors are used when enabling orsetting features, such as remote wakeup,specific to a device,
`interface, or endpoint. The values for the feature selectors are given in Table 9-6.
`
`Table 9-6. Standard Feature Selectors
`
`
`
`
`
`DEVICE_REMOTE_WAKEUP Device
`
`ENDPOINT_HALT
`
`Endpoint
`
`If an unsupported orinvalid request is made to a USB device, the device responds by returning STALLin
`the Data or Status stage of the request. If the device detects the error in the Setup stage, it is preferred that
`the device returns STALLat the earlier of the Data or Status stage. Receipt of an unsupported or invalid
`request does NOTcause the optional Halt feature on the contro! pipe to be set. If for any reason, the device
`becomes unable to communicate via its Default Control Pipe due to an error condition, the device must be
`reset to clear the condition and restart the Default Control Pipe.
`
`9.4.1 Clear Feature
`
`This request is used to clear or disable a specific feature.
`
` 00000000B
`
`00000001B
`00000010B
`
`CLEAR_FEATURE
`
`Feature
`Selector
`
`Zero
`Interface
`Endpoint
`
`Zero
`
`Feature selector values in w/a/ue must be appropriate to the recipient. Only device feature selector values
`may be used whentherecipientis a device, only interface feature selector values may be used whenthe
`recipient is an interface, and only endpoint feature selector values may be used whentherecipientis an
`endpoint.
`
`Refer to Table 9-6 for a definition of which feature selector values are defined for whichrecipients.
`
`A ClearFeature() request that references a feature that cannot be cleared, that does not exist, or that
`references an interface or endpoint that does not exist, will cause the device to respond with a Request
`Error.
`
`If wLength is non-zero, then the device behavioris not specified.
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not specified.
`
`Addressstate:
`
`This request is valid when the deviceis in the Address state; references to interfaces
`or to endpoints other than endpoint zero shall cause the device to respond with a
`Request Error.
`
`Configured state:|This request is valid when the deviceis in the Configuredstate.
`
`Note: The Test_Modefeature cannot be cleared by the ClearFeature() request.
`
`252
`
`ZTE/SAMSUNG 1008-0280
`ZTE/SAMSUNG 1008-0280
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`9.4.2 Get Configuration
`This request returns the current device configuration value,
`
`
`100000008~~|GET_CONFIGURATION pe|zw|ow Gantigination
`
`Value
`
`If the returned valueis zero, the device is not configured.
`
`If wValue, wIndex, or wLength are not as specified above, then the device behavioris not specified.
`
`Defaultstate:
`
`Device behavior whenthis request is received while the device is in the Default state
`is not specified.
`
`Addressstate:
`
`The value zero must be returned.
`
`Configured state:|The non-zero bConfigurationValue of the current configuration must be returned.
`
`9.4.3 Get Descriptor
`This request retums the specified descriptor if the descriptor exists.
`
`bmRequestType
`
`bRequest
`
`10000000B
`
`GET_DESCRIPTOR
`
`Section 9.6.7)
`
`windex
`
`Zero or
`Language ID
`(refer to
`
`Descriptor
`Type and
`Descriptor
`Index
`
`Data
`
`Descriptor
`
`Descriptor
`Length
`
`The wValue field specifies the descriptor type in the high byte (refer to Table 9-5) and the descriptor index
`in the low byte. The descriptor index is used to select a specific descriptor (only for configuration and
`string descriptors) when several descriptors of the same type are implemented in a device. For example,a
`device can implement several configuration descriptors. For other standard descriptors that can be retrieved
`via a GetDescriptor() request, a descriptor index of zero must be used. The range of values used for a
`descriptor index is from 0 to one less than the numberofdescriptors of that type implemented by the device.
`
`The w/ndex field specifies the Language ID for string descriptors or is reset to zero for other descriptors.
`The wLengthfield specifies the numberof bytes to return. If the descriptor is longer than the wLength field,
`only theinitial bytes of the descriptor are returned. If the descriptor is shorter than the wLength field, the
`device indicates the end of the control transfer by sending a short packet when further data is requested. A
`short packet is defined as a packet shorter than the maximum payloadsizeor a zero length data packet(refer
`to Chapter5).
`
`The standard request to a device supports three types of descriptors: device (also device_qualifier),
`configuration (also other_speed_configuration), and string. A high-speed capable device supports the
`device_qualifier descriptor to return information about the device for the speed at whichit is not operating
`(including wMaxPacketSize for the default endpoint and the numberofconfigurations for the other speed).
`The other_speed_configuration returns information in the same structure as a configuration descriptor, but
`for a configuration if the device were operating at the other speed. A request for a configuration descriptor
`returns the configuration descriptor, all interface descriptors, and endpoint descriptors for all of the
`
`253
`
`ZTE/SAMSUNG 1008-0281
`ZTE/SAMSUNG 1008-0281
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`interfaces in a single request. Thefirst interface descriptor follows the configuration descriptor. The
`endpoint descriptors for the first interface follow the first interface descriptor. If there are additional
`interfaces, their interface descriptor and endpoint descriptors follow the first interface’s endpoint
`descriptors. Class-specific and/or vendor-specific descriptors follow the standard descriptors they extend or
`modify.
`
`All devices must provide a device descriptor and at least one configuration descriptor. Ifa device does not
`support a requested descriptor, it responds with a Request Error.
`
`Default state:
`
`This is a valid request when the device is in the Default state.
`
`Addressstate:
`
`This is a valid request when the deviceis in the Addressstate.
`
`Configured state:
`
`This is a valid request when the deviceis in the Configuredstate.
`
`9.4.4 Get Interface
`
`This request returns the selected alternate setting for the specified interface.
`
`|bmRequestType||pRequest||wWalue
`
`wLength|ata 10000001B
`
`GET_INTERFACE
`
`Zero
`
`Interface
`
`Alternate
`Setting
`
`Some USBdevices have configurations with interfaces that have mutually exclusive settings. This request
`allows the host to determine the currently selected alternate setting.
`
`If wValue or wLength are not as specified above, then the device behavioris not specified.
`
`If the interface specified does not exist, then the device responds with a Request Error.
`
`Default state:
`
`Device behavior whenthis request is received while the device is in the Default state
`is not specified.
`
`Addressstate:
`
`A Request Error responseis given by the device.
`
`Configured state:
`
`This is a valid request when the device is in the Configuredstate.
`
`9.4.5 Get Status
`
`This request returns status for the specified recipient.
`
` 10000000B
`
`GET_STATUS
`
`zero
`
`10000001B
`10000010B
`
`Zero
`Interface
`Endpoint
`
`Device,
`Interface, or
`Endpoint
`Status
`
`The Recipient bits ofthe bmRequestType field specify the desired recipient. The data returnedis the current
`status of the specified recipient.
`
`254
`
`ZTE/SAMSUNG 1008-0282
`ZTE/SAMSUNG 1008-0282
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`If wValue or wLength are not as specified above, or if w/ndex is non-zero for a device status request, then
`the behaviorof the device is not specified.
`
`If an interface or an endpointis specified that does not exist, then the device responds with a Request Error.
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not specified.
`
`Addressstate:
`
`If an interface or an endpoint other than endpoint zero is specified, then the device
`responds with a Request Error.
`
`Configured state:
`
`‘If an interface or endpoint that does not exist is specified, then the device responds
`with a RequestError.
`
`A GetStatus() request to a device returns the information shownin Figure 9-4.
`
`
`
`Reserved (Resetto zero)
`
`Remote
`Wakeup
`
`Self
`Powered
`
`Reserved (Reset to zero)
`
`Figure 9-4, Information Returned by a GetStatus() Request to a Device
`
`The Se/fPoweredfield indicates whether the device is currently self-powered. If DO is reset to zero, the
`device is bus-powered. If D0is set to one, the device is self-powered. The Se/fPowered field may not be
`changed by the SetFeature() or ClearFeature() requests.
`
`The Remote Wakeup field indicates whether the device is currently enabled to request remote wakeup. The
`default mode for devices that support remote wakeupis disabled. If D1 is reset to zero, the ability of the
`device to signal remote wakeupis disabled. If D1 is set to one, the ability of the device to signal remote
`wakeupis enabled. The Remote Wakeup field can be modified by the SetFeature() and ClearFeature()
`requests using the DEVICEREMOTE_WAKEUPfeature selector. This field is reset to zero when the
`device is reset.
`
`A GetStatus() request to an interface returns the information shownin Figure 9-5.
`
`aeae
`
`
`
`Reserved (Resetto zero)
`
`Reserved (Resetto zero)
`
`Figure 9-5. Information Returned by a GetStatus() Request to an Interface
`
`255
`
`ZTE/SAMSUNG 1008-0283
`ZTE/SAMSUNG 1008-0283
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`A GetStatus() request to an endpoint returns the information shownin Figure 9-6.
`
`Reserved (Resetto zero) ee|PeeeeEe
`
`Reserved (Resetto zero)
`
`Figure 9-6. Information Returned by a GetStatus() Request to an Endpoint
`
`The Halt feature is required to be implementedforall interrupt and bulk endpoint types. Ifthe endpointis
`currently halted, then the Halt feature is set to one. Otherwise, the Halt feature is reset to zero. The Halt
`feature may optionally be set with the SetFeatureeENDPOINT_HALT) request. Whenset by the
`SetFeature() request, the endpoint exhibits the samestall behavioras if the field had been set by a hardware
`condition. Jf the condition causing a halt has been removed, clearing the Halt feature via a
`ClearFeature(ENDPOINT_HALT)request results in the endpoint no longer returning a STALL. For
`endpoints using data toggle, regardless of whether an endpoint has the Halt featureset, a
`ClearFeature(ENDPOINT_HALT)request alwaysresults in the data toggle beingreinitialized to DATAO.
`The Halt feature is reset to zero after either a SetConfiguration() or SetInterface() request even if the
`requested configuration or interface is the same as the current configuration or interface.
`
`It is neither required nor recommendedthat the Ha/t feature be implemented for the Default Control] Pipe.
`However, devices may set the Halt feature ofthe Default Control Pipein order to reflect a functional error
`condition. If the feature is set to one, the device will return STALLin the Data and Status stages of each
`standard request to the pipe except GetStatus(), SetFeature(), and ClearFeature() requests. The device need
`not return STALLfor class-specific and vendor-specific requests.
`
`9.4.6 Set Address
`
`This request sets the device address for all future device accesses.
`
`wValue|windex|wLength 00000000B
`
`Device
`Address
`
`Zero
`
`Zero
`
`bmRequestType
`
`bRequest
`
`SET_ADDRESS
`
`The wValue field specifies the device addressto use for all subsequent accesses.
`
`As noted elsewhere, requests actually may result in up to three stages. In thefirst stage, the Setup packetis
`sent to the device. In the optional second stage, data is transferred between the host and the device.
`In the
`final stage, status is transferred between the host and the device. The direction of data and status transfer
`depends on whetherthe host is sending data to the device or the device is sending data to the host. The
`Status stage transfer is always in the opposite direction of the Data stage. If there is no Data stage, the
`Status stage is from the device to the host.
`
`Stages after the initial Setup packet assume the same device address as the Setup packet. The USB device
`does not changeits device address until after the Status stage of this request is completed successfully. Note
`that this is a difference between this request and all other requests. For all other requests, the operation
`indicated must be completed before the Status stage.
`
`If the specified device address is greater than 127, or if windex or wLength are non-zero, then the behavior
`of the device is not specified.
`
`256
`
`ZTE/SAMSUNG 1008-0284
`ZTE/SAMSUNG 1008-0284
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Device response to SetAddress() with a value of 0 is undefined.
`
`Default state:
`
`If the address specified is non-zero, then the device shall enter the Addressstate;
`otherwise, the device remains in the Default state (this is not an error condition).
`
`Addressstate:
`
`If the address specified is zero, then the device shall enter the Default state;
`otherwise, the device remains in the Addressstate but uses the newly-specified
`address.
`
`Configured state:©Device behavior whenthis request is received while the device is in the Configured
`state is not specified.
`
`9.4.7 Set Configuration
`This request sets the device configuration.
`
` 00000000B
`
`SET_CONFIGURATION|Configuration Value
`
`The lower byte of the w Value field specifies the desired configuration. This configuration value must be
`zero or match a configuration value from a configuration descriptor. If the configuration value is zero, the
`device is placedin its Address state. The upper byte of the w Value field is reserved.
`
`If windex, wLength, or the upper byte of w Value is non-zero, then the behavior of this request is not
`specified.
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not specified.
`
`Addressstate:
`
`If the specified configuration value is zero, then the device remains in the Address
`state. If the specified configuration value matches the configuration value from a
`configuration descriptor, then that configuration is selected and the device enters the
`Configured state. Otherwise, the device responds with a Request Error.
`
`Configured state:_If the specified configuration valueis zero, then the device enters the Addressstate.
`If the specified configuration value matches the configuration value from a
`configuration descriptor, then that configuration is selected and the device remainsin
`the Configured state. Otherwise, the device responds with a Request Error.
`
`9.4.8 Set Descriptor
`This requestis optional and may be used to update existing descriptors or new descriptors may be added.
`
`Descriptor
`Language ID
`Descriptor
`Length
`(refer to
`Type and
`Descriptor|Section 9.6.7)
`Index
`
`00000000B
`
`SET_DESCRIPTOR
`
`or zero
`
`Descriptor
`
`257
`
`ZTE/SAMSUNG 1008-0285
`ZTE/SAMSUNG 1008-0285
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`The wValue field specifies the descriptor type in the high byte (refer to Table 9-5) and the descriptor index
`in the low byte. The descriptor index is used to select a specific descriptor (only for configuration and string
`descriptors) when several descriptors ofthe same type are implemented in a device. For example, a device
`can implement several configuration descriptors. For other standard descriptors that can be set via a
`SetDescriptor() request, a descriptor index of zero must be used. The range of values used for a descriptor
`index is from 0 to one Jess than the numberof descriptors of that type implemented by the device.
`
`The windex field specifies the Language ID forstring descriptors or is reset to zero for other descriptors.
`The wLength field specifies the numberof bytes to transfer from the host to the device.
`
`The only allowed values for descriptor type are device, configuration, and string descriptor types.
`
`If this request is not supported, the device will respond with a Request Error.
`
`Default state:
`
`Device behavior when this request is received while the deviceis in the Default state
`is not specified.
`
`Addressstate:
`
`If supported, this is a valid request when the deviceis in the Address state.
`
`Configured state:_If supported, this is a valid request when the deviceis in the Configured state.
`
`9.4.9 Set Feature
`
`This requestis used to set or enable a specific feature.
`
`
`
`00000000B
`00000001B
`00000010B
`
`SET_FEATURE
`
`Feature
`Selector
`
`Test Selector
`
`Zero
`
`Zero
`Interface
`Endpoint
`
`Feature selector values in wVa/ue must be appropriate to the recipient. Only device feature selector values
`may be used whentherecipientis a device; only interface feature selector values may be used when the
`recipient is an interface, and only endpoint feature selector values may be used whenthe recipient is an
`endpoint.
`
`Refer to Table 9-6 for a definition of which feature selector values are defined for whichrecipients.
`
`The TEST_MODEfeature is only defined for a devicerecipient (i.e., bnRequestType = 0) and the lower
`byte of wIndex must be zero. Setting the TEST_MODEfeature puts the device upstream facing port into
`test mode. The device will respond with a requesterror if the request contains an invalid test selector. The
`transition to test mode must be complete no later than 3 msafter the completion ofthe status stage of the
`request. The transition to test mode of an upstream facing port must not happen until after the status stage
`ofthe request. The powerto the device must be cycled to exit test mode of an upstream facing port of a
`device. See Section 7.1.20 for definitions of each test mode. A device must support the TESTMODE
`feature whenin the Default, Address or Configured high-speed devicestates.
`
`A SetFeature() request that references a feature that cannot beset or that does not exist causes a STALLto
`be returned in the Status stage of the request.
`
`258
`
`ZTE/SAMSUNG 1008-0286
`ZTE/SAMSUNG 1008-0286
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Table 9-7. Test Mode Selectors
`
`OOH
`
`01H
`
`Reserved
`
`Test_J
`
`
`
`3H0 Test_SEO_NAK
`
`Reserved for vendor-specific test modes.
`
`04H
`
`05H
`
`Test_Packet
`
`Test_Force_Enable
`
`O6H-3FH
`
`Reserved for standard test selectors
`
`3FH-BFH
`
`Reserved
`
`COH-FFH
`
`If the feature selector is TESTMODE,then the mostsignificant byte of wJndex is used to specify the
`specific test mode. The recipient of a SetFeature(TEST_MODE...) must be the device; i.e., the lower byte
`of w/ndex must be zero and the bmRequesitType must be set to zero. The device must have its power cycled
`to exit test mode. The valid test mode selectors are listed in Table 9-7. See Section 7.1.20 for more
`information about the specific test modes.
`
`If wLength is non-zero, then the behavior of the deviceis not specified.
`
`If an endpointor interface is specified that does not exist, then the device responds with a RequestError.
`
`Default state:
`
`A device mustbe able to accept a SetFeature(TEST_MODE, TEST_SELECTOR)
`request when in the Default State. Device behavior for other SetFeature requests
`while the device is in the Default state is not specified.
`
`Addressstate:
`
`If an interface or an endpoint other than endpoint zero is specified, then the device
`responds with a Request Error.
`
`Configured state:
`
`This is a valid request when the device is in the Configuredstate.
`
`9.4.10 Set Interface
`
`This request allows the host to select an alternate setting for the specified interface.
`
`bmRequestType
`
`bRequest
`
`wValue|windex|wLength 00000001B
`
`SET_INTERFACE
`
`Alternate
`Setting
`
`Interface
`
`Some USB devices have configurations with interfaces that have mutually exclusive settings. This request
`allowsthe host to select the desired alternate setting. If a device only supports a default setting for the
`specified interface, then a STALL maybe returnedin the Status stage ofthe request. This request cannot be
`used to changethe set of configured interfaces (the SetConfiguration() request must be used instead).
`
`If the interface or the alternate setting does not exist, then the device responds with a Request Error. If
`wLength is non-zero, then the behavior of the device is not specified.
`
`259
`
`ZTE/SAMSUNG 1008-0287
`ZTE/SAMSUNG 1008-0287
`IPR2018-00110
`IPR2018-00110
`
`
`
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Defaultstate:
`
`Device behavior whenthis request is received while the deviceis in the Default state
`is not specified.
`
`Addressstate:
`
`The device must respond with a Request Error.
`
`Configured state:
`
`This is a valid request when the device is in the Configuredstate.
`
`9.4.11 Synch Frame
`This requestis used to set and then report an endpoint’s synchronization frame.
`
`
`
`
`10000010B
`
`SYNCH_FRAME
`
`zero
`
`
`
`Two
`
`Frame
`Number
`
`
`
`When an endpoint supports isochronoustransfers, the endpoint may also require per-frame transfers to vary
`in size according to a specific pattern. The host and the endpoint must agree on which framethe repeating
`pattern begins. The numberof the frame in which the pattern began is returned to the host.
`
`If a high-speed device supports the Synch Framerequest, it must internally synchronizeitself to the zeroth
`microframe and have a time notion ofclassic frame. Only the frame number is used to synchronize and
`reported by the device endpoint (i.e., no microframe number). The endpoint must synchronize to the zeroth
`microframe.
`
`This value is only used for isochronous data transfers using implicit pattern synchronization. IfwValue is
`non-zero or wLength is not two, then the behavior of the device is notspecified.
`
`If the specified endpoint does not support this request, then the device will respond with a Request Error.
`
`Default state:
`
`Device behavior whenthis request is received while the deviceis in the Default state
`is not specified.
`
`Addressstate:
`
`The device shall respond with a Request Error.
`
`Configured state:
`
`This is a valid request when the deviceis in the Configuredstate.
`
`9.5 Descriptors
`USBdevicesreport their attributes using descriptors. A descriptor is a data structure with a defined format.
`Each descriptor begins with a byte-wide field that contains the total numberof bytes in the descriptor
`followed by a byte-wide field that identifies the descriptor type.
`
`Using descriptors allows concise storage of the attributes ofindividual configurations because each
`configuration may reuse descriptors or portions of descriptors from other configurations that have the same
`characteristics.
`In this manner, the descriptors resemble individual data records in a relational database.
`
`Where appropriate, descriptors contain referencesto string descriptors that provide displayable information
`describing a descriptor in human-readable form. Theinclusion ofstring descriptors is optional. However,
`the reference fields within descriptors are mandatory. If a device does not support string descriptors, string
`reference fields must bereset to zero to indicate no string descriptor is available.
`
`If a descriptor returns with a valuein its length field that is less than defined by this specification, the
`descriptor is invalid and should be rejected by the host. If the descriptor returns with a value in its length
`
`260
`
`ZTE/SAMSUNG 1008-0288
`ZTE/SAMSUNG 1008-0288
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`field that is greater than defined by this specification, the extra bytes are ignored by the host, but the next
`descriptor is located using the length returned rather than the length expected.
`
`A device may return class- or vendor-specific descriptors in two ways:
`
`1.
`
`2.
`
`Ifthe class or vendor specific descriptors use the same formatas standard descriptors(e.g., start with a
`length byte and followed by a type byte), they must be returned interleaved with standard descriptors in
`the configuration information returned by a GetDescriptor(Configuration) request.
`In this case, the
`class or vendor-specific descriptors must follow a related standard descriptor they modify or extend.
`
`Ifthe class or vendor specific descriptors are independent of configuration information or use a non-
`standard format, a GetDescriptor() request specifying the class or vendor specific descriptor type and
`index may be used toretrieve the descriptor from the device. A class or vendorspecification will
`define the appropriate wayto retrieve these descriptors.
`
`9.6 Standard USB Descriptor Definitions
`The standard descriptors defined in this specification may only be modified or extended by revision of the
`Universal Serial Bus Specification.
`
`Note: An extension to the USB 1.0 standard endpoint descriptor has been published in Device Class
`Specification for Audio Devices Revision 1.0. This is the only extension defined outside USB Specification
`that is allowed. Future revisions of the USB Specification that extend the standard endpoint descriptor will
`do so as to not conflict with the extension defined in the Audio Device Class Specification Revision 1.0.
`
`9.6.1 Device
`
`It includes information that applies
`A device descriptor describes general information about a USB device.
`globally to the device and all of the device’s configurations. A USB device has only one device descriptor.
`
`A high-speed capable device that has different device information for full-speed and high-speed must also
`have a device_qualifier descriptor (see Section 9.6.2).
`
`The DEVICEdescriptor of a high-speed capable device has a version numberof 2.0 (0200H). If the device
`is full-speed only or low-speed only,this version numberindicates that it will respond correctly to a request
`for the device_qualifier desciptor(i.e., it will respond with a requesterror).
`
`The bcdUSBfield contains a BCD version number. The value of the bedUSBfield is OxJJMN for version
`JJ.M.N (JJ — major version number, M — minor version number, N — sub-minor version number),e.g.,
`version 2.1.3 is represented with value 0x0213 and version 2.0 is represented with a value of 0x0200.
`
`The bNumConfigurations field indicates the number of configurations at the current operating speed.
`Configurations for the other operating speed are not included in the count. Ifthere are specific
`configurations ofthe device for specific speeds, the bNumConfigurations field only reflects the number of
`configurations for a single speed, not the total number of configurations for both speeds.
`
`If the device is operating at high-speed, the bMaxPacketSize0 field must be 64 indicating a 64 byte
`maximum packet. High-speed operation does not allow other maximum packetsizes for the control
`endpoint (endpoint0).
`
`All USB devices have a Default Control Pipe. The maximum packet size of a device’s Default Control Pipe
`is described in the device descriptor. Endpoints specific to a configuration and its interface(s) are described
`in the configuration descriptor. A configuration andits interface(s) do not include an endpoint descriptor
`for the Default Control Pipe. Other than the maximum packetsize, the characteristics of the Default
`Control Pipe are defined by this specification and are the samefor all USB devices.
`
`The bNumConfigurations field identifies the numberof configurations the device supports. Table 9-8 shows
`the standard device descriptor.
`
`261
`
`ZTE/SAMSUNG 1008-0289
`ZTE/SAMSUNG 1008-0289
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Table 9-8. Standard Device Descriptor
`
`Description
`
`
`
`the USB-IF.
`
`
`
`
`
`
`NumberbLength Size of this descriptor in bytes
`
`bDescriptorType
`
`bedUSB
`
`bDeviceClass
`
`bDevice SubClass
`
`
`
`Constant
`
`DEVICE Descriptor Type
`
`USB Specification Release Number in
`Binary-Coded Decimal (i.¢., 2.10 is 210H),.
`This field identifies the release of the USB
`
`Specification with which the device andits
`descriptors are compliant.
`
`Class code (assigned by the USB-IF).
`
`If this field is reset to zero, each interface
`within a configuration specifies its own
`class information and the various
`
`interfaces operate independently.
`
`If this field is set to a value between 1 and
`
`FEH, the device supports different class
`specifications on different interfaces and
`the interfaces may not operate
`independently. This value identifies the
`class definition used for the aggregate
`interfaces.
`
`If this field is set to FFH, the device class
`is vendor-specific.
`
`SubClass
`
`Subclass code (assigned by the USB-IF).
`
`These codes are qualified by the value of
`the bDeviceClassfield.
`
`If the bDeviceClass field is reset to zero,
`this field must also be reset to zero.
`
`If the bDeviceClassfield is not set to FFH,
`all values are reserved for assignment by
`
`262
`
`ZTE/SAMSUNG 1008-0290
`ZTE/SAMSUNG 1008-0290
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Table 9-8. Standard Device Descriptor (Continued)
`
`Value
`
`Protocol
`
`Description
`
`Protocol code (assigned by the USB-IF).
`These codes are qualified by the value of
`the bDeviceClass and the
`bDeviceSubClassfields.
`
`If a device
`
`supports class-specific protocols on a
`device basis as opposed to an interface
`basis, this code identifies the protocols
`that the device uses as defined by the
`specification of the device class.
`
`If this field is reset to zero, the device
`does not use class-specific protocols on a
`device basis. However, it may use class-
`specific protocols on an interface basis.
`
`If this field is set to FFH, the device uses a
`vendor-specific protocol on a device basis.
`
`bMaxPacketSizeo
`
`Number
`
`Maximum packet size for endpoint zero
`(only 8, 16, 32, or 64 are valid)
`
`Vendor ID (assigned by the USB-IF)
`idVendor
`
`
`idProduct
`
`bedDevice
`
`iManufacturer
`
`iProduct
`
`iSerialNumber
`
`Product ID (assigned by the manufacturer)
`
`
`Device release numberin binary-coded
`decimal
`
`1
`
`1
`
`4
`
`Index
`
`Index
`
`Index of string descriptor describing
`manufacturer
`
`Index of string descriptor describing
`product
`
`Index of string descriptor describing the
`device’s serial number
`
`
`
`
`bNumConfigurations|4|Number|Numberof possible configurations
`
`263
`
`ZTE/SAMSUNG 1008-0291
`ZTE/SAMSUNG 1008-0291
`IPR2018-00110
`IPR2018-00110
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`9.6.2 Device_Qualifier
`The device_qualifier descriptor describes information about a high-speed capable device that would
`changeif the device were operating at the other speed. For example, if the device is currently operating
`at full-speed, the device_qualifier returns information about how it would operate at high-speed and
`vice-versa. Table 9-9 showsthe fields of the device_qualifier descriptor.
`
`Table 9-9, Device_Qualifier Descriptor
`
`
`
`bLength Number|Size of descriptor
`
`
`
`bDescriptorType Constant|Device Qualifier Type
`
`
`
`Reserved for future use, must be zero
`
`
`
`bedUSB
`
`USB specification version number(e.g.,
`BCD
`0200H for V2.00 )
`
`bDeviceClass
`
`Class Code
`
`
`
`bDevice SubClass SubClass|SubClass Code
`
`bDeviceProtocol
`
`Protocol
`
`Protocol Code
`
`
`
`bMaxPacketSize0 Number|Maximum packetsize for other speed
`
`
`
`bNumConfigurations Number|Number of Other-speed Configurations
`
`bReserved
`
`Zero
`
`The vendor, product, device, manufacturer, product, and serialnumberfields of the standard device
`descriptor are not included in this descriptor since that information is constant for a device for all supported
`speeds. The version numberfor this descriptor must be at least 2.0 (0200H).
`
`The host accesses this descriptor using the GetDescriptor() request. The descriptor type in the
`GetDescriptor() request is set to device_qualifier (see Table 9-5).
`
`If a full-speed only device (with a device descriptor version number equal to 0200H)receives a
`GetDescriptor() request for a device_qualifier, it must respond with a request error. The host must not make
`a request for an other_speed_configuration descriptor unlessit first successfully retrieves the
`device_qualifier descriptor.
`
`9.6.3 Configuration
`The configuration descriptor describes information abouta specific device configuration. The descriptor
`contains a bConfigurationValue field with a value that, when used as a parameterto the SetConfiguration()
`request, causes the device to assume the described configuration.
`
`The descriptor describes the numberofinterfaces provided by the configuration. Each interface may
`operate independently. For example, an ISDN device might be configured with two interfaces, each
`providing 64 Kb/s bi-directional channels that have separate data sources or sinks on the host. Another
`configuration might present the ISDN deviceas a single interface, bonding the two channels into one
`128 Kb/s bi-directional channel.
`
`Whenthe host requests the configuration descriptor, all related interface and endpoint descriptors are
`returned (refer to Section 9.4.3).
`
`264
`
`ZTE/SAMSUNG 1008-0292