CY7C656x
x
PRELIMINARY
Document #: 38-08037 Rev. *D Page 16 of 23
Byte 22: ActivePorts[3:0]
Bits 3–0 are the ActivePorts[3:0] bits that indicates if the
corresponding port is usable. For example, a two-port hub
that uses ports 1 and 4 would set this field to 0x09. The total
number of ports reported in the Hub Descriptor: bNbrPorts
field is calculated from this.
Byte 23: RemovablePorts[3:0]
Bits 3–0 are the RemovablePorts[3:0] bits that indicates
whether the corresponding port is removable (set to high).
This bit values are recorded appropriately in the
HubDescriptor:DeviceRemovable field. Default: 0xFF.
Byte 24: LangID
Array of LangID codes supported by the hub. Each LangID
consists of two bytes, stored LSB first. The array has Num-
Langs entries (2 * NumLangs bytes).
Byte a: iManufacturer
Array of addresses for the iManufacturer strings. Each ad-
dress is two bytes long, stored LSB first. The array has
NumLangs entries (2 * NumLangs bytes). (The starting EE-
PROM address is based upon the number entered for
NumLangs.
The address a = 24 + 2 * NumLangs.
Byte b: iProduct
Array of addresses for the iProduct strings. Each address
is two bytes long, stored LSB first. The array has Num-
Langs entries (2 * NumLangs bytes).
The address b = a + 2*NunLangs.
Byte c: iSerialNumber
Array of addresses for the iSerialNumber strings. Each ad-
dress is two bytes long, stored LSB first. The array has
NumLangs entries (2 * NumLangs bytes).
The address c = b + 2 * NumLangs.
Byte d: iConfiguration(Full-Speed)
Array of addresses for the iConfiguration (full-speed)
strings. Each address is two bytes long, stored LSB first.
The array has NumLangs entries (2 * NumLangs bytes).
The address d = c + 2*NumLangs.
Byte e: iConfiguration(High-Speed)
Array of addresses for the iConfiguration (high-speed)
strings. Each address is two bytes long, stored LSB first.
The array has NumLangs entries (2 * NumLangs bytes).
The address e = d + 2 * NumLangs.
Byte f: iInterface(0)
Array of addresses for the iInterface(0) strings. Each ad-
dress is two bytes long, stored LSB first. The array has
NumLangs entries (2 * NumLangs bytes).
The address f = e + 2 * NumLangs.
Byte g: iInterface(1)
Array of addresses for the iInterface(1) strings. Each ad-
dress is two bytes long, stored LSB first. The array has
NumLangs entries (2 * NumLangs bytes).
The address g = f + 2 * NumLangs.
Byte h: Strings
Strings addressed by the string pointers. Strings must com-
ply with the USB specification. The first byte must be the
length of the string in bytes, the second must be 0x03, and
the string must be in Unicode.
10.0 Supported USB Requests
10.1 Device Class Commands
Table 10-1. Device Class Requests
Request bmRequestType bRequest wValue wIndex wLength Data
GetDeviceStatus 10000000B 0x00 0x0000 0x0000 0x0002 2 Byte Device Status
GetInterfaceStatus 10000001B 0x00 0x0000 0x0000 0x0002 2 Byte Endpoint
Status
GetEndpointStatus 10000010B 0x00 0x0000 0x0000 0x0002 2 Byte Endpoint
Status
GetDeviceDescriptor 10000000B 0x06 0x0001 Zero or
Language ID
Descriptor
Length
Descriptor
GetConfigDescriptor 10000000B 0x06 0x0002 Zero or
Language ID
Descriptor
Length
Descriptor
GetDeviceQualifierDe-
scriptor
10000000B 0x06 0x0006 Zero or
Language ID
Descriptor
Length
Descriptor
GetOtherSpeedConfigura-
tionDescriptor
10000000B 0x06 0x0007 Zero or
Language ID
Descriptor
Length
Descriptor
GetConfiguration
[12]
10000000B 0x08 0x0000 0x0000 0x0001 Configuration value
SetCongfiguration
[12]
00000000B 0x09 Configuration
Value
0x0000 0x0000 None
GetInterface 10000001B 0xA 0x0000 0x0000 0x0001 Interface Number
Note:
12. Only one configuration is supported in CY7C656xx.