Tx2 USB3.0 not work

Hi,We designed a carrier board based on P2597,we removed the power monitoring circuits(INA3221) ,GPIO expander circuits(TCA9539) and usb2.0 (usb0) circuits. Later, we connected a TX2 module to debug the functions, the USB3.0(USB_SS0+USB1) interface is not work .

In jetpack 3.3 version, we modified hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platform/tegra186-quill-power-tree-p3310-1000-a00-00-base.dtsi file:

pinctrl@3520000{

vbus-0-supply = <&vdd_usb0_5v>;

vbus-1-supply = <&vdd_usb1_5v>;

vbus-2-supply = <&battery_reg>;

vbus-3-supply = <&vdd_usb2_5v>;

……

}

then recompile and flash device tree, and usb3.0 work normally on our carrier board.We do not modify other files.

The current version of jetpack 4.4, witch is invalid after using the same procedure to modify the same file.

Hi,
Please refer to adaptation guide for device tree programming:

A few examples for your reference:

thanks DaneLLL.We changed device tree based on adaptation guide, and we refer to other people’s examples as you told.But USB3.0 is still not work. We’re going crazy…

pinctrl@3520000 is not in use in kernel 4.9 release (rel-32.x).

Adaptation guide has something wrong in the power tree section, which is out-of-date info. We will remove them.
Please only refer to the USB porting guide in adaptation guide.

Thanks WayneWWW. First , we modified tegra186-quill-p3310-1000-a00-00-base.dts file,code is:
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-0}>;
phy-names = “usb2-0”, “usb2-1”, “usb3-0”;
};
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-0 {
            nvidia,usb2-companion = <1>;
            status = "okay";
        };
    };
};

Second, we modified tegra186-quill-p3310-1000-c03-00-base.dts file,code is:
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-0}>;
phy-names = “usb2-0”, “usb2-1”, “usb3-0”;
};
xusb_padctl@3520000 {
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-0 {
nvidia,usb2-companion = <1>;
status = “okay”;
};
};
};

USB3.0 is still abnormal.

I guess your dmesg would tell you the answer.
Please check it first.

Attached is a printed log. Can you help me to analyze the cause of the abnormality?
syslog-custom.log (59.9 KB)

Hi,

There are some points here.

  1. In the pads I saw you have usb3-0/3-1/3-2 but the ports only have usb3-1. Where are the rest of 2 port? If you don’t have them, please remove them.

  2. The error shows

[ 12.871035] tegra-usb-cd usb_cd: otg phy is not available yet

Did you configure the xudc and usb_cd?

Hi,
If you still face issues, please execute xxd to check device tree after booting the system:

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

To ensure the modification is correctly applied.