`
`Feature selectors are used when enabling or setting 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
`
`
`
`D EVI GENREMOT E_WA KEUP Device
`
`
`
`EN DPOINT_HALT
`
`Endpoint
`
`If an unsupported or invalid request is made to a USB device, the device responds by retuming STALL in
`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 STALL at the earlier of the Data or Status stage. Receipt of an unsupported or invalid
`request does NOT cause the Optional Hair feature on the control 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.
`
` 000000008
`
`Zero
`Interface
`Endpoint
`
`Zero
`
`00000001 B
`0000001 OB
`
`CLEAR_FEATURE
`
`Feature
`Selector
`
`Feature selector values in w Vahte must be appropriate to the recipient. Only device feature selector values
`may be used when the recipient is 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 when the recipient is an
`endpoint.
`
`Refer to Table 9-6 for a definition ofwhich feature selector values are defined for which recipients.
`
`A ClearFeatureO 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 behavior is not specified.
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not Specified.
`
`Address state:
`
`This request is valid when the device is 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 device is in the Configured state.
`
`Note: The Test_Mode feature cannot be cleared by the ClearFeatureO request.
`
`252
`
`ZTE/SAMSUNG 1008-0280
`ZTE/SAMSUNG 1008-0280
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`9.4.2 Get Configuration
`
`This request returns the current device configuration value.
`
`
`100000000
`00000000000000” 00000000.n
`
`Value
`
`If the returned value is zero, the device is not configured.
`
`If iirVaIue, windex, or wLength are not as specified above, then the device behavior is not specified.
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not specified.
`
`Address state:
`
`The value zero must be returned.
`
`Configured state:
`
`The non-zero bConfigumrionVaiue of the current configuration must be returned.
`
`9.4.3 Get Descriptor
`
`This request returns the specified descriptor if the descriptor exists.
`
`but Req uestTy pa
`
`bReq ue st
`
`100000008
`
`GET_DESCR|PTOR
`
`Section 9.6.7)
`
`Descriptor
`Type and
`Descriptor
`Index
`
`Zero or
`Language ID
`{refer to
`
`Descriptor
`Length
`
`Data
`
`Descriptor
`
`The wVat’ue 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 GetDescriptorO 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 number of descriptors of that type implemented by the device.
`
`The windex field specifies the Language ID for string descriptors or is reset to zero for other descriptors.
`The wLength field specifies the number of bytes to return. If the descriptor is longer than the wLengrh field,
`only the initial bytes of the descriptor are returned. If the descriptor is shorter than the wiles-gm 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 payload size or a zero length data packet (refer
`to Chapter 5).
`
`The standard request to a device supports three types of descriptors: device (also device_qualifier),
`configuration {also 0ther_speed_configuration), and string. A hi gh-speed capable device supports the
`device__qualifier descriptor to return information about the device for the speed at which it is not operating
`(including wMaxPacket-S'ize for the default endpoint and the number of configurations 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
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`interfaces in a single request. The first 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 andr’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. If a 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.
`
`Address state:
`
`This is a valid request when the device is in the Address state.
`
`Configured state:
`
`This is a valid request when the device is in the Configured state.
`
`9.4.4 Get interface
`
`This request returns the selected alternate setting for the specified interface.
`
` 10000001 B
`
`GET_I NTERFACE
`
`Zero
`
`interface
`
`Alternate
`Setting
`
`Some USB devices have configurations with interfaces that have mutually exclusive settings. This request
`allows the host to determine the currently selected alternate setting.
`
`If wValue or wLengrh are not as specified above, then the device behavior is not specified.
`
`If the interface specified 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.
`
`Address state:
`
`A Request Error response is given by the device.
`
`Configured state:
`
`This is a valid request when the device is in the Configured state.
`
`9.4.5 Get Status
`
`This request returns status for the specified recipient.
`
` 100000003
`
`Zero
`Interface
`Endpoint
`
`Device
`Interface, or
`Endpoint
`Status
`
`GET_STATUS
`
`Zero
`
`10000001 B
`1000001 DB
`
`The Recipient bits of the meequesrType field specify the desired recipient. The data returned is the current
`status of the specified recipient.
`
`254
`
`ZTE/SAMSUNG 1008-0282
`ZTE/SAMSUNG 1008-0282
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`If w Value or wLengrh are not as specified above, or if winder is non-zero for a device status request, then
`the behavior ofthe device is not specified.
`
`If an interface or an endpoint is 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.
`
`Address state:
`
`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 Request Error.
`
`A GetStatus() request to a device returns the information shown in Figure 9-4.
`
`“unmann-
`
`Reserved (Reset to zero)
`
`Remote
`Wakeup
`
`Self
`Powered
`
`
`
`Reserved (Reset to zero}
`
`Figure 9-4. Information Returned by a GetStatus() Request to 3 Device
`
`The SetfPowered field indicates whether the device is currently self-powered. If D0 is reset to zero, the
`device is bus-powered. If D0 is set to one, the device is self-powered. The SeifPower-ed field may not be
`changed by the SetFeatureO or ClearFeatureO requests.
`
`The Remote Wakeup field indicates whether the device is currently enabled to request remote wakeup. The
`default mode for devices that support remote wakeup is disabled. If D1 is reset to zero, the ability of the
`device to signal remote wakeup is disabled. If D1 is set to one, the ability ofthe device to signal remote
`wakeup is enabled. The Remote Wakeup field can be modified by the SetFeatureO and CIearFeatureO
`requests using the DEVICE_REMOTE_WAKEUP feature selector. This field is reset to zero when the
`device is reset.
`
`A GetStatus() request to an interface returns the information shoWn in Figure 9-5.
`
`Inn-unnum-
`
`
`
`Reserved (Reset to zero)
`
`Reserved (Reset to zero}
`
`Figure 9-5. Information Returned by a GetStatus() Request to an Interface
`
`255
`
`ZTE/SAMSUNG 1008-0283
`ZTE/SAMSUNG 1008-0283
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`A GetStatusO request to an endpoint returns the information shown in Figure 9-6.
`
`
`
`
`“nun-mun
`
`
`
`nun-nun“
`
`
`
`Reserved (Reset to zero]
`
`Reserved (Reset to zero)
`
`Figure 9-6. Information Returned by a GetStatusO Request to an Endpoint
`
`The Hat! feature is required to be implemented for all interrupt and bulk endpoint types. If the endpoint is
`currently halted, then the Halt feature is set to one. Otherwise, the Hat! feature is reset to zero. The Ha}!
`feature may Optionally be set with the SetFeature{ENDPOINT_HALT) request. When set by the
`SetFeature(} request, the endpoint exhibits the same stall behavior as if the field had been set by a hardware
`condition. If the condition causing a halt has been removed, clearing the Hat: 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 feature set, a
`ClearFeature(ENDPOINT_HALT) request always results in the data toggle being reinitialized to DATAO.
`The Hair feature is reset to zero after either a SetConfigurationO or SetInterface(} request even if the
`requested configuration or interface is the same as the current configuration or interface.
`
`It is neither required nor recommended that the Holt feature be implemented for the Default Control Pipe.
`However, devices may set the Hair feature of the Default Control Pipe in order to reflect a functional error
`condition. If the feature is set to one, the device will return STALL in the Data and Status stages of each
`Standard request to the pipe except GetStatusU, SetFeature(}, and ClearFeatureU requests. The device need
`not return STALL for class~specific and vendor-specific requests.
`
`9.4.6 Set Address
`
`This request sets the device address for all future device accesses.
`
`bm Req uestTy pe
`
`b Request
`
`The wVaIue field specifies the device address to use for all subsequent accesses.
`
`As noted elsewhere, requests actually may result in up to three stages. In the first stage, the Setup packet is
`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 whether the hest 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 change its 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 winder or wLength are non-zero, then the behavior
`cfthe device is not specified.
`
`256
`
`ZTE/SAMSUNG 1008-0284
`ZTE/SAMSUNG 1008-0284
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`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 Address state;
`otherwise, the device remains in the Default state (this is not an error condition).
`
`Address state:
`
`lfthe address specified is zero, then the device shall enter the Default state;
`otherwise, the device remains in the Address state but uses the newly-specified
`address.
`
`Configured state:
`
`Device behavior when this 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.
`
` 000000003
`
`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 placed in its Address state. The upper byte ofthe wl’alue field is reserved.
`
`If windex, wLength, or the upper byte of w Vaiue 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.
`
`Address state:
`
`lfthe 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 value is zero, then the device enters the Address state.
`If the specified configuration value matches the configuration value from a
`configuration descriptor, then that configuration is selected and the device remains in
`the Configured state. Otherwise, the device responds with a Request Error.
`
`9.4.8 Set Descriptor
`
`This request is optional and may be used to update existing descriptors or new descriptors may be added.
`
`or zero
`
`000000003
`
`SET_DESCR| PTOR
`
`Descriptor
`Type and
`Descriptor
`Index
`
`Language ID
`(refer to
`Section 9.8.?)
`
`Descriptor
`Length
`
`Descriptor
`
`257
`
`ZTE/SAMSUNG 1008-0285
`ZTE/SAMSUNG 1008—0285
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`The w Value 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 set via a
`SetDescriptorO request, a descriptor index of zero must be used. The range of values used for a deseriptor
`index is from 0 to one less than the number of descriptors of that type implemented by the device.
`
`The windex field specifies the Language ID for string descriptors or is reset to zero for other descriptors.
`The wLength field specifies the number of bytes to transfer from the host to the device.
`
`The only allowed values for descriptor type are device, configuration, and string descriptor types.
`
`[fthis request is not supported, the device will respond with a Request Error.
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not specified.
`
`Address state:
`
`Ifsupported, this is a valid request when the device is in the Address state.
`
`Configured state:
`
`Ifsupported, this is a valid request when the device is in the Configured state.
`
`9.4.9 Set Feature
`
`This request is used to set or enable a specific feature.
`
`
`
`Zero
`
`Zero
`Interface
`Endpoint
`
`00000 0003
`00000001 B
`0000001 OB
`
`SETflF EATU RE
`
`Test Selector
`
`Feature selector values in wVahre must be appropriate to the recipient. Only device feature selector values
`may be used when the recipient is 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 when the recipient is an
`endpoint.
`
`Refer to Table 9-6 for a definition of which feature selector values are defined for which recipients.
`
`The TEST_MODE feature is only defined for a device recipient {i.e., meequestType = 0) and the lower
`byte of wIndex must be zero. Setting the TEST_MODE feature puts the device upstream facing port into
`test mode. The device will respond with a request error ifthe request contains an invalid test selector. The
`transition to test mode must be complete no later than 3 ms after the completion of the status stage of the
`request. The transition to test mode of an upstream facing port must not happen until after the status stage
`of the request. The power to the device must be cycled to exit test mode of an upstream facing port of a
`device. See Section 7.1.20 for definitions ofeach test mode. A device must support the TEST_MODE
`feature when in the Default, Address or Configured high~speed device states.
`
`A SetFeatureO request that references a feature that cannot be set or that does not exist causes a STALL to
`be returned in the Status stage of the request.
`
`258
`
`ZTE/SAMSUNG 1008-0286
`ZTE/SAMSUNG 1008-0286
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Table 9-7. Test Mode Selectors
`
`00H
`
`01 H
`
`Reserved
`
`
`Test_J
`
`GLl) I
`TesthEOmNAK
`
`O.p. I
`
`05H
`
`Test_Packet
`
`Test_Force_Enable
`
`06H—3FH
`
`Reserved for standard test selectors
`
`
`
`CUHvFFH
`
`Reserved for vendor-specific test modes.
`
`If the feature selector is TEST_MODE, then the most significant byte of winds); 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 windex must be zero and the meequestType 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-?. See Section 7.1.20 for more
`
`information about the specific test modes.
`
`If wLengrh is non-zero, then the behavior of the device is not specified.
`
`If an endpoint or interface is specified that does not exist, then the device responds with a Request Error.
`
`Default state:
`
`A device must be 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.
`
`Address state:
`
`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 Configured state.
`
`9.4.10 Set Interface
`
`This request allows the host to select an alternate setting for the specified interface.
`
`meequestType
`
`SET_| NTERFACE
`
`wLength 00000001 B
`
`wValue
`
`Alternate
`Setting
`
`interface
`
`Zero
`
`Some USB devices have configurations with interfaces that have mutually exclusive settings. This request
`allows the host to select the desired alternate setting. Ifa device only supports a default setting for the
`specified interface, then a STALL may be returned in the Status stage of the request. This request cannot be
`used to change the set of configured interfaces (the SetConfigurationO request must be used instead).
`
`If the interface or the alternate setting does not exist, then the device responds with a Request Error. If
`wLengIh is non-zero, then the behavior of the device is not specified.
`
`259
`
`ZTE/SAMSUNG 1008-0287
`ZTE/SAMSUNG 1008—0287
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not specified.
`
`Address state:
`
`The device must respond with a Request Error.
`
`Configured state:
`
`This is a valid request when the device is in the Configured state.
`
`9.4.11 Synch Frame
`
`This request is used to set and then report an endpoint’s synchronization frame.
`
`meequestType
`
`wLength “
`
`bRequest
`
`When an endpoint supports isochronous transfers, 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 frame the repeating
`pattern begins. The number of the frame in which the pattern began is returned to the host.
`
`If a high-speed device supports the Synch Frame request, it must internally synchronize itself 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. If w Value is
`non-zero or wLength is not two, then the behavior of the device is not Specified.
`
`If the specified endpoint does not support this request, then the device will respond with a Request Error.
`
`Default state:
`
`Device behavior when this request is received while the device is in the Default state
`is not Specified.
`
`Address state:
`
`The device shall respond with a Request Error.
`
`Configured state:
`
`This is a valid request when the device is in the Configured state.
`
`9.5 Descriptors
`
`USB devices report 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 number of bytes in the descriptor
`followed by a byte-wide field that identifies the descriptor type.
`
`Using descriptors allows concise storage of the attributes of individual 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 references to string descriptors that provide displayable information
`describing a descriptor in human-readable form. The inclusion of string descriptors is Optional. However,
`the reference fields within descriptors are mandatory. If a device does not support string descriptors, string
`reference fields must be reset to zero to indicate no string descriptor is available.
`
`lfa descriptor returns with a value in 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
`|PR201 8-001 10
`
`
`
`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.
`
`If the class or vendor specific descriptors use the same format as 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.
`
`If the class or vendor specific descriptors are independent of configuration information or use a non-
`standard format, a GetDescriptorO request specifying the class or vendor specific descriptor type and
`index may be used to retrieve the descriptor from the device. A class or vendor specification will
`define the appropriate way to 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 l.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 deviceflqualifier descriptor (see Section 9.6.2}.
`
`The DEVICE descriptor of a high~speed capable device has a version number of 2.0 (0200H). [f the device
`is full-speed only or low-speed only, this version number indicates that it will respond correctly to a request
`for the deviceflqualifier desciptor (i.e., it will respond with a request error).
`
`The bchSB field contains a BCD version number. The value of the bchSB field 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 bNumConfigw'arions field indicates the number of configurations at the current Operating speed.
`Configurations for the other operating speed are not included in the count. If there are specific
`configurations of the device for specific speeds, the bNumConfigur'aiions 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 bMaxPackeiSizeO field must be 64 indicating a 64 byte
`maximum packet. High-speed operation does not allow other maximum packet sizes for the control
`endpoint (endpoint 0).
`
`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 and its interface(s) do not include an endpoint descriptor
`for the Default Control Pipe. Other than the maximum packet size, the characteristics of the Default
`Control Pipe are defined by this specification and are the same for all USB devices.
`
`The bNumConfigw‘ations field identifies the number of configurations the device supports. Table 9-8 shows
`the standard device descriptor.
`
`261
`
`ZTE/SAMSUNG 1008-0289
`ZTE/SAMSUNG 1008-0289
`IPR2018-00110
`IPR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Table 9-8. Standard Device Descriptor
`
`Description
`
`Number
`bLength
`Size of this descriptor in bytes
`
`
`
`
`
`bDescrfpforType
`
`bDeviceClass
`
`bDew’ce Sub Class
`
`
`
`
`
`Constant
`
`DEVICE Descriptor Type
`
`USB Specification Release Number in
`Binary-Coded Decimal (i.e.. 2.10 is 210H}.
`This field identifies the release ofthe USB
`
`Specification with which the device and its
`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 bDeviceClass field.
`
`If the bDeviceClass field is reset to zero,
`this field must also be reset to zero.
`
`lfthe bDeviceClass field is not set to FFH.
`all values are reserved for assignment by
`the USB-IF.
`
`262
`
`ZTE/SAMSUNG 1008-0290
`ZTE/SAMSUNG 1008-0290
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Table 9-8. Standard Device Descriptor (Continued)
`
`Value
`
`Description
`
`bDe viceProtocol
`
`AH
`
`bMaxPaclretSizeO
`
`Protocol code (assigned by the USB-IF).
`These codes are qualified by the value of
`the bDeviceCi'ass and the
`bDeviceSubClass fields.
`
`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.
`
`Maximum packet size for endpoint zero
`(only 8, 16. 32, or 64 are valid}
`
`
`
`
`_L
`
`_|.
`
`_s (11
`
`_L U)
`
`Vendor ID {assigned by the USB-IF)
`idi/endor
`
`idProduct
`
`bcdDevice
`
`Manufacturer
`
`Product ID (assigned by the manufacturer)
`
`Device release number in binary-coded
`decimal
`
`Index of string descriptor describing
`manufacturer
`
`Index of string descriptor describing
`product
`
`iSerialNumber
`
`Index of string descriptor describing the
`device’s serial number
`
`bNumConfigurations
`
`Number
`
`Number of possible configurations
`
`263
`
`ZTE/SAMSUNG 1008-0291
`ZTE/SAMSUNG 1008-0291
`IPR2018-00110
`|PR201 8-001 10
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`9.6.2 Device_Qualifier
`
`The device_qualifi er descriptor describes information about a hi gh-speed capable device that would
`change if 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 shows the fields of the device_qualifier descriptor.
`
`Table 9-9. Device_Qualierr Descriptor
`
`Size ofdescriptor
`Number
`- bLength
`ConstantbDescnfpforType Device Qualifier Type
`
`
`
`
`
`
`
`
`Reserved for future use. must be zero
`
`
`bchSB
`
`USB specification version number (e.g.,
`300
`0200H for V2.00 ]
`
`bDeviceCtass
`
`Class Code
`
`
`
`SubClassbDe viceSubCiass SubCiass Code
`
`
`
`bDeviceProtocot
`
`Protocol
`
`Protocol Code
`
`bMaxPacketSizeO
`
`Maximum packet size for other speed
`
`
`
`bNumConfiguratt’ons Number of Other-speed Configurations
`
`bReserved
`
`The vendor, product, device, manufacturer, product, and serialnumber fields 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 number for this descriptor must be at least 2.0 (0200H).
`
`The host accesses this descriptor using the GetDescriptorO request. The descriptor type in the
`GetDescriptorO request is set to device_qualifier (see Table 9-5}.
`
`If a filll-speed on] 3! device (with a device descriptor version number equal to 0200H) receives a
`GetDescriptorO request for a device_qualif1er, it must respond with a request error. The host must not make
`a request for an other_speed_conflguration descriptor unless it first successfully retrieves the
`device_qualifier descriptor.
`
`9.6.3 Configuration
`
`The configuration descriptor describes information about a specific device configuration. The descriptor
`contains a bConfiguraiionVafne field with a value that, when used as a parameter to the SetConfigurationO
`request, causes the device to assume the deScribed configuration.
`
`The descriptor describes the number of interfaces provided by the configuration. Each interface may
`operate independently. For example, an ISDN device might be configured with two interfaces, each
`providing 64 Kst bi-directional channels that have separate data sources or sinks on the host. Another
`configuration might present the ISDN device as a single interface, bonding the two channels into one
`128 Kbi’s bi-directional channel.
`
`When the host requests the configuration descriptor, all related interface and endpoint descriptors are
`returned (refer to Sectio