Unable to Configure PPS Output on Jetson AGX Orin Developer Kit (JetPack 5.x/6.x)

Hello NVIDIA Community,

I am trying to configure a PPS (Pulse Per Second) output on the Jetson AGX Orin Developer Kit, and after extensive troubleshooting, I have not been able to get it working. I am posting here in hopes of getting guidance or confirmation about the current state of PPS GPIO support on AGX Orin.


My Goal

  • Generate a PPS output signal on a GPIO pin (preferably on the 40-pin header) for time synchronization purposes.

What I Have Tried

Kernel and Module Setup

  • Verified kernel config:
    • CONFIG_PPS=y
    • CONFIG_PPS_CLIENT_GPIO=m (also tried =y)
  • Built and installed the pps-gpio module for my running kernel.
  • Confirmed kernel and module versions match.

Device Tree Overlay

  • Created and compiled overlays for several candidate pins (Pin 13, 22, 31, etc.), e.g.:

text

/dts-v1/;
/plugin/;

/ {
    overlay-name = "My PPS GPIO Overlay";
    jetson-header-name = "Jetson 40pin Header";
    compatible = "nvidia,p3737-0000+p3701-0005";

    fragment@0 {
        target-path = "/";
        __overlay__ {
            pps {
                compatible = "pps-gpio";
                gpios = <&tegra_main_gpio 316 0>; /* Pin 31, GPIO3_PAA.00, active high */
                status = "okay";
            };
        };
    };

    fragment@1 {
        target = <&pinmux>;
        __overlay__ {
            pps_pinmux {
                nvidia,pins = "soc_gpio00_paa0";
                nvidia,function = "gpio";
                nvidia,tristate = <0>;     // Output for PPS out
                nvidia,enable-input = <0>; // Output
            };
        };
    };
};
  • Added overlay to /boot/extlinux/extlinux.conf via FDTOVERLAYS.
  • Rebooted after each change.

Module Loading

  • Installed the module to /lib/modules/$(uname -r)/kernel/drivers/pps/clients/.
  • Ran sudo depmod -a.
  • Loaded with sudo modprobe pps_gpio.

Verification Steps

  • Checked for /dev/pps0 (not present except for ktimer).
  • Checked lsmod, /proc/modules, and dmesg | grep pps—no sign of pps_gpio being loaded or binding.
  • Checked /proc/device-tree/pps—node not present.
  • Verified pin is not in use by another driver (/sys/kernel/debug/gpio).
  • Confirmed overlay includes overlay-name, jetson-header-name, and correct compatible string.

Other Steps

  • Tried multiple pins (13, 15, 22, 31, etc.).
  • Attempted both input and output pinmux settings.
  • Used Jetson-IO (overlay not listed).
  • Did not do a full device reflash (would prefer not to erase system).

Observed Behavior

  • No /dev/pps0 for GPIO appears, only for ktimer.
  • No relevant dmesg output from pps_gpio.
  • Overlay node does not appear in /proc/device-tree/.
  • No errors, but also no sign that the driver is binding to the overlay.

Questions

  1. Is hardware PPS output (or even input) on a GPIO supported on AGX Orin with JetPack 5.x/6.x?
  2. Are there any known workarounds or required steps to get PPS-GPIO working on AGX Orin?
  3. Is a full device reflash required for overlays/pinmux changes to take effect on Orin?
  4. Is there any official documentation or example overlay for PPS output on Orin?
  5. If not supported, is there a recommended approach for generating a hardware-accurate PPS output from Orin?

System Details

  • Jetson AGX Orin Developer Kit
  • JetPack: [your version, e.g., 6.0 or 5.1.2]
  • Kernel: uname -r = [your kernel version, e.g., 5.10.120-tegra]
  • Compatible string: nvidia,p3737-0000+p3701-0005

Any advice, official clarification, or working examples would be greatly appreciated!

Thank you,
Sharon Salmon

Hi Sharon,
Are you asking issue for a customer or your own?

Hi,
For me

Hi ssalmon,

What’s the exact Jetpack release you are using?

Are you using PAA.00 as PPS source and try to control it manually?
If so, why you configure the same for PPS input?
If not, what’s your PPS source.
Please share the block diagram of your connection for further check.

You can also refer to the following topics for PPS porting:
PPS input to GPIO on Jetpack 6.1 - #8 by erik93
Pps_gpio interrupt not asserted - #8 by KevinFFF
Enable PPS on Jetson Linux 35.3.1 for Xavier AGX