USB3.0 not working with TX2i, but with TX2 working fine

Hi NVidia Team

We have a custom carrier board. We tried to adapt JetPack 4.2.2 for the Jetson TX2i as we have done for the Jetson TX2. With the TX2, everything is working so far. With the TX2i, we are not able to make our two USB3 Ports run (USB3-1 and USB3-2). Can you please check our device tree file and see if there is an error?
Thank you.

Kind regards
device_tree_TX2i.zip (55.8 KB)

Hi,
Please check if you apply to corresponding device tree file:

[TX2]
  hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi
[TX2i]
  hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3489-1000-a00-00.dtsi

Hi DaneLLL

The device tree

hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3489-1000-a00-00.dtsi

is applied, still USB3.0 is not working. We use config#3. Check current DTS File attached.
Thank you.
tx2i.dts.zip (59.2 KB)

Hi,
The setting can be overwritten by plugin manager. More information:
https://elinux.org/Jetson/TX2_USB#USB-Lane_Mapping

Please disable plugin manager. After booting, please inspect device tree via xxd. Example:

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

Hi DaneLLL

we got a step further. The problem seemed to be that usb3-0 did not had a linux,phandle and phandle argument. When adding it to xhci

xhci@3530000 {
		phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
			<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
			<&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
			<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>,
			<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>,
			<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>;
		phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1", "usb3-2";
		status = "okay";

	};

and then disabling port and lane for usb3-0, USB3-1 and USB3-2 Ports are working now. But still we face an issue. When the USB3.0 Device is already connected at power on, it only gets recognized as USB2.0 device. When replugged, it gets correctly recognized as USB3.0 device. This happens only with one USB3.0 port (usb3-2), where the USB2.0 Signals are going over a USB2.0 Hub. We added a ramp delay for the Enable of the Hub, but without success so far:

regulator@17 {
			compatible = "regulator-fixed-sync";
			reg = <0x11>;
			regulator-name = "vdd-usb2-5v";
			regulator-min-microvolt = <0x4c4b40>;
			regulator-max-microvolt = <0x4c4b40>;
			gpio = <0x28 0x2b 0x0>;
			enable-active-high;
			regulator-enable-ramp-delay = <0x1388>;
			regulator-disable-ramp-delay = <0xa5a>;
			linux,phandle = <0xa9>;
			phandle = <0xa9>;
		};

Do you have any idea what could be the problem? Increasing the delay?
Measuring the enable signal, we see that it stays low at the power on and then goes high during booting, as expected.
Thank you.

Hi,
Certain enumeration issues are seen if VBUS is turned on too early:
https://devtalk.nvidia.com/default/topic/1043644/jetson-tx2/usb1-and-installing-kernel-modules-for-lte-modem/post/5294983/#5294983

Please check if vbus-supply is set accordinly:
https://devtalk.nvidia.com/default/topic/1067380/jetson-agx-xavier/usb2-0-does-not-working-on-jatson-agx-xavier/post/5407756/#5407756