I’m trying to enable PPS on iMX7 running TorizonCore.
The PPS signal is connected to pin 8 on the 50 pin header, which should be SODIMM 135 which maps to GPIO1_IO02 on the iMX7.
I have created the following device tree overlay and activated using the command “dtconf activate pps.dts”.
/dts-v1/;
/plugin/;
/ {
compatible = "toradex";
fragment@0 {
target-path = "/";
__overlay__ {
pps {
compatible = "pps-gpio";
gpios = <&gpio1 2 0>;
status = "okay";
};
};
};
};
(I also tried without the status = “okay” as I was not sure it was needed).
When I activate this, I get no errors:
# dtconf activate /root/pps.dts
Device is colibri imx7(0039)
Building /root/pps.dts
Successfully built device tree
Validating ./pps.dts.dtbo
Overlay is valid.
However, I’m not seeing a new pps device appearing after reboot:
$ dmesg | grep pps
[ 0.093554] pps_core: LinuxPPS API ver. 1 registered
[ 0.093560] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 1.668002] pps pps0: new PPS source ptp0
also:
$ ls -l /sys/class/pps/
total 0
lrwxrwxrwx 1 root root 0 Jun 3 08:39 pps0 -> ../../devices/virtual/pps/pps0
Is there some issue with my device tree overlay, or is there something else that I’m missing?
Edit:
Could the issue be missing support in the kernel? Does TorizonCore not have pps-gpio support enabled? If so, how to enable that support?
Edit #2:
It seems like this is the case:
$ zcat /proc/config.gz | grep -i pps
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set
# PPS clients support
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_PPS_CLIENT_GPIO is not set
Would it be possible to enable these (at least GPIO and LDISC) in the official TorizonCore build? If not, how do I go about building a new image with these enabled?