Can't enable PPS on Jetson AGX Xavier

Hi everyone,

I’m trying to enable PPS on jetson AGX Xavier on the pin 24 from the header pins. I have a ublox SIMPLERTK2B gps connected with usb, timepulse pin connected to pin 24 and grounds are also connected. Also the jetson runs Jetpack 5.1 and the l4t driver I’ve downloaded is Jetson Linux 35.2.1

I have followed this guide to build the custom kernel. The changes I’ve made to the kernel are based on this and this.

More specifically I have made these changes to the kernel config

# PPS support
CONFIG_PPS=y
CONFIG_PPS_DEBUG=y
# PPS clients support
CONFIG_PPS_CLIENT_KTIMER=y
CONFIG_PPS_CLIENT_LDISC=y
CONFIG_PPS_CLIENT_GPIO=y

and added the bellow code to /Linux_for_Tegra/sources/hardware/nvidia/soc/t23x/kernel-dts/tegra234-soc/tegra234-soc-base.dtsi

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

there is also a folder named t19x, but i have added the code only to t23x. Also I double checked that gpio 206 is pin 24 from the expansion header mapping.

As a last thing I’ve tried editing the dts files 2 times one time for tegra194-pxxxx files and one for tegra234-pxxxx with the method that is described in the solution post of this thread but i cant make the PPS work.

The way I am testing it is with gpsmon, it says PPS = n/a although all the other gps info is populated. In the /dev folder i can see both pps0 and pps1.

When I run ppstest /dev/pps0 I can see some data but for pps1 I cant. cgps is also giving pps: false. sudo cat /dev/ttyACM0 gives me the NMEA lines.

Is there anything else i could be missing?

Any help would be appreciated
Thanks

hello user64336,

you’re adding the code snippet to the wrong dtsi files.
let me double check, you’re working with Xavier series, right?
it’s Xavier using t194; whereas t234 is used by Orin series.

BTW,
you should also configure CONFIG_PPS_CLIENT_GPIO=m, please check this is set in tegra_defconfig as well
please build, and manually copy device tree blob to target. after adding the PPS GPIO with insmod, /dev/pps1 should shown.
you could test with pps utility, $ sudo apt install pps-tools
for example, $ sudo ppstest /dev/pps0 to check whether you’re able to get one timer trigger for each pulse.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.