USB doen’t work on Custom Board //JetPack 4.3 R32.31

I recently customized a carrier board without ina3221 and tca9539. I modified pinctrl@3520000 and xhci@3530000 according to “Jetson TX2 Platform Adaptation And Bring-Up Guide”, but the USB still doesn’t work. Here are my schematics, dts, and dmesg files. (236.9 KB)

In addition,“lsusb” will not output anything

Probably you don’t disable plugin manager and some configs are overwritten by it. After booting TX2, please check the device tree through xxd. Example:

$ xxd /proc/device-tree/xusb_padctl@3520000/pads/usb2/lanes/usb2-0/status
00000000: 6f6b 6179 00                             okay.

Need to check xusb_padctl@3520000 and xhci@3530000.

I modified my device tree file after your reminder, however, USB still doesn’t work.
Now I suspect it is a signal quality problem, Here are my latest xxd, dts, dmesg files.
I also attached the datasheet of the common mode choke I used. (524.7 KB)

xxd /proc/device-tree/xusb_padctl@3520000/pads/usb2/lanes/usb2-0/status
00000000: 6f6b 6179 00 okay.
xxd /proc/device-tree/xusb_padctl@3520000/pads/usb2/lanes/usb2-1/status
00000000: 6f6b 6179 00 okay.
xxd /proc/device-tree/xusb_padctl@3520000/pads/usb2/lanes/usb2-2/status
00000000: 6f6b 6179 00 okay.
xxd /proc/device-tree/xusb_padctl@3520000/pads/usb3/lanes/usb3-0/status
00000000: 6f6b 6179 00 okay.
xxd /proc/device-tree/xusb_padctl@3520000/pads/usb3/lanes/usb3-1/status
00000000: 6469 7361 626c 6564 00 disabled.
xxd /proc/device-tree/xusb_padctl@3520000/pads/usb3/lanes/usb3-2/status
00000000: 6469 7361 626c 6564 00 disabled.

Alright, I used someone else’s system image, USB can be used, so my hardware design is no problem, and it should be the problem of the device tree. Can you give more suggestions?

The device tree shows usb2-0 is an OTG port(probably micro B port), usb2-1 and usb3-0 forms a USB3 type-A port, usb2-1 is a USB2 type-A port.

Not sure but looks like the custom board is identical to TX2 devkit? If yes, you may try this patch:

Surprise! Although the link is for Jetpack4.2, the source code is slightly different, but after reading his code and your reminder, I managed to modify the device tree correctly, thank you very much!

thanks a lot. I fixed it as follows.

— a/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi
+++ b/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi
@@ -106,7 +106,7 @@
pinctrl@3520000 {
vbus-0-supply = <&vdd_usb0_5v>;
vbus-1-supply = <&vdd_usb1_5v>;
- vbus-2-supply = <&vdd_usb2_5v>;
+ vbus-2-supply = <&battery_reg>;
vbus-3-supply = <&battery_reg>;
vddio-hsic-supply = <&battery_reg>;
avdd_usb-supply = <&spmic_sd3>;

— a/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
+++ b/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts
@@ -200,7 +200,8 @@
usb2-2 {
status = “okay”;
mode = “host”;
- vbus-supply = <&vdd_usb2_5v>;
+ vbus-supply = <&battery_reg>;
+ nvidia,oc-pin = <1>;
usb3-0 {
nvidia,usb2-companion = <2>;


I think your revision is correct and more concise than mine. We can configure the device tree according to this modification.