You can use a micro-A/B connector and comply with “On the Go” (OTG) standards to switch mode between device and host mode based on a pin select ID (the cable type plugged in would define if the port becomes host or device, but not both simultaneously).
On the Jetson the micro-OTG port normally runs as host, but in recovery mode the port is treated as device. Technically if the wrong cable type is used the port would be treated as no cable connected. An example is that a type-A connector should function only in host mode, and accidentally using a type-B connector while in host mode should act as if no cable is connected; or conversely, if the supplied type-B cable used for flashing is plugged in while operating in host mode, then anything connected should be ignored. The Jetson is kind of a special case though because the pin select ID is not used to switch modes…modes for the Jetson (unless modified) are selected only by the recovery button being used at power up time.
The shorter answer is that if you put USB0 in host mode you can use it like any other port. If you put the port in device mode you can make the Jetson visible as some custom device, e.g., mass storage. Recovery mode would still put the port in device mode for flashing. The trick is that you have to follow OTG standards and use the micro-A/B connector on the carrier board, and then pay attention to whether you are using a cable with type-B (Jetson as device) or a cable with type-A (Jetson as host)…the OTG connector can do this, the full-sized connectors do not have a pin for ID and cannot do this.
I would imagine having two separate controllers for USB and evenly dividing traffic would be better than using a very large HUB on a single controller…but this only matters if traffic is heavy. Something like a mouse or keyboard won’t care. There are plenty of small surface mount USB controllers out there with up to seven ports on a single chip, but even more examples are available with four ports on a controller. The controller itself does not generally define a port…for that you use a transceiver to handle the physical interface (PHY), and the transceiver can provide OTG switching capability.
Here are a couple of representative lists (I’m not making recommendations, these are just good examples with published information you might find useful, some of those transceivers support OTG which is used for switching via ID pin between host/device mode if software is used to support ID pin host/device context change):
[url]http://www.microchip.com/design-centers/usb/usb-hubs-and-devices/products/usb-transceivers[/url]
[url]http://www.microchip.com/design-centers/usb/usb-hubs-and-devices/products/usb-hubs[/url]