Part Number: TUSB4041I
Other Parts Discussed in Thread: TUSB4041PAPEVM
Hi we're currently evaluating the TUSB4041 USB Hub IC SMBus interface using the TUSB4041PAPEVM. We've exposed the SMBus wires on the devkit and connected them to an iMX devkit. The upstream USB is connected to the USB port of the iMX.
In general when enabling and disabling ports with the port used register it seems like the IC should notify the host that a port has connected or disconnected but this doesn't seem to happen.
The datasheet suggests when cfgActive is 1, the IC should not connect upstream over USB until the bit is cleared. We've found instead that after setting the smbusRst bit to allow configuration (which sets the cfgActive bit), the IC remains connected. If we then write to the port used register to disable a port the disable takes place immediately instead of waiting for us to clear the cfgActive bit. The host also doesn't re-enumerate the USB device on that port. Is that intended behavior? And if so why doesn't the TUSB4041 re-enumerate to refresh the ports on the host?
Similar to what this user was seeing on this other thread: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1442576/tusb4041i-port-used-configuration-register
On a smaller note, we've found that the IC only allows one port to be enabled/disabled (via the port used register) at a time which isn't mentioned in the datasheet at all. e.g. on startup the port used register 0x08 is set to 0x0F, writing 0x00 to 0x08 doesn't change the register value, but writing 0x0E to disable port 1 or 0x07 to disable port 4 seems to work.