Enabling PPS on Xavier AGX

So It is working now!

I followed gtj’s steps from Time sensitive networking [TSN] on NX - #40 by _av with a few modifications (really just the names to work with the AGX instead of the NX).

I saved this file to /boot/pps.dts where the pin has been set to 24 on the 40 pin header.

/dts-v1/;
/plugin/;

/ {
    overlay-name = "Jetson PPS";
    compatible = "p2822-0000+p2888-0001,p2972-0000-devkit,devboard";
    fragment {
        target-path = "/";
        __overlay__ {
                        pps: pps_gpio {
                                compatible = "pps-gpio";
                                gpios = <&tegra_main_gpio 206 1>;
                                assert-falling-edge;
                                status = "okay";
                        };
        };
    };
};

Then compiled the dts files and ignored the warnings that I don’t understand…

 sudo dtc -I dts -O dtb -@ -o pps.dtbo pps.dts

Then created the custom dtb

sudo fdtoverlay -i tegra194-p2888-0001-p2822-0000.dtb -o tegra194-p2888-0001-p2822-0000-user-custom.dtb tegra194-p2888-0001-p2822-0000-hdr40.dtbo pps.dtbo

Finally edited /boot/extlinux/extlinux.conf by adding the extra entry:

    LINUX ...
    INITRD ...
    FDT /boot/tegra194-p3668-all-p3509-0000-user-custom.dtb
    APPEND ...

and rebooted.

Thanks @gtj and @Andrey1984

Sorry if this is a bit of a duplicate question (although I guess it’s specific to the AGX as opposed to the NX).

What I don’t understand is why does the device tree need to be edited after the kernel has been flashed?

Editing ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_P3448/Linux_for_Tegra/sources/hardware/nvidia/soc/t210/kernel-dts/tegra210-soc/tegra210-soc-base.dtsi to include

pps: pps_gpio {
    compatible = "pps-gpio";
    gpios = <&tegra_main_gpio 206 1>;
    assert-falling-edge;
    status = "okay";
    };

should be the same as including it after the flash by editing the device tree overlay right?