USB2-0 gadget only starts working when device connected to USB2-1 host

I am trying to use the TX2i in gadget device mode. I am observing strange behavior where I connect USB2-0 (using the micro USB on the NVIDIA carrier) to a USB host (windows PC for instance) and the device is not detected. No kernel messages. If I then connect a device to the jetson USB2-1 (using the USB A port on the carrier) the gadget devices are suddenly detected. I can then remove the device from USB2-1 and the USB2-0 gadget continues working.

Further testing shows that I don’t even need to connect an actual device at USB2-1. If I momentarily short D+ or D- of USB2-1 to 5V, the USB2-0 device starts working. I can even un plug and re-plug USB2-0 and it works normally. It is as if any activity on USB2-1 activates the gadget driver.

Is this a known issue? Is there a fix?


The micro-B port on TX2 developer kit support OTG. If you connect it to a Linux host PC, TX2 will go to device mode. The behavior you describe is strange. Are you able to connect to a Linux host PC(Ubuntu 18.04 or 20.04) for a try? Which L4T release do you use?

Hi Dane. Thank you for your response. It looks like I created the problem with my modification to the DT. Working now!

I am trying to make the TX2i work in USB3 device mode. The problem started when I changed nvidia,usb2-companion from 1 to 0. The fix is to add the usb3-0 lane to the phy list in the xudc node. Now works normal. I can even get the TX2i on the NVIDIA carrier to act as a USB3 device. I use a USB A to A cable and cover the USB2 data pins with capton. Then plug a microusb charger into the OTG port so that it gets the vbus detection. Exactly what I was hoping for.