USB drivers not probing in our jetson tx2 custom board

Hi,

When I connect Jetson tx2 on carrier board RTSO-9003U from realtimes(RTSO-9003U), It successfully probes all the USB ports,
RTSO-9003U.txt (3.7 KB)

When I connect the Jetson tx2 on our custom board it is not probing the USB hardware, Please check why it is not probing the USB…
Customboard.txt (3.0 KB)

Since we are using only using usb0 otg port as device/host in our end device, This are the signal conditions…

USB0_D+ = connected to USB port
USB0_D- = connected to USB port
USB0_VBUS_DET = Connected to 5V
USB0_OTG_ID = Not connected floating
USB0_EN_OC = Not connected floating
All other USB connection are pulled low

Why USB probing is failed, please help

Thanks

Hi,

Welcome to the NVIDIA Developer forums. Your issue would be best served if posted in the Jetson Nano category. I will move it there for you.

Cheers,
Tom K

Hi,

It is not just related to which hardware is in use. If you change the board design, then the software side change is required.

Even changing a power source may also need to change the software. Please refer to the adaptation guide inside our developer guide document and change the device tree to match your board.

After spending some time on debugging the USB code
I figured out that ,if I changed the following linw TEGRA186_UTMI_PHYS to 2, Then usb0 otg starts working,

— a/drivers/phy/tegra/xusb-tegra186.c
+++ b/drivers/phy/tegra/xusb-tegra186.c
@@ -28,7 +28,7 @@
#include “xusb.h”

#define TEGRA186_USB3_PHYS (3)
-#define TEGRA186_UTMI_PHYS (3)
+#define TEGRA186_UTMI_PHYS (2)
#define TEGRA186_HSIC_PHYS (1)
#define TEGRA186_OC_PIN_NUM (2)

I saw the failure come from the following file, if TEGRA186_UTMI_PHYS is 3
in file
drivers/phy/tegra/xusb.c

function
static int tegra_xusb_usb2_port_parse_dt (struct tegra_xusb_usb2_port *usb2)

line
usb2->supply = devm_regulator_get(&port->dev, “vbus”);
if (IS_ERR(usb2->supply))
return PTR_ERR(usb2->supply);

==>Can you help me with what dts entry, I have to change, to get the same thing resolved… I did not understand how to change dts only, to do the same thing work without actually changing the kernel code…

==>Also, what does it means to change TEGRA186_UTMI_PHYS to 2 … what happens to the USB subsystem initialization… Can you explain

Thanks

Hi,

Your direction is wrong. You don’t need to directly modify the driver code… Only device tree is needed.

I already shared the suggestion in previous comment.

I got the usb0 otg working, by disabling all the ports as below …
patch.txt (5.2 KB)

It is reasonable.

USB probe needs to be fully correct. For example, if there is an error in one port configuration, then other usb port will be dead.

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