USB 2.0 Hi-Speed Hub Controller

Datasheet

8.3SMBus Slave Interface

Instead of loading User-Defined Descriptor data from an external EEPROM, the SMSC hub can be configured to receive a code load from an external processor via an SMBus interface. The SMBus interface shares the same pins as the EEPROM interface; if CFG_SEL[1] & CFG_SEL[0] activate the SMBus interface, external EEPROM support is no longer available (and the user-defined descriptor data must be downloaded via the SMBus). The SMSC hub waits indefinitely for the SMBus code load to complete and only “appears” as a newly connected device on USB after the code load is complete.

The hub’s SMBus implementation is a slave-onlySMBus device. The implementation only supports read block and write block protocols. The hub responds to other protocols as described in Section 8.3.3, "Invalid Protocol Response Behavior," on page 54. Reference the System Management Bus specification, Rev 1.0.

The SMBus interface is used to read and write the registers in the device. The register set is shown in Section 8.2.1, "Internal Register Set (Common to EEPROM and SMBus)," on page 35.

8.3.1SMBus Slave Addresses

The SMBus slave address is 58h (01011000b).

8.3.2Bus Protocols

Typical Write Block and Read Block protocols are shown below. Register accesses are performed using 7-bit slave addressing, an 8-bit register address field, and an 8-bit data field. The shading indicates the hub driving data on the SMBDATA line; otherwise, host data is on the SDA/SMBDATA line.

The slave address is the unique SMBus Interface Address for the hub that identifies it on SMBus. The register address field is the internal address of the register to be accessed. The register data field is the data that the host is attempting to write to the register or the contents of the register that the host is attempting to read.

Note: Data bytes are transferred MSB first.

8.3.2.1Block Read/Write

The block write begins with a slave address and a write condition. After the command code, the host issues a byte count which describes how many more bytes will follow in the message. If a slave had 20 bytes to send, the first byte would be the number 20 (14h), followed by the 20 bytes of data. The byte count may not be 0. A block read or write is allowed to transfer a maximum of 32 data bytes.

Note: For the following SMBus tables:

 

D enotes M aster-to-S lave

 

D enotes S lave-to-M aster

 

 

1

7

 

1

1

8

 

1

 

 

 

S

Slave Address

Wr

A

Register Address

 

A

...

 

 

 

 

 

 

 

 

 

 

 

 

8

1

 

8

1

8

1

 

8

1

1

Byte Count = N A

Data byte 1

A

Data byte 2

A

 

Data byte N

A

P

Block Write
Figure 8.1 Block Write

SMSC USB251x

53

Revision 1.0 (3-11-09)

DATASHEET