USB not working in Jetson TX2 - R32.2

Hi,

We have developed a custom carrier board for TX2 which utilises USB interface of the SOM. We are currently facing no power to USB issue. Previously, we faced similar issue in L4T R28.2.1 and resolved it by adding following lines in our dtsi file.

/ {
    pinctrl@3520000 {
        vbus-2-supply = <&battery_reg>;
    };
};

However, in R32.2 even the DTB change didn’t help much and we could see no power to the USB.
Quick response in solving issue will be really helpful.

Thanks in advance!

Akash

Hi,
On r32.2, please check below part in tegra186-quill-p3310-1000-a00-00-base.dts

xhci@3530000 {
    status = "okay";
    phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
        <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
        <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>;
    phy-names = "usb2-0", "usb2-1", "usb3-1";
};
xusb_padctl@3520000 {
    status = "okay";
    pinctrl-0 = <&vbus_en0_default_state>;
    pinctrl-1 = <&vbus_en1_default_state>;
    pinctrl-2 = <&vbus_en0_sfio_tristate_state>;
    pinctrl-3 = <&vbus_en1_sfio_tristate_state>;
    pinctrl-4 = <&vbus_en0_sfio_passthrough_state>;
    pinctrl-5 = <&vbus_en1_sfio_passthrough_state>;
    pinctrl-names = "vbus_en0_default", "vbus_en1_default",
        "vbus_en0_sfio_tristate", "vbus_en1_sfio_tristate",
        "vbus_en0_sfio_passthrough", "vbus_en1_sfio_passthrough";

    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 {
            status = "okay";
            mode = "otg";
            vbus-supply = <&vdd_usb0_5v>;
            nvidia,oc-pin = <0>;
        };
        usb2-1 {
            status = "okay";
            mode = "host";
            vbus-supply = <&vdd_usb1_5v>;
            nvidia,oc-pin = <1>;
        };
        usb3-1 {
            nvidia,usb2-companion = <1>;
            status = "okay";
        };
    };
};

You should modify it according to your custom board.

Here is a post for your reference:
https://devtalk.nvidia.com/default/topic/1049988/jetson-tx2/third-usb-on-custom-board-not-working-with-jetpack-4-2/post/5330117/#5330117

Hi DaneLLL,
Is it effective at R32.3.1(Jetpack 4.3)? I modify my dts files,the otg can work well,BUT my USB3.0 cannot work.

Hi CalmCar,
It is effective for r32.3.1. Probably you need some other modification. Please check adaptation guide for programming device tree.
https://developer.nvidia.com/embedded/dlc/Tegra_Linux_Driver_Package_TX2_Adaptation_Guide