This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TUSB4041I: Odd restrictions on disabling downstream ports: are they real?

Part Number: TUSB4041I

For security and other reasons, we need to be able to disable some or all of the downstream ports.  I can do this by writing to register 8, the Port Used Configuration Register.

This works if I leave at least one port enabled.  But if I try to write a 0 to the port to disable all ports, they all get ENABLED, as can be verified by reading the register, which returns 0x0F.

I then found that the datasheet says "All combinations are supported with the exception of both ports 1 and 3 marked as disabled."

That seems really odd: I can see maybe "must have port 1 enabled", but 1 and THREE?  That would mean 4 out of the 16 possible combinations would be disallowed.

My quick tests show that it seems to work if I leave ANY one or more ports enabled, but I hate to violate a datasheet based on my sample size of 2.

Can anyone tell me the real answer here?

  • Hi John,

    Well, the port 1 and port 3 restriction is real but it should only apply to the pin compatible USB 3 version of this hub, not the USB 2 only version. The issue was that with that particular combination of the ports disabled, the mapping between the USB 2 portion of the hub and the USB 3 portion of the hub was incorrect. We'll need to update the datasheet accordingly.

    Since a 0 port hub is not a valid device per the USB specification, it was not a validated use case and we don't have a documented device behavior for that configuration.

    Regards,
    JMMN
  • Thanks for the clarification.

    A "zero port hub" is indeed a bit like "the sound of no hands clapping". But this hub will be built into a product, and we need the ability to disable USB entirely for security or other reasons. I guess will have to experiment with leaving the chip in reset, or disabling USB upstream. Both a lot more complicated than setting the bits in this register. Such is life.
  • Hi John,

    The easiest way to disable the hub is to have USB_VBUS go low, holding the hub in reset will also work but the power consumption is higher.

    Regards,

    JMMN