drivers/pps/clients

LinuxPPS Pulse-Per-Second Client Sources

Kernel attachments that let Linux receive Pulse-Per-Second timing signals from GPS receivers and atomic-clock sources wired to GPIO pins, serial ports, or parallel ports. They feed sub-microsecond time references to NTP and chrony for stratum-1 timeservers and embedded synchronization, and the directory also includes a built-in test/debug client.

keep-annotate conf=0.84 last_sold=2025 deploy=low replacement=none subsystem=pps category=infrastructure
84%

recommendation

Worth keeping but worth a note about its mixed contents. The GPIO and serial PPS clients are still actively maintained (patches were landing as recently as 2026) and current 2025-era hardware like the Adafruit Raspberry Pi GPS HAT relies on them, so PPS remains the standard way to build a precise Linux timeserver. The annotation is mainly for the parallel-port client, which targets all-but-extinct hardware, and for pps-ktimer, which is a debug-only test client rather than something for production use.

repository signals

6 files
715 source lines
18 commits, 5y
+50 / −74 lines added / removed, 5y
15 authors, 5y
monthly commits · 2021-04-21 → 2026-04-21 · 18 total · active in 14/61 months
2021 2022 2023 2024 2025 2026 2021-04: 0 commits · +0 −0 2021-05: 3 commits · +4 −9 2021-06: 1 commit · +8 −34 2021-07: 0 commits · +0 −0 2021-08: 0 commits · +0 −0 2021-09: 0 commits · +0 −0 2021-10: 0 commits · +0 −0 2021-11: 0 commits · +0 −0 2021-12: 0 commits · +0 −0 2022-01: 1 commit · +1 −1 2022-02: 0 commits · +0 −0 2022-03: 0 commits · +0 −0 2022-04: 0 commits · +0 −0 2022-05: 0 commits · +0 −0 2022-06: 0 commits · +0 −0 2022-07: 0 commits · +0 −0 2022-08: 0 commits · +0 −0 2022-09: 0 commits · +0 −0 2022-10: 0 commits · +0 −0 2022-11: 0 commits · +0 −0 2022-12: 0 commits · +0 −0 2023-01: 1 commit · +3 −3 2023-02: 0 commits · +0 −0 2023-03: 0 commits · +0 −0 2023-04: 0 commits · +0 −0 2023-05: 0 commits · +0 −0 2023-06: 0 commits · +0 −0 2023-07: 0 commits · +0 −0 2023-08: 0 commits · +0 −0 2023-09: 0 commits · +0 −0 2023-10: 0 commits · +0 −0 2023-11: 0 commits · +0 −0 2023-12: 0 commits · +0 −0 2024-01: 0 commits · +0 −0 2024-02: 0 commits · +0 −0 2024-03: 1 commit · +2 −3 2024-04: 1 commit · +3 −3 2024-05: 1 commit · +0 −1 2024-06: 0 commits · +0 −0 2024-07: 0 commits · +0 −0 2024-08: 1 commit · +6 −2 2024-09: 0 commits · +0 −0 2024-10: 0 commits · +0 −0 2024-11: 1 commit · +9 −9 2024-12: 1 commit · +1 −1 2025-01: 1 commit · +5 −1 2025-02: 0 commits · +0 −0 2025-03: 0 commits · +0 −0 2025-04: 1 commit · +2 −2 2025-05: 2 commits · +4 −3 2025-06: 0 commits · +0 −0 2025-07: 0 commits · +0 −0 2025-08: 0 commits · +0 −0 2025-09: 0 commits · +0 −0 2025-10: 0 commits · +0 −0 2025-11: 0 commits · +0 −0 2025-12: 0 commits · +0 −0 2026-01: 0 commits · +0 −0 2026-02: 2 commits · +2 −2 2026-03: 0 commits · +0 −0 2026-04: 0 commits · +0 −0

sources

  1. lore.kernel.org

    `pps-gpio.c` had active upstream work in April 2026, with an Acked-by and Tested-by on a patch series, so this directory is not dormant.

  2. kernel.org

    Kernel PPS documentation describes serial-port, parallel-port, and GPIO PPS sources, and documents `pps-ktimer` as a built-in testing client.

  3. learn.adafruit.com

    A Raspberry Pi GPS HAT updated in 2025 is sold for Pi 5-class boards and exposes a PPS signal on GPIO, showing current-market GPIO PPS hardware still exists.

codex reasoning notes (technical)

Local shell inspection of `drivers/pps/clients/Kconfig` showed this directory mixes a debug client (`pps-ktimer`) with real GPIO/serial/parallel PPS clients. `lore_activity(file=drivers/pps/clients/pps-gpio.c)` showed fresh 2026 bug-fix traffic, so a deprecation/removal case is weak. Web search found the official kernel PPS docs (`turn1search0`) confirming these are still-valid PPS attachment modes, and Adafruit product docs (`turn0search4`) showing new GPIO PPS hardware still sold in 2025. Net: legacy pieces exist, especially parport, but the directory as a whole still serves niche embedded/time-sync deployments; keep it, but annotate the mixed legacy/debug nature.