nuttx-apps/netutils/ptpd
Daniel P. Carvalho 6d10b44bc1 netutils/ptpd: phase-lock hardware clock via POSIX clock_adjtime.
When state->clockid is configured to a hardware PTP clock device
(e.g., /dev/ptp0) instead of CLOCK_REALTIME, ptp_adjtime() previously
passed only the measured frequency drift (-ppb) to clock_adjtime(),
ignoring the residual phase offset (delta_ns / adjustment_ns).
As a result, while the hardware counter tracked frequency, its phase
was never pulled into alignment with the master clock.

Convert delta_ns (which combines frequency drift and current phase error
clamped to max_adjust_ns) to ppb over CONFIG_CLOCK_ADJTIME_PERIOD_MS,
acting as a proportional-integral (PI) phase servo. This drives the
hardware clock to phase lock with the master via POSIX clock_adjtime()
using ADJ_FREQUENCY without requiring proprietary ioctl calls.

Assisted-by: Claude:claude-sonnet-5
Assisted-by: Gemini:gemini-3.8-flash-medium
Signed-off-by: Daniel P. Carvalho <danieloak@gmail.com>
2026-09-24 11:07:31 +08:00
..
CMakeLists.txt netutils/ptpd: add CMakelist for ptpd 2025-12-30 08:51:51 -03:00
Kconfig netutils/ptpd: discard implausible drift-rate samples before averaging 2026-09-24 11:07:31 +08:00
Make.defs netutils: migrate the license to ASF 2024-12-21 13:53:10 +08:00
Makefile netutils: migrate the license to ASF 2024-12-21 13:53:10 +08:00
ptpd.c netutils/ptpd: phase-lock hardware clock via POSIX clock_adjtime. 2026-09-24 11:07:31 +08:00
ptpv2.h netutils/ptpd: Implement IEEE 1588 peer-to-peer (P2P) delay mechanism. 2026-09-24 11:07:31 +08:00