USB0 not working on our custom PCB

We struggle with reconfiguring USB for our custom TX2 carrier board. We’d appreciate your help in figuring out what is wrong in our .dts setup.

How should we patch the .dts in order to have USB 2.0 OTG on the USB0 port and no other USB functionality?

Basically, we have copied the dev-kit’s USB0 port and removed any other USB ports. Our USB0 uses USB 2.0 OTG without the hi-speed lines. On the TX2 connector the USB_SSn_RX pairs are all grounded. The TX pairs float.

We started out with the dev kit’s Ubuntu image, where we connected USB0 through an OTG adapter. Judging from dmesg, the system sees if the OTG adapter is plugged in or not. We get “Cable state:1, cable id:2”. The stock Ubuntu image running on the dev kit will also apply VBUS when the OTG adapter is present and cut VBUS when it is not. So everything is OK until we start removing things.
The .dts changes we believe are needed to run our board are first tested on the dev kit. We have tried different combinations of disabling and deleting usb2-1 and usb3-0 and the hi-speed lines. With our modifications in place, dmesg on the dev kit responds to the USB0 ID pin as the OTG adapter is removed and inserted. But we have no VBUS out on USB0.

In our .dts we have also redefined vbus-2-supply = <&battery_reg>; Curiously, we can’t find this signal on the I2C IO expanders of the dev kit schematic. We tried to follow the Platform Adaption and Bring-Up Guide in multiple ways to de-configuring the unused USBs but something must have gone wrong along the way.

So what changes would we need to do to our DTB to be able to use USB0, but none of the other USB ports?

If you use Jetpack 4.2.2, please refer to

Some posts for your reference:

USB lane mapping information is in TX2 adaptation guide. To change the configuration correctly, you need to notice if plugin-manager is working or not. Please note that the plugin-manager log is in kernel log for rel-28 and bootloader log for rel-31/32. It means dmesg would not show it after rel-3x.