Adding a Second USB-C Device to Jetson Orin Nano Custom Carrier Board

Issue Overview

Users are seeking guidance on how to add a second USB-C device to the device tree for the Nvidia Jetson Orin Nano custom carrier board. The discussion focuses on configuring the necessary connections and interrupts for the additional USB-C controller.

  • Symptoms: Users are unsure about how to properly configure the device tree to recognize and utilize a second USB-C controller, particularly regarding interrupt mapping and I2C address allocation.

  • Context: The issue arises during the hardware design phase when users attempt to integrate additional USB-C functionality into their custom carrier board for the Jetson Orin Nano.

  • Hardware/Software Specifications:

    • Device: Nvidia Jetson Orin Nano
    • Existing USB-C Controller: FUSB301
    • Pins in Use:
      • Existing controller connected to pins 185, 187, and 87.
      • New controller connected to pins 189, 191, and 212.
  • Frequency: This inquiry is likely common among developers designing custom hardware solutions for the Jetson platform.

  • Impact on User Experience: Difficulty in configuring additional hardware can delay development and prevent users from fully utilizing their designs.

Possible Causes

Several factors may contribute to the challenges in adding a second USB-C device:

  • Device Tree Configuration Errors: Incorrect or incomplete entries in the device tree may prevent the system from recognizing the new USB-C controller.

  • I2C Address Conflicts: Users may not know how to allocate unique I2C addresses for multiple devices, leading to conflicts that can disrupt communication.

  • Interrupt Mapping Issues: Uncertainty about which GPIO pins correspond to interrupts for the new controller can complicate setup.

  • Lack of Documentation: Insufficient documentation regarding pin mappings and device tree configurations can lead to confusion during implementation.

Troubleshooting Steps, Solutions & Fixes

To assist users in adding a second USB-C device to their Nvidia Jetson Orin Nano custom carrier board, follow these steps:

  1. Review Device Tree Configuration:

    • Ensure that your device tree includes entries for both USB-C controllers. For example:
      i2c@c240000 {
          status = "okay";
          fusb301@25 {
              compatible = "onsemi,fusb301";
              reg = <0x25>; // Ensure this address is unique
              status = "okay";
              #address-cells = <1>;
              #size-cells = <0>;
              interrupt-parent = <&tegra_main_gpio>;
              interrupts = <TEGRA234_MAIN_GPIO(Z, 1) IRQ_TYPE_LEVEL_LOW>;
          };
          fusb301@26 {
              compatible = "onsemi,fusb301";
              reg = <0x26>; // Assign a new I2C address
              status = "okay";
              interrupt-parent = <&tegra_main_gpio>;
              interrupts = <TEGRA234_MAIN_GPIO(Z, 2) IRQ_TYPE_LEVEL_LOW>; // Example GPIO pin
          };
      };
      
  2. Check I2C Address Allocation:

    • Ensure that each I2C device has a unique address. You can refer to datasheets or documentation for your specific devices to determine valid addresses.
  3. Consult Pinmux Documentation:

    • Refer to the pinmux spreadsheet provided by Nvidia for mapping GPIO pins and understanding which pins correspond to specific functions. This document should help identify how I2C addresses map to physical pins on the SODIMM connector.
  4. Use Debugging Tools:

    • If available, use tools such as i2cdetect to scan for connected I2C devices and verify that your new USB-C controller is recognized by the system:
      sudo apt-get install i2c-tools
      i2cdetect -y 1
      
  5. Engage with Community Resources:

    • Reach out on community forums or Nvidia support channels for additional insights from users who may have faced similar issues with hardware configurations.
  6. Test Configuration Changes:

    • After making changes to the device tree, recompile it and reboot your Jetson device to see if it recognizes the new USB-C controller correctly.
  7. Document Findings and Solutions:

    • As you gather information and resolve issues, document your findings for future reference or to assist others who may encounter similar challenges with their setups.
  8. Unresolved Aspects:

    • Users may still need clarification regarding specific configurations required for successful operation of multiple USB-C controllers.
    • Further investigation into potential hardware limitations or defects may also be necessary if standard troubleshooting does not resolve the problem.

By following these steps, users should be able to successfully configure and utilize a second USB-C device on their Nvidia Jetson Orin Nano custom carrier board.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *