linux/drivers/pps/generators/Kconfig
Subramanian Mohan c89755d111 pps: generators: Add PPS Generator TIO Driver
The Intel Timed IO PPS generator driver outputs a PPS signal using
dedicated hardware that is more accurate than software actuated PPS.
The Timed IO hardware generates output events using the ART timer.
The ART timer period varies based on platform type, but is less than 100
nanoseconds for all current platforms. Timed IO output accuracy is
within 1 ART period.

PPS output is enabled by writing '1' the 'enable' sysfs attribute. The
driver uses hrtimers to schedule a wake-up 10 ms before each event
(edge) target time. At wakeup, the driver converts the target time in
terms of CLOCK_REALTIME to ART trigger time and writes this to the Timed
IO hardware. The Timed IO hardware generates an event precisely at the
requested system time without software involvement.

Co-developed-by: Christopher Hall <christopher.s.hall@intel.com>
Signed-off-by: Christopher Hall <christopher.s.hall@intel.com>
Co-developed-by: Pandith N <pandith.n@intel.com>
Signed-off-by: Pandith N <pandith.n@intel.com>
Co-developed-by: Thejesh Reddy T R <thejesh.reddy.t.r@intel.com>
Signed-off-by: Thejesh Reddy T R <thejesh.reddy.t.r@intel.com>
Signed-off-by: Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Rodolfo Giometti <giometti@enneenne.com>
Signed-off-by: Subramanian Mohan <subramanian.mohan@intel.com>
Link: https://lore.kernel.org/r/20250219040618.70962-3-subramanian.mohan@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-02-21 10:46:49 +01:00

50 lines
1.7 KiB
Text

# SPDX-License-Identifier: GPL-2.0-only
#
# PPS generators configuration
#
menuconfig PPS_GENERATOR
tristate "PPS generators support"
help
PPS generators are special hardware which are able to produce PPS
(Pulse Per Second) signals.
To compile this driver as a module, choose M here: the module
will be called pps_gen_core.
if PPS_GENERATOR
config PPS_GENERATOR_DUMMY
tristate "Dummy PPS generator (Testing generator, use for debug)"
help
If you say yes here you get support for a PPS debugging generator
(which generates no PPS signal at all).
This driver can also be built as a module. If so, the module
will be called pps_gen-dummy.
config PPS_GENERATOR_PARPORT
tristate "Parallel port PPS signal generator"
depends on PARPORT && BROKEN
help
If you say yes here you get support for a PPS signal generator which
utilizes STROBE pin of a parallel port to send PPS signals. It uses
parport abstraction layer and hrtimers to precisely control the signal.
config PPS_GENERATOR_TIO
tristate "TIO PPS signal generator"
depends on X86 && CPU_SUP_INTEL
help
If you say yes here you get support for a PPS TIO signal generator
which generates a pulse at a prescribed time based on the system clock.
It uses time translation and hrtimers to precisely generate a pulse.
This hardware is present on 2019 and newer Intel CPUs. However, this
driver is not useful without adding highly specialized hardware outside
the Linux system to observe these pulses.
To compile this driver as a module, choose M here: the module
will be called pps_gen_tio.
If unsure, say N.
endif # PPS_GENERATOR