Unable to get the USBs running on custom carrier board

Hello,

I have been trying to configure the device tree for our custom-designed carrier board for Jetsn Orin Nano.
I am modifying this file tegra234-p3768-0000-a0.dtsi according to our carrier board.
Here are the USB connections

Device Tree

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 = "disabled";
				};
				/* 5G Module */
				usb3-2 {
					nvidia,function = "xusb";
					status = "okay";
				};
			};
		};
	};

	ports {
		usb2-0 {/* Goes to MCU */
			//mode = "otg";
			mode = "host";
			status = "okay";
			vbus-supply = <&vdd_3v3_main>; 
		};
		usb2-1 {/* Goes to GNSS Module */
			mode = "host";
			vbus-supply = <&vdd_3v3_main>;
			status = "okay";
		};
		usb2-2 {/* Goes to M2.E */
			mode = "host";
			vbus-supply = <&p3768_vdd_5v_sys>;
			status = "okay";
		};
		usb3-0 {/* Goes to 3.0 Pin */
			nvidia,usb2-companion = <2>;
			vbus-supply = <&vdd_3v3_main>;
			status = "okay";
		};
		usb3-1 {/* Not Used */
			//nvidia,usb2-companion = <2>;
			//vbus-supply = <&vdd_3v3_main>;
			status = "disabled";
		};
		usb3-2 {/* Goes to 5G Module */
			nvidia,usb2-companion = <2>;
			vbus-supply = <&vdd_3v3_main>;
			status = "okay";
		};
	};
};

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-2";
	nvidia,xusb-padctl = <&xusb_padctl>;
};
complete dtsi file

/*

  • Copyright (c) 2022-2023, NVIDIA CORPORATION. All rights reserved.
  • This program is free software; you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation; version 2 of the License.
  • This program is distributed in the hope that it will be useful, but WITHOUT
  • ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  • FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  • more details.
    */
    include <dt-bindings/gpio/tegra234-gpio.h>
    include “dt-bindings/input/input.h”
    include “tegra234-p3768-0000-a0-pwm-fan.dtsi”
    include “tegra234-p3768-0000-a0-pcie.dtsi”
    include “tegra234-p3768-0000-a0-fixed-regulator.dtsi”
    include “tegra234-p3768-audio.dtsi”
    include “tegra234-p3768-camera-rbpcv3-imx477.dtsi”
    include “tegra234-p3768-camera-rbpcv2-imx219.dtsi”

/ {
gpio-keys {
compatible = “gpio-keys”;
gpio-keys,name = “gpio-keys”;
status = “okay”;

	forcerecovery {
		label = "force-recovery";
		gpios = <&tegra_main_gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
		linux,code = <BTN_1>;
	};

	power_key {
		label = "power-key";
		gpios = <&tegra_aon_gpio TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
		linux,code = <KEY_POWER>;
		gpio-key,wakeup;
	};
};

eeprom-manager {
	data-size = <0x100>;
	bus@0 {
		i2c-bus = <&gen1_i2c>;
		eeprom@1 {
			slave-address = <0x57>;
			label = "cvb";
		};
	};

	bus@1 {
		i2c-bus = <&gen2_i2c>;
		eeprom@1 {
			slave-address = <0x50>;
			label = "super-module";
		};
	};
};

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 = "disabled";
				};
				/* 5G Module */
				usb3-2 {
					nvidia,function = "xusb";
					status = "okay";
				};
			};
		};
	};

	ports {
		usb2-0 {/* Goes to MCU */
			//mode = "otg";
			mode = "host";
			status = "okay";
			vbus-supply = <&vdd_3v3_main>; 
		};
		usb2-1 {/* Goes to GNSS Module */
			mode = "host";
			vbus-supply = <&vdd_3v3_main>;
			status = "okay";
		};
		usb2-2 {/* Goes to M2.E */
			mode = "host";
			vbus-supply = <&p3768_vdd_5v_sys>;
			status = "okay";
		};
		usb3-0 {/* Goes to 3.0 Pin */
			nvidia,usb2-companion = <2>;
			vbus-supply = <&vdd_3v3_main>;
			status = "okay";
		};
		usb3-1 {/* Not Used */
			//nvidia,usb2-companion = <2>;
			//vbus-supply = <&vdd_3v3_main>;
			status = "disabled";
		};
		usb3-2 {/* Goes to 5G Module */
			nvidia,usb2-companion = <2>;
			vbus-supply = <&vdd_3v3_main>;
			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-2";
	nvidia,xusb-padctl = <&xusb_padctl>;
};

i2c@c240000{
	status = "okay";
	fusb301@25 {
		compatible = "onsemi,fusb301";
		reg = <0x25>;
		status = "okay";
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <&tegra_main_gpio>;
		interrupts = <TEGRA234_MAIN_GPIO(Z, 1) IRQ_TYPE_LEVEL_LOW>;
		/*
		connector@0 {
			port@0 {
				fusb_p0: endpoint {
					remote-endpoint = <&typec_p0>;
				};
			};
		}; */
	};
};
spi@3210000{ /* SPI1 in 40 pin conn */
	status = "okay";
	spi@0 { /* chip select 0 */
		compatible = "tegra-spidev";
		reg = <0x0>;
		spi-max-frequency = <50000000>;
		controller-data {
			nvidia,enable-hw-based-cs;
			nvidia,rx-clk-tap-delay = <0x10>;
			nvidia,tx-clk-tap-delay = <0x0>;
		};
	};
	spi@1 { /* chip select 1 */
		compatible = "tegra-spidev";
		reg = <0x1>;
		spi-max-frequency = <50000000>;
		controller-data {
			nvidia,enable-hw-based-cs;
			nvidia,rx-clk-tap-delay = <0x10>;
			nvidia,tx-clk-tap-delay = <0x0>;
		};
	};
};

spi@3230000{ /* SPI3 in 40 pin conn */
	status = "okay";
	spi@0 { /* chip select 0 */
		compatible = "tegra-spidev";
		reg = <0x0>;
		spi-max-frequency = <50000000>;
		controller-data {
			nvidia,enable-hw-based-cs;
			nvidia,rx-clk-tap-delay = <0x10>;
			nvidia,tx-clk-tap-delay = <0x0>;
		};
	};
	spi@1 { /* chips select 1 */
		compatible = "tegra-spidev";
		reg = <0x1>;
		spi-max-frequency = <50000000>;
		controller-data {
			nvidia,enable-hw-based-cs;
			nvidia,rx-clk-tap-delay = <0x10>;
			nvidia,tx-clk-tap-delay = <0x0>;
		};
	};
};

serial@3100000 {/* UARTA, for 40 pin header */
	status = "okay";
};

mttcan@c310000 {
	status = "okay";
};

serial@3140000 {
	/* UARTE, Goes to M2.E and also some of the pins to bootstrap */
	status = "okay";
};

serial@31d0000 {/* UARTI - SBSA */
	status = "okay";
};

tachometer@39c0000 {
	status = "okay";
	upper-threshold = <0xfffff>;
	lower-threshold = <0x0>;
};

pwm@3280000 {/* PWM1 40pin header, pin 15 */
	status = "okay";
};

pwm@32a0000 {/* PWM3 - FAN */
	status = "okay";
};

pwm@c340000 { /* PWM4 - OVR */
	status = "disabled";
};

pwm@32c0000 {/* PWM5 40 pin header, pin 33 */
	status = "okay";
};

pwm@32d0000 {/* PWM6 OVR */
	status = "disabled";
};

pwm@32e0000 {/* PWM7 - 40pin header, pin 32 */
	status = "okay";
};

bluedroid_pm {
	status = "disabled";
};

display@13800000 {
	status = "okay";
};

tegra-capture-vi  {
	ports {
		port@0 {
			endpoint {
				port-index = <1>;
			};
		};
	};
};

host1x@13e00000 {
	nvcsi@15a00000 {
		channel@0 {
			ports {
				port@0 {
					endpoint@0 {
						port-index = <1>;
					};
				};
			};
		};
	};
};

cam_i2cmux{
	i2c@0 {
		rbpcv2_imx219_a@10 {
			mode0 {
				tegra_sinterface = "serial_b";
				lane_polarity = "6";
			};
			mode1 {
				tegra_sinterface = "serial_b";
				lane_polarity = "6";
			};
			mode2 {
				tegra_sinterface = "serial_b";
				lane_polarity = "6";
			};
			mode3 {
				tegra_sinterface = "serial_b";
				lane_polarity = "6";
			};
			mode4 {
				tegra_sinterface = "serial_b";
				lane_polarity = "6";
			};
			ports {
				port@0 {
					endpoint {
						port-index = <1>;
					};
				};
			};
		};

		rbpcv3_imx477_a@1a {
			mode0 {
				tegra_sinterface = "serial_b";
				lane_polarity = "6";
			};
			mode1 {
				tegra_sinterface = "serial_b";
				lane_polarity = "6";
			};
			ports {
				port@0 {
					endpoint {
						port-index = <1>;
					};
				};
			};
		};
	};
};

};

Unfortunately, not all the usb devices connect. None of the USB 3.0 ports showing up.
USB 2-2 port is working. USB2-1 is detecting the device but not able to enumerate.

[ 7.256671] usb 1-2: new low-speed USB device number 2 using tegra-xusb
[ 7.393517] usb 1-2: device descriptor read/64, error -71
[ 7.645113] usb 1-2: device descriptor read/64, error -71
[ 7.884875] usb 1-2: new low-speed USB device number 3 using tegra-xusb
[ 8.025521] usb 1-2: device descriptor read/64, error -71
[ 8.269520] usb 1-2: device descriptor read/64, error -71
[ 8.381209] usb usb1-port2: attempt power cycle
[ 8.800674] usb 1-2: new low-speed USB device number 4 using tegra-xusb
[ 8.808708] usb 1-2: Device not responding to setup address.
[ 9.022458] usb 1-2: Device not responding to setup address.
[ 9.236873] usb 1-2: device not accepting address 4, error -71
[ 9.368875] usb 1-2: new low-speed USB device number 5 using tegra-xusb
[ 9.377333] usb 1-2: Device not responding to setup address.
[ 9.590599] usb 1-2: Device not responding to setup address.
[ 9.804972] usb 1-2: device not accepting address 5, error -71
[ 9.811433] usb usb1-port2: unable to enumerate USB device

dmesg | grep usb

[ 1.524117] usbcore: registered new interface driver usbfs
[ 1.529619] usbcore: registered new interface driver hub
[ 1.534940] usbcore: registered new device driver usb
[ 4.217049] usbcore: registered new interface driver r8152
[ 4.222684] usbcore: registered new interface driver asix
[ 4.228235] usbcore: registered new interface driver ax88179_178a
[ 4.234485] usbcore: registered new interface driver cdc_ether
[ 4.240486] usbcore: registered new interface driver net1080
[ 4.246295] usbcore: registered new interface driver cdc_subset
[ 4.252378] usbcore: registered new interface driver zaurus
[ 4.258105] usbcore: registered new interface driver cdc_ncm
[ 4.263919] usbcore: registered new interface driver aqc111
[ 4.286420] tegra-xusb 3610000.xhci: Adding to iommu group 0
[ 4.292834] usbcore: registered new interface driver uas
[ 4.298317] usbcore: registered new interface driver usb-storage
[ 4.310456] usbcore: registered new interface driver xpad
[ 5.561338] usbcore: registered new interface driver usbhid
[ 5.567076] usbhid: USB HID core driver
[ 5.932846] usbcore: registered new interface driver snd-usb-audio
[ 6.912698] tegra-xusb 3610000.xhci: Firmware timestamp: 2023-02-10 03:48:10 UTC, Version: 80.05 release
[ 6.922453] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 6.928019] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 1
[ 6.936712] tegra-xusb 3610000.xhci: hcc params 0x0180ff05 hci version 0x120 quirks 0x0000000000050810
[ 6.946313] tegra-xusb 3610000.xhci: irq 218, io mem 0x03610000
[ 6.952773] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[ 6.961263] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 6.968696] usb usb1: Product: xHCI Host Controller
[ 6.973698] usb usb1: Manufacturer: Linux 5.10.120-tegra xhci-hcd
[ 6.979961] usb usb1: SerialNumber: 3610000.xhci
[ 6.993784] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 6.999339] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 2
[ 7.007127] tegra-xusb 3610000.xhci: Host supports USB 3.1 Enhanced SuperSpeed
[ 7.014649] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[ 7.023158] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 7.030586] usb usb2: Product: xHCI Host Controller
[ 7.035587] usb usb2: Manufacturer: Linux 5.10.120-tegra xhci-hcd
[ 7.041847] usb usb2: SerialNumber: 3610000.xhci
[ 7.256671] usb 1-2: new low-speed USB device number 2 using tegra-xusb
[ 7.393517] usb 1-2: device descriptor read/64, error -71
[ 7.645113] usb 1-2: device descriptor read/64, error -71
[ 7.884875] usb 1-2: new low-speed USB device number 3 using tegra-xusb
[ 8.025521] usb 1-2: device descriptor read/64, error -71
[ 8.269520] usb 1-2: device descriptor read/64, error -71
[ 8.381209] usb usb1-port2: attempt power cycle
[ 8.800674] usb 1-2: new low-speed USB device number 4 using tegra-xusb
[ 8.808708] usb 1-2: Device not responding to setup address.
[ 9.022458] usb 1-2: Device not responding to setup address.
[ 9.236873] usb 1-2: device not accepting address 4, error -71
[ 9.368875] usb 1-2: new low-speed USB device number 5 using tegra-xusb
[ 9.377333] usb 1-2: Device not responding to setup address.
[ 9.590599] usb 1-2: Device not responding to setup address.
[ 9.804972] usb 1-2: device not accepting address 5, error -71
[ 9.811433] usb usb1-port2: unable to enumerate USB device
[ 9.944877] usb 1-3: new full-speed USB device number 6 using tegra-xusb
[ 10.106895] usb 1-3: New USB device found, idVendor=0bda, idProduct=b00c, bcdDevice= 0.00
[ 10.115316] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 10.122655] usb 1-3: Product: Bluetooth Radio
[ 10.127137] usb 1-3: Manufacturer: Realtek
[ 10.131345] usb 1-3: SerialNumber: 00e04c000001
[ 15.922396] fusb301 1-0025: failed to read device id, err : 0xffffff87
[ 15.938086] fusb301 1-0025: fusb301 not support
[ 15.938112] fusb301: probe of 1-0025 failed with error -22
[ 16.093427] tegra-xusb 3610000.xhci: entering ELPG done
[ 16.510827] tegra-xusb 3610000.xhci: Firmware timestamp: 2023-02-10 03:48:10 UTC, Version: 80.05 release
[ 16.761871] usbcore: registered new interface driver btusb
[ 16.768678] usb 1-2: new low-speed USB device number 7 using tegra-xusb
[ 16.898693] rtk_btusb: Realtek Bluetooth USB driver ver 3.1
[ 16.898985] usbcore: registered new interface driver rtk_btusb
[ 16.904764] usb 1-2: device descriptor read/64, error -71
[ 17.156728] usb 1-2: device descriptor read/64, error -71
[ 17.404706] usb 1-2: new low-speed USB device number 8 using tegra-xusb
[ 17.536746] usb 1-2: device descriptor read/64, error -71
[ 17.784762] usb 1-2: device descriptor read/64, error -71
[ 17.903178] usb usb1-port2: attempt power cycle
[ 18.316745] usb 1-2: new low-speed USB device number 9 using tegra-xusb
[ 18.318383] usb 1-2: Device not responding to setup address.
[ 18.530393] usb 1-2: Device not responding to setup address.
[ 18.744747] usb 1-2: device not accepting address 9, error -71
[ 18.880687] usb 1-2: new low-speed USB device number 10 using tegra-xusb
[ 18.882378] usb 1-2: Device not responding to setup address.
[ 19.094656] usb 1-2: Device not responding to setup address.
[ 19.308693] usb 1-2: device not accepting address 10, error -71
[ 19.315079] usb usb1-port2: unable to enumerate USB device
[ 20.700896] tegra-xusb 3610000.xhci: entering ELPG done

dmesg-jetson.txt (63.9 KB)

Could you please help me fixing this issue?

Thank you!

Could you explain first why is your usb3-2 and usb3-0 are using same nvidia,usb2-companion?

This is obvious error that we don’t even need to check your schematic.

We don’t have USB2.0 companions for the 3.0 ports.
I added those just to avoid compilation errors.

USB3.0 ports only have the USB3.0 pins connected.

Then that is the problem.
Such design does not match the spec. A usb3 port must be working along with a usb2 port.

Is there a way we can just get the USB 2.0 ports working?

Disable and remove all your usb3.0 ports and keep only the usb2 port in the device tree.

The rest of things depend on your schematic.

1 Like

I will try that!

Thank you so much!

I did remove the USB3.0 ports from the device tree. but I’m still getting the same error.

DTSI File
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 {
			};
		};
	};

	ports {
		usb2-0 {/* Goes to MCU */
			mode = "host";
			status = "okay";
			vbus-supply = <&vdd_3v3_main>; 
		};
		usb2-1 {/* Goes to GNSS Module */
			mode = "host";
			vbus-supply = <&vdd_3v3_main>;
			status = "okay";
		};
		usb2-2 {/* Goes to M2.E */
			mode = "host";
			vbus-supply = <&p3768_vdd_5v_sys>;
			status = "okay";
		};
	};
};


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}>;
	phy-names = "usb2-0", "usb2-1", "usb2-2";
	nvidia,xusb-padctl = <&xusb_padctl>;
};
lsusb

cm_v2@tegra-ubuntu:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0bda:b00c Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

sudo dmesg | grep usb

cm_v2@tegra-ubuntu:~$ sudo dmesg | grep usb
[sudo] password for cm_v2:
[ 1.530122] usbcore: registered new interface driver usbfs
[ 1.535628] usbcore: registered new interface driver hub
[ 1.540951] usbcore: registered new device driver usb
[ 4.229559] usbcore: registered new interface driver r8152
[ 4.235204] usbcore: registered new interface driver asix
[ 4.240754] usbcore: registered new interface driver ax88179_178a
[ 4.247021] usbcore: registered new interface driver cdc_ether
[ 4.253009] usbcore: registered new interface driver net1080
[ 4.258820] usbcore: registered new interface driver cdc_subset
[ 4.264904] usbcore: registered new interface driver zaurus
[ 4.270640] usbcore: registered new interface driver cdc_ncm
[ 4.276455] usbcore: registered new interface driver aqc111
[ 4.298934] tegra-xusb 3610000.xhci: Adding to iommu group 0
[ 4.305328] usbcore: registered new interface driver uas
[ 4.310801] usbcore: registered new interface driver usb-storage
[ 4.322944] usbcore: registered new interface driver xpad
[ 5.563165] usbcore: registered new interface driver usbhid
[ 5.568896] usbhid: USB HID core driver
[ 5.933710] usbcore: registered new interface driver snd-usb-audio
[ 6.916703] tegra-xusb 3610000.xhci: Firmware timestamp: 2023-02-10 03:48:10 UTC, Version: 80.05 release
[ 6.926519] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 6.932093] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 1
[ 6.940791] tegra-xusb 3610000.xhci: hcc params 0x0180ff05 hci version 0x120 quirks 0x0000000000050810
[ 6.950454] tegra-xusb 3610000.xhci: irq 218, io mem 0x03610000
[ 6.956946] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[ 6.965479] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 6.972942] usb usb1: Product: xHCI Host Controller
[ 6.977964] usb usb1: Manufacturer: Linux 5.10.120-tegra xhci-hcd
[ 6.984258] usb usb1: SerialNumber: 3610000.xhci
[ 6.998066] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 7.003652] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 2
[ 7.011493] tegra-xusb 3610000.xhci: Host supports USB 3.1 Enhanced SuperSpeed
[ 7.019064] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[ 7.027598] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 7.035068] usb usb2: Product: xHCI Host Controller
[ 7.040092] usb usb2: Manufacturer: Linux 5.10.120-tegra xhci-hcd
[ 7.046386] usb usb2: SerialNumber: 3610000.xhci
[ 7.258671] usb 1-2: new low-speed USB device number 2 using tegra-xusb
[ 7.399249] usb 1-2: device descriptor read/64, error -71
[ 7.647517] usb 1-2: device descriptor read/64, error -71
[ 7.886879] usb 1-2: new low-speed USB device number 3 using tegra-xusb
[ 8.027520] usb 1-2: device descriptor read/64, error -71
[ 8.271520] usb 1-2: device descriptor read/64, error -71
[ 8.383204] usb usb1-port2: attempt power cycle
[ 8.798877] usb 1-2: new low-speed USB device number 4 using tegra-xusb
[ 8.813409] usb 1-2: Device not responding to setup address.
[ 9.028680] usb 1-2: Device not responding to setup address.
[ 9.242872] usb 1-2: device not accepting address 4, error -71
[ 9.374886] usb 1-2: new low-speed USB device number 5 using tegra-xusb
[ 9.383265] usb 1-2: Device not responding to setup address.
[ 9.596535] usb 1-2: Device not responding to setup address.
[ 9.810976] usb 1-2: device not accepting address 5, error -71
[ 9.817403] usb usb1-port2: unable to enumerate USB device
[ 9.950879] usb 1-3: new full-speed USB device number 6 using tegra-xusb
[ 10.112317] usb 1-3: New USB device found, idVendor=0bda, idProduct=b00c, bcdDevice= 0.00
[ 10.120740] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 10.128085] usb 1-3: Product: Bluetooth Radio
[ 10.132562] usb 1-3: Manufacturer: Realtek
[ 10.136774] usb 1-3: SerialNumber: 00e04c000001
[ 15.996763] fusb301 1-0025: failed to read device id, err : 0xffffff87
[ 16.007692] fusb301 1-0025: fusb301 not support
[ 16.013284] fusb301: probe of 1-0025 failed with error -22
[ 16.148151] tegra-xusb 3610000.xhci: entering ELPG done
[ 16.582941] tegra-xusb 3610000.xhci: Firmware timestamp: 2023-02-10 03:48:10 UTC, Version: 80.05 release
[ 16.831872] usbcore: registered new interface driver btusb
[ 16.838709] usb 1-2: new low-speed USB device number 7 using tegra-xusb
[ 16.954653] rtk_btusb: Realtek Bluetooth USB driver ver 3.1
[ 16.954907] usbcore: registered new interface driver rtk_btusb
[ 16.974737] usb 1-2: device descriptor read/64, error -71
[ 17.222720] usb 1-2: device descriptor read/64, error -71
[ 17.466689] usb 1-2: new low-speed USB device number 8 using tegra-xusb
[ 17.598762] usb 1-2: device descriptor read/64, error -71
[ 17.846802] usb 1-2: device descriptor read/64, error -71
[ 17.962916] usb usb1-port2: attempt power cycle
[ 18.378706] usb 1-2: new low-speed USB device number 9 using tegra-xusb
[ 18.381239] usb 1-2: Device not responding to setup address.
[ 18.596379] usb 1-2: Device not responding to setup address.
[ 18.810694] usb 1-2: device not accepting address 9, error -71
[ 18.942692] usb 1-2: new low-speed USB device number 10 using tegra-xusb
[ 18.944353] usb 1-2: Device not responding to setup address.
[ 19.156372] usb 1-2: Device not responding to setup address.
[ 19.366684] usb 1-2: device not accepting address 10, error -71
[ 19.373010] usb usb1-port2: unable to enumerate USB device
[ 20.834349] tegra-xusb 3610000.xhci: entering ELPG done

dmesg-2.txt (64.0 KB)

USB2.0 ports are connected to onboard components in the following way:

All the USB devices are powered by a 3.3v regulator.

		vdd_3v3_main: regulator@108 {
		/* 3.3VDC main supply */
		compatible = "regulator-fixed";
		reg = <108>;
		regulator-name = "vdd-3v3-main";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

What could be the problem here? Is the vbus_supply not defined properly?

Thank you!

If you don’t use usb2-0 for device mode, then xudc should not have usb2-0 there.

Sorry for the confusion. I have commented out the xudc part and it is no actually not being used.

Now I have removed all the commented lines. Could you please have a look again?

DTSI File
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 {
			};
		};
	};

	ports {
		usb2-0 {/* Goes to MCU */
			mode = "host";
			status = "okay";
			vbus-supply = <&vdd_3v3_main>; 
		};
		usb2-1 {/* Goes to GNSS Module */
			mode = "host";
			vbus-supply = <&vdd_3v3_main>;
			status = "okay";
		};
		usb2-2 {/* Goes to M2.E */
			mode = "host";
			vbus-supply = <&p3768_vdd_5v_sys>;
			status = "okay";
		};
	};
};


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}>;
	phy-names = "usb2-0", "usb2-1", "usb2-2";
	nvidia,xusb-padctl = <&xusb_padctl>;
};

There is nothing to check. The software configuration looks correct.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.