USB devices not enumerating in lsusb in TX2

Hi Wayne,

With TX1 SOM on my custom board USB devices are detecting.
But with TX2 SOM on the same custom board there is no downstream device detected and getting below logs for usb:

[ 0.000000] Kernel command line: console=ttyS0,115200 androidboot.presilicon=true firmware_class.path=/etc/firmware root=/dev/mmcblk0p1 rw rootwait rootfstype=
[ 0.509073] usbcore: registered new interface driver usbfs
[ 0.509119] usbcore: registered new interface driver hub
[ 0.509199] usbcore: registered new device driver usb
[ 0.564742] vdd-usb0-5v: 5000 mV
[ 0.565071] vdd-usb1-5v: 5000 mV
[ 0.568110] vdd-usb2-5v: 5000 mV
[ 0.951132] tegra-xusb-padctl 3520000.xusb_padctl: VBUS over-current detection enabled
[ 3.511409] usbcore: registered new interface driver r8152
[ 3.511437] usbcore: registered new interface driver asix
[ 3.511467] usbcore: registered new interface driver ax88179_178a
[ 3.511491] usbcore: registered new interface driver cdc_ether
[ 3.511515] usbcore: registered new interface driver net1080
[ 3.511539] usbcore: registered new interface driver cdc_subset
[ 3.511564] usbcore: registered new interface driver zaurus
[ 3.511601] usbcore: registered new interface driver cdc_ncm
[ 3.517387] tegra-xusb 3530000.xhci: USB2 port 0 has OTG_CAP
[ 3.519010] tegra-xusb 3530000.xhci: extcon 0: ffffffc0f11dbc00 id
[ 3.519687] usbcore: registered new interface driver uas
[ 3.519726] usbcore: registered new interface driver usb-storage
[ 3.519784] usbcore: registered new interface driver usbserial
[ 3.521393] tegra-xusb 3530000.xhci: Firmware timestamp: 2019-10-31 05:52:15 UTC, Version: 55.17 release
[ 3.526636] usbcore: registered new interface driver xpad
[ 3.550149] tegra-xusb 3530000.xhci: xHCI Host Controller
[ 3.550164] tegra-xusb 3530000.xhci: new USB bus registered, assigned bus number 1
[ 3.550864] tegra-xusb 3530000.xhci: hcc params 0x0184fd25 hci version 0x100 quirks 0x00050810
[ 3.550890] tegra-xusb 3530000.xhci: irq 70, io mem 0x03530000
[ 3.551017] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 3.551021] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.551024] usb usb1: Product: xHCI Host Controller
[ 3.551027] usb usb1: Manufacturer: Linux 4.9.140 xhci-hcd
[ 3.551029] usb usb1: SerialNumber: 3530000.xhci
[ 3.551711] tegra-xusb 3530000.xhci: xHCI Host Controller
[ 3.551719] tegra-xusb 3530000.xhci: new USB bus registered, assigned bus number 2
[ 3.551841] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[ 3.551845] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.551848] usb usb2: Product: xHCI Host Controller
[ 3.551851] usb usb2: Manufacturer: Linux 4.9.140 xhci-hcd
[ 3.551853] usb usb2: SerialNumber: 3530000.xhci
[ 3.654262] usb usb1: usb_suspend_both: status 0
[ 6.687761] tegra-xusb 3530000.xhci: Upgrade port 0 to USB3.0
[ 6.693499] tegra-xusb 3530000.xhci: Upgrade port 1 to USB3.0
[ 6.770271] usb usb2: usb_suspend_both: status 0
[ 9.042135] tegra-xusb 3530000.xhci: entering ELPG
[ 9.050116] tegra-xusb 3530000.xhci: entering ELPG done
[ 14.795421] usbcore: registered new interface driver usbhid
[ 14.801006] usbhid: USB HID core driver
[ 15.354054] usbcore: registered new interface driver snd-usb-audio
[ 15.893486] vdd-usb0-5v: disabling
[ 15.896898] vdd-usb1-5v: disabling
[ 15.928867] vdd-usb2-5v: disabling

I followed this thread Third USB on custom board not working with JetPack 4.2

  1. and added hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3489-1000-a00-00.dtsi
  •           vbus-2-supply = <&vdd_usb2_5v>;
    
  •           vbus-2-supply = <&battery_reg>;
    
  1. in file hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3489-0888-a00-00-base.dts below xhci@3530000 having default usb mapping as

#if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2
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}>;
phy-names = “usb2-0”, “usb2-1”, “usb2-2”, “usb3-0”;
status = “okay”;

};

#else
xhci@3530000 {
status = “okay”;
phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
<&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
phy-names = “utmi-0”, “utmi-1”, “utmi-2”;
nvidia,boost_cpu_freq = <800>;
};
#endif
4. the pinctrl node has below default dtsi entry as
pinctrl@3520000 {
status = “okay”;
pinctrl-0 = <&tegra_xusb_padctl_pinmux_default>;
pinctrl-1 = <&vbus_en0_sfio_tristate_state>;
pinctrl-2 = <&vbus_en1_sfio_tristate_state>;
pinctrl-3 = <&vbus_en0_sfio_passthrough_state>;
pinctrl-4 = <&vbus_en1_sfio_passthrough_state>;
pinctrl-5 = <&vbus_en0_default_state>;
pinctrl-6 = <&vbus_en1_default_state>;
pinctrl-names = “default”,
“vbus_en0_sfio_tristate”, “vbus_en1_sfio_tristate”,
“vbus_en0_sfio_passthrough”, “vbus_en1_sfio_passthrough”,
“vbus_en0_default”, “vbus_en1_default”;
tegra_xusb_padctl_pinmux_default: pinmux {
/* Quill does not support usb3-micro AB */
usb2-micro-AB {
nvidia,lanes = “otg-0”;
nvidia,function = “xusb”;
nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>;
nvidia,oc-pin = <0>;
};
usb2-std-A-port2 {
nvidia,lanes = “otg-1”;
nvidia,function = “xusb”;
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
nvidia,oc-pin = <1>;
};
usb3-std-A-port2 {
nvidia,lanes = “usb3-0”;
nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
nvidia,oc-pin = <1>;
};

        e3325-usb3-std-A-HS {
            nvidia,lanes = "otg-2";
            nvidia,function = "xusb";
            nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
            status = "okay";
        };

        e3325-usb3-std-A-SS {
            nvidia,lanes = "usb3-0";
            nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
            status = "okay";
        };

================================================================
So can you please suggest are the above changes fine or still dtsi needs some update to enable USB 2.0 in custom board with TX2 SOM with R32.4.3 sdk.

Any help will be appreciated.