diff --git a/doc/chrony.conf.adoc b/doc/chrony.conf.adoc index 6cecc1b..9140c62 100644 --- a/doc/chrony.conf.adoc +++ b/doc/chrony.conf.adoc @@ -511,8 +511,10 @@ Note that some PTP clocks cannot be configured to timestamp only assert or clear events, and it is necessary to use the *width* option to filter wrong PPS samples. *pin*=_index_:::: -This option specifies the index of the pin to which is connected the PPS -signal. The default value is 0. +This option specifies the index of the pin which should be enabled for the +PPS timestamping. If the PHC does not have configurable pins (i.e. the channel +function is fixed), the index needs to be set to -1 to disable the pin +configuration. The default value is 0. *channel*=_index_:::: This option specifies the index of the channel for the PPS mode. The default value is 0. diff --git a/sys_linux.c b/sys_linux.c index cc3c931..762bf0a 100644 --- a/sys_linux.c +++ b/sys_linux.c @@ -1008,7 +1008,7 @@ SYS_Linux_SetPHCExtTimestamping(int fd, int pin, int channel, pin_desc.func = enable ? PTP_PF_EXTTS : PTP_PF_NONE; pin_desc.chan = channel; - if (ioctl(fd, PTP_PIN_SETFUNC, &pin_desc)) { + if (pin >= 0 && ioctl(fd, PTP_PIN_SETFUNC, &pin_desc)) { DEBUG_LOG("ioctl(%s) failed : %s", "PTP_PIN_SETFUNC", strerror(errno)); return 0; }