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!