Hello,
We are using gpio(B,7) i.e. physical pin 18 in J41 as PPS input from ardusimple simpleRTK2B.
Below is our environment:
Board: Jetson Nano Developer kit B01
Model: P3450
L4T 32.6.1
Kernel 4.9 (L4T Driver Package (BSP) Sources)
I have followed steps in Enabling PPS on Jetson Nano and configured the device tree & enabled PPS.
#
# PPS support
#
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set
#
# PPS clients support
#
CONFIG_PPS_CLIENT_KTIMER=y
CONFIG_PPS_CLIENT_LDISC=y
CONFIG_PPS_CLIENT_GPIO=y
I have added pps entry to tegra210-soc-base.dtsi (as separate node towards end of file)
pps {
gpios = <&gpio TEGRA_GPIO(B, 7) 0>;
compatible = "pps-gpio";
status = "okay";
};
For flashing I have used jetson-disk-image-creator.sh
file in environment provided by Jetson-210_Linux_R32.6.1_aarch64.tbz2
(rootfs from same release i.e. 32.6.1 was taken)
After copying kernel Image and dts files in above environment, I have run below commands o create the image file for flashing the sd card,
$ sudo ./apply_binaries.sh
$ cd tools
$ sudo ./jetson-disk-image-creator.sh -o sd-blob-img -b jetson-nano -r 300
I checked the dmesg after booting,
dmesg output: showed pps modules. however there is no IRQ registered msg
$ dmesg | grep -i pps
[ 0.603840] pps_core: LinuxPPS API ver. 1 registered
[ 0.603846] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 1.362662] pps pps0: new PPS source ktimer
[ 1.362809] pps pps0: ktimer PPS source registered
[ 1.362813] pps_ldisc: PPS line discipline registered
While executingsudo ppstest /dev/pps0, I get same output whether the gps pps pin is connected or not.
$ sudo ppstest /dev/pps0
trying PPS source "/dev/pps0"
found PPS source "/dev/pps0"
ok, found 1 source(s), now start fetching data...
source 0 - assert 1588064315.861849703, sequence: 4355 - clear 0.000000000, sequence: 0
source 0 - assert 1588064316.885912540, sequence: 4356 - clear 0.000000000, sequence: 0
source 0 - assert 1588064317.909913941, sequence: 4357 - clear 0.000000000, sequence: 0
source 0 - assert 1588064318.933846094, sequence: 4358 - clear 0.000000000, sequence: 0
source 0 - assert 1588064319.957913486, sequence: 4359 - clear 0.000000000, sequence: 0
Below is some more additional info
$ vi /lib/modules/4.9.253-tegra/modules.builtin
...
kernel/drivers/pps/pps_core.ko
kernel/drivers/pps/clients/pps-gpio.ko
...
$ ls /sys/module/pps_gpio/
uevent version
$ cat /sys/module/pps_gpio/version
1.0.0
//gpio pin is not configured for PPS
$ sudo cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-255, parent: platform/6000d000.gpio, tegra-gpio:
...
gpio-15 (SPI1_CS0 )
...
I have checked the dtb in /boot/dtb to confirm the dts changes are present - by using dtc to convert to dts format.
But it seems the dts changes do not have any effect.
Are there any additional setting to be done for configuring the GPIO pin as interrupt source?
I am very likely to be doing something wrong, since this appears to be a very straight forward procedure.
Any help will be appreciated.
Thanks,