I am encountering some issues with the USB port configuration and OTG power management on the NVIDIA Jetson Orin NX 3768-0000-3767-0000 carrier board and core board. Below is a detailed description of the problem:
In the official configuration of the Jetson Orin NX 3768-0000-3767-0000 carrier + core board, the following USB ports are enabled respectively:
usb2-0 (Type-C)
usb2-1 (Type-A)
usb2-2 (M.2 E-key)
usb3-0 (Type-A bound to usb2-1)
usb3-1 (Type-C bound to usb2-0)
The hardware schematics and DTS files have been verified to be consistent. Please see attachments 1 and 2.
For a custom-designed carrier board, only the usb2-0 and usb3-1 Type-C ports are used according to our needs. The fusb301tmx chip logic is the same. The rts5420 hub chip corresponding to usb2-1 and usb3-0 is not used, so the rts5420 chip and Type-A ports are not soldered.
When disabling usb2-1 and usb3-0 in the DTS (disabling the corresponding lanes and ports in the device tree and removing them from usb@3610000), and confirming the changes take effect, an OTG device insertion triggers a power management error.
The fusb301 pin signals and problem logs during device insertion are attached in attachments 3 and 4.
(Note: If the inserted OTG device supports external power supply, it works normally, but only after the first power-on. After unplugging and re-plugging, the device becomes invisible.)Based on the issue described in point 2, restoring the DTS or removing the rts5420 chip from the official 3768-0000-3767-0000 carrier board results in the same problem, with no obvious difference. See attachments 3 and 4.
If all USB ports are disabled except usb2-0 on the usb3550000 branch, the error disappears, and the fusb301 chip can recognize plug/unplug events without errors. However, the device cannot function as a host. See attachment 5. disable-all-expect-usb2-0.txt (42.7 KB)
By enabling full logs and tracing the issue to HCI management, the problem is identified as the HCI manager not responding after tegra_xhci_set_port_power sets HS port power following OTG device insertion. Logs are in attachment 6.
Additionally, on a normal 3768-0000-3767-0000 board (without any hardware modification), if only usb2-0 and usb3-1 are kept in the driver (disabling all other lanes and ports), the same issue can be reproduced (attachment 7). change.txt (15.3 KB)
This is confusing.
Also, in the original configuration, the phynames seem to be incorrectly assigned. Changing phynames to usb3-0 causes the Linux port to malfunction.
Our request:
We want to remove the rts5420 chip and have the Type-C usb2-0 and usb3-1 ports work properly both as host and device. Could you please advise on the correct software-level modifications needed to achieve this?
Also, in the original configuration, the phynames seem to be incorrectly assigned. Changing phynames to usb3-0 causes the Linux port to malfunction.
Please keep the phyname as usb3-0. It is upstream kernel rule that is has to start from usb3-0.
It is not a bug. It is just we follow the upstream kernel rule. Please do not modify it.
I donât think the âchange.txtâ things you put there are correct too. Do not modify things to usb3-1 in phyname as I mentioned here.
Also, please do not put other noises from Orin AGX DT. They are totally not related.
xhci-tegra.c/xusb-tegra186.c/xusb.c do not need patch either. Do not change anything in these drivers.
The only thing you need to do is modify the device tree. Share us what is your final dts looks like and how your schematic looks like.
It is your first answer that solved my problem. I found that the error is not caused by the rts5420, it is because the usb2-2. I did not connect the wifi module to the M.2E.
Could you please explain why it caused the error when I connect an OTG on typeC port?
BTW, if you have a jetson orin nx by your side, you could try to remove the wifi/bt module on the M.2E KEY. Use âsudo dmesg -n 7â. And connect an OTG device on typeCă You could find the error below. The only relationship between USB2-0 and USB2-2 is the vbus-supply. Is there any idea?
please share us how you modified the device tree to reproduce this error.
Your previous change has lots of unnecessary items in it. If you want to discuss this, I think you should use clean setup with only device tree change.
Let me explain. With your first replay I have already reset all the changes that I made.
Now, no need to make any changes in the dts nor in the kernel drivers.
Just remove the wifi/bt hardware on the offical carrier board and nx 16g core board 3768-0000-3767-0000 of nvidia, that could recurrence the same error above.
We tried the test you mentioned here on rel-36.4.3 3768-0000-3767-0000 board. But I donât see any error from type C port after removing the M.2 wifi card on the board.
May I ask which type of OTG device you are using.
Which reasons for USB2-0 OTG recognition failure when USB2-2 is not connected to any external device based on current LOG