PPS input for Jetson AGX Orin Devkit, once more

Hello,

I’m trying to set up a PPS input for the Jetson AGX Orin Devkit.
I connected the PPS signal to pin 23 of the 40-pin header. I then added the following device tree overlay:

/dts-v1/;
/plugin/;

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

    fragment@0 {
        target-path = "/";
        __overlay__ {
            pps: pps-gpio {
                status = "okay";
                compatible = "pps-gpio";
                gpios = <&gpio 155 1>;
                assert-falling-edge;
            };
        };
    };
};

I calculated the ID 155 from the pinmux sheet and the definition in the kernel headers.
With this, a pps input shows up in /dev/pps1, and I get the following in the kernel logs:

[    4.168319] pps pps1: new PPS source pps-gpio.-1
[    4.168353] pps pps1: Registered IRQ 233 as PPS source

If I run watch -n 0.1 'cat /proc/interrupts | grep 233' I can see that I get one interrupt per second from that pin.

If I however try to run ppstest it times out:

# sudo ppstest /dev/pps1
trying PPS source "/dev/pps1"
found PPS source "/dev/pps1"
ok, found 1 source(s), now start fetching data...
time_pps_fetch() error -1 (Connection timed out)
time_pps_fetch() error -1 (Connection timed out)
time_pps_fetch() error -1 (Connection timed out)
time_pps_fetch() error -1 (Connection timed out)

Shouldn’t this be enough to get ppstest to work? What am I missing?

Thank you in advance!

Ole

Hi salscheider,

What’s the Jetpack version in use?
Are you using the GPS module as PPS source?

Have you also configured the pinmux for PZ.03 before use?

I’m on Jetpack 6.2. Yes, the PPS signal comes from a GPS receiver(ublox F9P).

No, I did not configure the pinmux. If I understand the pinmux sheet and documentation correctly, this pin should already have the correct configuration by default on the AGX Orin Developer Kit (I did not activate the special function)? Or what would I have to change there?

FYI, it seems to work with gpios = <&gpio 155 0>; instead of gpios = <&gpio 155 1>;