AGX Xavier USB 2.0 on Custom Carrier Board

Hello NVIDIA Developers!

We are developing a custom board around an AGX Xavier device. We have made some deviations from the original dev kit design. One of these changes is to utilize the USB3 bus, used as the ESATA port on the dev kit, as a simple USB 2.0 port.

Here is the “Simple USB Type A Connection Example” from the OEM Design Guide:

Here is a representation of our USB 2.0 implementation.

As mentioned before, our implementation uses the USB3 bus. The image shows that GPIO05 (Pin A59) is used as the VBUS Enable pin. The pinmux configuration spreadsheet was used to set the GPIO05 pin as output high. However, when connecting a USB device to the custom board, it is not detected by the Xavier. No devices show from a lsusb command, and no USB activity shows in the kernel messages.

Could the combination of using the USB3 bus and GPIO5 as the VBUS Enable pin require additional device tree changes? If so, do you have any ideas on how to patch this up?


Please refer to the adaptation guide. Any usb change on AGX Xavier would need to re-configure the dts because the default one is using type C. And that one is not possible to directly use on a typeA.

Hi @WayneWWW ,

Thank you for responding quickly to my post. I’m having a little trouble understanding here, as we’re using the USB3 bus. On the AGX Xavier development kit, this routes to the eSATA port (J507), which uses USB type A, not type C. It can be seen that it is USB 2.0 compatible by connecting a keyboard or mouse to J507 on the dev kit.

Our board uses of GPIO05 as the VBUS enable pin, which has been configured to output high. The dev kit board uses GPIO22. Other than that, I’m not seeing much of a difference between our board and the dev kit board, particularly with the USB3 bus D+ & D- pins being the same.

Any help to clarify what needs to be reconfigured here (e.g., device tree) would be most appreciated.


J507 from the AGX Xavier dev kit schematic:

USB driver handles all ports but not only one. It is wrong to think “One of my port is same as devkit, so this port won’t hit error”.

If your board does not have type C, then you need to remove the type C related config from the device tree. Otherwise, when the usb driver checks the type C configuration from device tree, it will report error. And that would affect your type A case too.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.