USB Controller Modes

There are three USB 2.0 controllers (USB0, USB1 and USB2).
Which controller operates in host mode and which one operates in device mode?

Similarly, for the USB3.0 controller, do we have a host controller or device controller?

Hi, please check the Tegra X1 (SoC) Technical Reference Manual in DLC, there are detail info about this.

There are two USB2.0 controllers available in Tegra X1. Do we have any USB hub on the Nano module? If so, to which controller it is connected?

USB0 port is mapped to USB2.0 controller #1, it supports both USB 2.0 device and USB 2.0 host operations. USB recovery is supported only with USB2.0 Controller #1 and USB2 P0 (USB0 port)

USB1, USB2 and USB3.0 ports are mapped to xUSB controller. xUSB controller supports a total of 4 USB2 ports and 4 USB3 ports, and 1 HSIC port. Of the eight ports, one can be USB3.0 OTG or USB2.0 OTG while the rest are host mode only ports.

On Nano board, there is a hub for USB1 port and USBSS0.

Don’t know if you are thinking of device isochronous mode, but none of the device mode ports support isochronous mode.

Our JN30 carrier boards for the Nano support both modes for USB0 (micro USB):

  1. device (OTG) mode for flashing and a direct connection to host PC
  2. host mode to connect (and power) an external USB device such as a mouse or keyboard

Only the first mode is supported on the dev kit. However we have added a 5V load switch for micro USB, so we could support the second mode as well. However we do not know how to set this up in the devices tree nor is there any documentation in the system design guide. Please provide the info on how to enable the host mode on USB0. Thanks.