Jetson AGX Orin Carrier Board – USB Hub/PD Controller Functionality Issue

Hi,

We have designed a custom carrier board for the Jetson AGX Orin SOM, based on the reference design files provided by NVIDIA (P3737).

We followed the same pin connections and used similar components as in the reference design. However, we are facing an issue: the USB interface from the hub (which has four Type-A USB ports) is not working.

We have also implemented a USB PD controller, but the USB ports are still not functional. I suspect that the PD controller may need to be programmed in order to enable USB functionality, which we have not done yet.

My question is: Why is the USB hub interface not working? Shouldn’t the basic USB hub functionality work without programming the PD controller?

For reference, on the NVIDIA developer kit, we are able to access USB devices from all interfaces without any issue

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, I’ll try to help you troubleshoot the issue with the USB hub interface on your custom carrier board.

Firstly, it’s great that you’ve followed the reference design files and used similar components as in the NVIDIA P3737 reference design. However, there are a few potential reasons why the USB hub interface might not be working:

  1. UPHY lane mapping and compatibility: As mentioned in the context, the Jetson AGX Orin series supports up to four enhanced SuperSpeed Universal Serial Bus (USB) ports, but not all of these ports can be used due to UPHY lane sharing among PCIE, UFS, and XUSB. You need to verify the UPHY lane mapping and compatibility between your custom board and the P3737 reference design by consulting the NVIDIA team. It’s possible that the UPHY lane configuration on your custom board is not compatible with the USB hub interface.
  2. USB PD controller programming: You suspect that the PD controller might need to be programmed to enable USB functionality. This is a plausible reason, as the USB PD controller is responsible for managing power delivery to the USB ports. If the PD controller is not properly programmed, it might not enable the USB ports. However, as you mentioned, the basic USB hub functionality should work without programming the PD controller.
  3. USB hub configuration: The context mentions that the NVIDIA developer kit allows accessing USB devices from all interfaces without any issue. This suggests that the USB hub interface on the developer kit is properly configured. You might need to compare the USB hub configuration on your custom board with the one on the developer kit to identify any differences.

To troubleshoot the issue, I recommend the following steps:

  1. Verify the UPHY lane mapping and compatibility between your custom board and the P3737 reference design by consulting the NVIDIA team.
  2. Check the USB hub configuration on your custom board and compare it with the one on the NVIDIA developer kit.
  3. Program the USB PD controller according to the NVIDIA documentation and see if it enables the USB ports.
  4. If none of the above steps resolve the issue, try using a USB analyzer or a logic analyzer to capture the USB traffic and identify any potential issues with the USB hub interface.

In summary, the USB hub interface on your custom carrier board might not be working due to UPHY lane mapping and compatibility issues, USB PD controller programming requirements, or differences in USB hub configuration compared to the NVIDIA developer kit. By verifying the UPHY lane mapping, checking the USB hub configuration, and programming the USB PD controller, you should be able to identify and resolve the issue.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

No, it won’t work if it is Jetpack6.

Jetpack6 has dependencies check on every node in the device tree. So if one USB port is not ready to work then every other USB port will not work either.

thanks for you response,

Yes, it is jetpack6,

When I connect this SOM to the dev kit carrier board, the USB interface is accessible. As you mentioned, the PD controller on the dev kit is already programmed.

I have some doubts regarding our custom carrier board:

  1. On our carrier board, the A1V1 (1.1V) supply to the USB hub IC is not working. Will the absence of this 1.1V affect the hub operation? The converter’s input and enable signals are okay, and I am also getting a 5V PG signal. However, the 1.1V output is not present.

  2. Will the USB interfaces from the hub work if we use JetPack 5? Currently, we don’t have the programming tool hardware to program the PD controller, so I am checking if JetPack 5 can bypass this.

  3. After programming the PD controller, will all the USB interfaces Controlled from it, work correctly, similar to the dev kit?

thanks,

  1. I am not hardware engineer so cannot answer your question about hardware side setting. Also, since it is related to hub, I would say maybe you should check with hub vendor.

  2. The correct way is you should follow our adaptation guide to configure device tree to match your board. It does not matter whether you are using JP5 or 6. This is always a necessary step. If you want to disable type C PD, then the document has this method too.

  3. No guarantee. I have heard similar comments from lots of users “I am using similar/same design as devkit” but turned out most of them are not. Only (2) is the correct way.

I will try and let you know.

Thanks,

we have resolved 1.1V hub input , now that voltage is okay.

I have installed JetPack 5 on the SOM module and powered up the setup. While testing the USB interface from the hub, I observed the following:

  • When I connect any USB device (e.g., a mouse) on J24 or J25, it is not detected.
  • I suspected the OCP signals:
    • The OCP signal from U21 (to the hub) is HIGH.
    • The OCP signal from U88 (to the hub) is LOW.


  • The USB hub power enable signals (HUB_DSP34_PWR_EN, HUB_DSP12_PWR_EN) are not coming up.
  • However, the SOM is able to detect the 4-port hub itself, as seen in the attached logs.
    boot_log_for_usb.txt (97.4 KB)
    USb dmesg_log.txt (3.6 KB)

We have changed the USB Type-A connector to a USB Type-C connector on the carrier board we designed. Will this require any configuration in the SOM for the USB hub to work?

AMR_JAO_CARRIER_CARD_USB.pdf (186.2 KB)

FYI, still we have not yet programmed PD controller IC.

thanks,

Hi,

Just to clarify. Some of the things you are using there are not part we could guide you.

For example, that hub is from 3rdparty vendor. Controlling it may not be fully from NVIDIA driver.
What do you expect us to help for that HUB_DSP34_PWR_EN and HUB_DSP12_PWR_EN? Is that some part of GPIO from Jetson?

No , it is not a part of Jetson

We have programmed the chip PD controller CYPD4226 then, power is coming to the usb connectors J39 and J40. But mouse and keyboard i have connected to that. SOM is not enumerating this devices. This ports are related to the USB 0 And USB1 from the SOM.
Should we need to change the any device tree configuration to work.

Could you give out a simple block diagram of how your connection is like and what device could not be enumerated?

As I already said, part of the things there are not NVIDIA driver to handle. It means none of the things could be resolved by writing device tree.

What we need to do now is clarify what thing we could check and what we could not check.

Hi,

please inspect this,


This is my actual USB setup: I connected the keyboard and mouse to J40 through a USB-C hub. The SOM is not detecting the keyboard or mouse (the mouse LED doesn’t light), although the hub is powered — I can see the 5 V USB supply and the hub’s LEDs are on. I suspect the devices are not being enumerated by the SOM. I’ve already flashed the PD controller with NVIDIA’s firmware file CYPD4226-40LQXI_notebook.hex

Hi,

To clarify. I don’t know what is the carrier board you are using.
So actually I don’t know what are J40 and J39 in your block diagram.

Please explain what are the pin from SOM used for J40 and J39. Your schematic only gave us the connector side info but we actually don’t know what pin from SOM are connected to them.

Also, is that J100 hub able to get removed and try other kind of device instead of that hub?

Also, please share me the dmesg without parsing anything.

From your previous log, I saw PD controller gave out errors. And I don’t get any new log afterwards.

Please be aware that we need logs to tell situation but not just your symptom description.

[ 14.510467] ucsi_ccg 1-0008: i2c_transfer failed -11
[ 14.516086] ucsi_ccg 1-0008: ucsi_ccg_init failed - -11
[ 14.535072] ucsi_ccg: probe of 1-0008 failed with error -11

Hi,

Please find below the reference to inspect the USB connection from the SOM pins (J40 and J39). These Type-C USB connectors are controlled via the PD controller.

USB_PD_Controller_Reference_query.pdf (206.8 KB)

Is this your custom carrier board or NV devkit…?

I am not sure why you are sharing a NVIDIA engineer their own NVIDIA document…

If this is your own board, please share your own schematic.

If you are sure your design is same as NV devkit, put these USB devices to NV devkit and see if you could reproduce same issue…

custom board only. but we have followed your P3737 design files.

sorry, I thought I was explaining it in the required way to clarify my query.

USB PD controller_design Application2.pdf (294.8 KB)

that’s what i came for help,
I’m seeing USB-C PD behavior on our custom carrier board that differs from the dev kit (dev kit works fine). We have already flashed the CYPD4226 PD firmware per the adaptation & bring-up guide. Current issues:

  1. J40 (USB-C, acting as DFP): USBC2_VBUS comes up when the Type-C plug is inserted in one orientation, but not when inserted the other way. When VBUS is present, the port supplies power but devices (mouse/keyboard) do not enumerate.
  2. J39 (USB-C): exhibits the same orientation-dependent behavior. USBC1_VBUS toggles unpredictably in one orientation, and in the opposite orientation VBUS does not come up at all.

Hi,

Please stop sending me NVIDIA devkit schematic. This does not help…

It only tells that your board actually not same as NV devkit. No matter how similar you said it is. We’ve seen lots of users talking in same way as you did but turns out those boards are not same.

Please check with the type C PD vendor. There is nothing we could check in such way.

Okay, sure

Finally one question,

USB interfaces from SOM Which are controlling via PD controller does required any device tree update or it work directly. I am using jetpack 5

If your board is really “same as NV devkit”, then you don’t need to change anything in device tree.

Default device tree would work on NV devkit. Even you did same test on your side too.

Thanks for your response.