Hello,
I’m currently working on a custom carrier board for a Jetson Orin NX 16GB module and I feel like I’m missing something regarding the USB 3.1 capability.
My target, for the moment, is to enable two USB3.2 Type-C ports attached to USB1-USBSS1 and USB2-USBSS2 signals through a typical Type-C connector mux (HD3SS3220IRNHR). I’m able to detect devices at USB2.0 speed through both connectors. However, if any 3.0 or 3.1 device is connected, it is also recognized only as a USB 2.0 device.
Regarding the device tree, I’ve tried several changes without success:
xusb_padctl: xusb_padctl@3520000 {
status = "okay";
pads {
usb2 {
lanes {
usb2-0 {
nvidia,function = "xusb";
status = "okay";
};
usb2-1 {
nvidia,function = "xusb";
status = "okay";
};
usb2-2 {
nvidia,function = "xusb";
status = "okay";
};
};
};
usb3 {
lanes {
usb3-0 {
nvidia,function = "xusb";
status = "okay";
};
usb3-1 {
nvidia,function = "xusb";
status = "okay";
};
usb3-2 {
nvidia,function = "xusb";
status = "okay";
};
};
};
};
ports {
usb2-0 {/* Goes to recovery port */
mode = "otg";
status = "okay";
vbus-supply = <&p3768_vdd_5v_sys>;
usb-role-switch;
port {
typec_p0: endpoint {
remote-endpoint = <&fusb_p0>;
};
};
};
usb2-1 {/* Goes to hub */
mode = "host";
vbus-supply = <&p3768_vdd_av10_hub>;
status = "okay";
};
usb2-2 {/* Goes to M2.E */
mode = "host";
vbus-supply = <&p3768_vdd_5v_sys>;
status = "okay";
};
usb3-0 {/* Goes to hub */
nvidia,usb2-companion = <1>;
status = "okay";
};
usb3-1 {/* Goes to J5 */
nvidia,usb2-companion = <0>;
status = "okay";
};
usb3-2 {
nvidia,usb2-companion = <2>;
status = "okay";
};
};
};
tegra_xudc: xudc@3550000 {
status = "okay";
phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
<&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>;
phy-names = "usb2-0", "usb3-1";
nvidia,xusb-padctl = <&xusb_padctl>;
};
tegra_xhci: xhci@3610000 {
status = "okay";
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";
nvidia,xusb-padctl = <&xusb_padctl>;
};
I’m not sure if it’s right because I’ve not been able to figure out what pins are linked to a usb port. For example, USBSS2 pins are 51, 53, 57 and 59. I can imagine usb3-2 in the DT refers to those pins but i cannot be sure of it. I tried several combitations of the nvidia,usb2-companion parameter but no option seemed to work.
Pinmux files were also updated as specified in the Bring-up Guide.
Am I missing something? Thank you in advance for your help.
Regards,
José Luis.