Jetson Orin NX - Figure out the correct PWM controller (chip) for GPIO07 and the location of dts file

To whom it may concern,

I’d like to summarize my questions below:

  1. Which pwmchip should I use for GPIO07 (Module Pin 206, Header Pin 32)?
  2. Where is the default DTS or DTSI file located?

Additional context for Question 1:

  • JetPack version: nvidia-jetpack 6.2+b77

  • Below is the current default status of the PWM devices:(Insert relevant output or attach)

  • Here is the current pwmchip information:(Insert relevant output or attach)

From both Jetson-Orin-Nano-DevKit-Carrier-Board-Specification_SP-11324-001_v1.3.pdf, I’ve confirmed that GPIO07 maps to Module Pin 206 and Header Pin 32, as shown below.
However, I haven’t been able to determine which pwmchip corresponds to GPIO07.

Could you please point me to any documentation or resources that can help clarify this? I would greatly appreciate any guidance you can provide.

Thank you for your time and assistance. Please let me know if you need any additional details or have further questions.

Sincerely,

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

To address your questions regarding the Jetson Orin NX module, particularly concerning Module Pin 206 and Header Pin 32, and to clarify the default file location and other related queries, let’s break down the information and provide a structured answer.

  1. Module Pin 206 and Header Pin 32:

    • The Jetson Orin NX and Nano series have specific pinouts and configurations that can be found in the official NVIDIA documentation, such as the “Jetson Orin NX and Jetson Orin Nano Series Pinmux” document. This document should provide detailed information on the pin configurations, including any specific mappings or functions assigned to Module Pin 206 and Header Pin 32.
    • For specific pin functions like GPIO, it’s essential to consult the pinmux configuration tables provided in the documentation. These tables will help you identify which pins are designated as GPIO and their corresponding numbers (e.g., GPIO07).
  2. Default File Location:

    • The default files for Jetson devices, including configuration files and pinmux settings, are typically found within the device’s file system after installing the JetPack SDK. The exact location can vary depending on the JetPack version and the specific device model.
    • For JetPack 6, which supports the Jetson Orin series, you can expect to find relevant configuration files and documentation within the SDK’s installation directory or through the NVIDIA developer website.
  3. PWM Devices and GPIO Configuration:

    • The configuration and status of PWM devices, as well as GPIO pins, can be managed and inspected using tools provided with the JetPack SDK. The “Jetson AGX Orin pinmux spreadsheet” and other documentation can help you understand the default configurations and how to modify them.
    • For dynamically changing GPIO pin settings, you can use the “GPIO tools” provided with the JetPack SDK.
  4. Documentation and Resources:

    • Jetson Orin NX and Jetson Orin Nano Series Pinmux: This document is crucial for understanding the pin configurations of the Jetson Orin NX and Nano modules.
    • JetPack SDK Documentation: The official JetPack SDK documentation provides comprehensive guides on installing, configuring, and developing applications for Jetson devices, including information on pinmux configuration and GPIO management.
    • NVIDIA Developer Website: The NVIDIA developer website is a valuable resource for finding documentation, software development kits (SDKs), and community forums where you can ask questions and find answers from experienced developers and NVIDIA support staff.
  5. Determining GPIO07 Correspondence:

    • To determine which pin corresponds to GPIO07, refer to the pinmux configuration tables in the “Jetson Orin NX and Jetson Orin Nano Series Pinmux” document. These tables should provide a clear mapping of GPIO numbers to physical pins on the module.
    • If you’re still unsure after consulting the documentation, consider reaching out to NVIDIA support or posting a question on the NVIDIA developer forums, where community members or NVIDIA staff can provide further clarification.

In summary, for detailed information on Module Pin 206, Header Pin 32, and GPIO configurations, including GPIO07, it’s essential to consult the official NVIDIA documentation and resources, such as the Jetson Orin NX and Nano Series Pinmux document and the JetPack SDK documentation. These resources should provide the necessary information to configure and manage your Jetson Orin NX module effectively.

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

Hi will.huang.oksi,

Maybe you can refer to https://elinux.org/Jetson/L4T/peripheral/#Mapping_4) for their mapping.

You can find the source for pwm@32e0000 in tegra234.dtsi, or just configure it in tegra234-p3768-0000+p3767-xxxx-nv-common.dtsi

Hello @KevinFFF
thank you for sharing the link which is very helpful!!!

Here is my follow-up question and let me know if I should create another thread instead.

I am configuring PWM output on GPIO07 (Pin 32 / AUD_MCLK / PG.06) using the 32e0000.pwm controller (pwmchip3) on a Jetson Orin NX.
My goal is to generate a 67.5 kHz PWM signal at 50% duty cycle.

I confirmed the pinmux is correctly configured via:

sudo busybox devmem 0x0243D000 w 0x4
cd /sys/class/pwm/pwmchip3
echo 0 | sudo tee export
cd pwm0
echo 29850 | sudo tee /sys/class/pwm/pwmchip3/pwm0/period
echo 14925 | sudo tee /sys/class/pwm/pwmchip3/pwm0/duty_cycle
echo 1     | sudo tee enable

and the PWM output does appear on the expected pin.

I tested the following period and duty_cycle values:

  • period = 14925 ns, duty_cycle = 7462 ns → measured: 132.8 kHz
  • period = 29576 ns, duty_cycle = 14788 ns → measured: 66.4 kHz
  • period = 29308 ns, duty_cycle = 14654 ns → still 66.4 kHz
  • period = 29800 ns, duty_cycle = 14900 ns → still 66.4 kHz
  • period = 29850 ns, duty_cycle = 14925 ns → still 66.4 kHz

Despite varying the period across a 500 ns range, the output frequency remains locked at 66.4 kHz, which suggests quantization to a fixed base clock, likely 132.8 MHz, with integer divisors.

Could you please clarify:

  1. What is the exact base clock driving 32e0000.pwm on the Orin NX?
  2. Is it possible to achieve more granular PWM frequencies (e.g. 67.5 kHz) using this controller?
  3. Can we configure a custom clock divisor or adjust the parent clock rate to improve resolution?

Again, thank you for your precious time on this matter.