Jetson Orin AGX USB J40 as host

Hi all,

We’re currently having problems configuring USB in port J40 as host in a custom carrier board with Jetson Orgin AGX module p3701-004.

We’re using a direct USB-A port without Cypress USB-PD: only the USB data lines are routed to the SOM USB0 while USB power comes from a fixed 5V regulator.

In the device-tree we’ve enabled only uphy usb2-0 (we do not need usb3-1 for the moment) and set it as host as follows:

padctl@3520000 {
	status = "okay";
        pads {
        	usb2 {
        		status = "okay";
        		lanes {
        			usb2-0 {
        				nvidia,function = "xusb";
        				status = "okay";
        				};
        			};
        		};
        	};
        ports {
        	usb2-0 {
        		mode = "host";
        		vbus-supply=<&vdd_5v0_usb>;
        		status = "okay";
        		};
                };
              };
 
usb@3610000 {
	status = "okay";
	phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>;
	phy-names = "usb2-0";
};

usb@3550000 {
	status = "disabled";
};

Unfortunately, we’re not able to detect any device when connected to the port. Also, despite unconfigure the usb3-0, dmesg shows several errors regarding it.

[    0.142643] usbcore: registered new interface driver usbfs
[    0.142671] usbcore: registered new interface driver hub
[    0.142688] usbcore: registered new device driver usb
[    0.269447] usbcore: registered new interface driver usb-storage
[    3.326245] usbcore: registered new interface driver usbhid
[    3.326252] usbhid: USB HID core driver
[    3.395950] usbcore: registered new interface driver snd-usb-audio
[    3.518886] tegra-xusb 3610000.usb: Adding to iommu group 3
[    3.534744] tegra-xusb 3610000.usb: Firmware timestamp: 2023-02-10 03:48:10 UTC
[    3.534755] tegra-xusb 3610000.usb: xHCI Host Controller
[    3.535112] tegra-xusb 3610000.usb: new USB bus registered, assigned bus number 1
[    3.535857] tegra-xusb 3610000.usb: hcc params 0x0180ff05 hci version 0x120 quirks 0x0000000000010810
[    3.535880] tegra-xusb 3610000.usb: irq 126, io mem 0x03610000
[    3.535988] tegra-xusb 3610000.usb: xHCI Host Controller
[    3.536045] tegra-xusb 3610000.usb: new USB bus registered, assigned bus number 2
[    3.536049] tegra-xusb 3610000.usb: Host supports USB 3.1 Enhanced SuperSpeed
[    7.054127] tegra_xudc: disagrees about version of symbol tegra_xusb_padctl_get
[    7.054136] tegra_xudc: Unknown symbol tegra_xusb_padctl_get (err -22)
[    7.054139] tegra_xudc: disagrees about version of symbol tegra_xusb_padctl_get_usb3_companion
[    7.054140] tegra_xudc: Unknown symbol tegra_xusb_padctl_get_usb3_companion (err -22)
[    7.054147] tegra_xudc: disagrees about version of symbol tegra_xusb_padctl_put
[    7.054148] tegra_xudc: Unknown symbol tegra_xusb_padctl_put (err -22)

Executing lsusb shows the following information:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Could you, please, guide us in how to configure JP40 USB as a host? We think our device tree config seems to be correct, but no kernel event is even reported when we trace them.

Thanks,

Your error has nothing to do device tree setting now.

A “-22” error from kernel driver means your kernel image is not compatible with the kernel module that loaded. It is just that the kernel module here is the usb device driver.

Rest of usb host driver log has no error at all…

xudc driver is for usb device mode to use and xhci driver is for usb host mode to use.

Also, I am not sure why you are still using a “J40” term here. You should not use any NV devkit port location for a custom board anymore…

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