summaryrefslogtreecommitdiff
path: root/drivers/pps/generators/Kconfig
diff options
context:
space:
mode:
authorSubramanian Mohan <subramanian.mohan@intel.com>2025-02-19 09:36:16 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-02-21 10:46:49 +0100
commitc89755d1111fa17ecfb69b50c336778a2d37dae4 (patch)
treee166510145207d5b02d5d90ead575ea736150d0c /drivers/pps/generators/Kconfig
parentac9c5170a18162d45c6edd1f0fa2d2b2504bc2cb (diff)
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>
Diffstat (limited to 'drivers/pps/generators/Kconfig')
-rw-r--r--drivers/pps/generators/Kconfig16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/pps/generators/Kconfig b/drivers/pps/generators/Kconfig
index cd94bf3bfaf2..b3f340ed3163 100644
--- a/drivers/pps/generators/Kconfig
+++ b/drivers/pps/generators/Kconfig
@@ -31,4 +31,20 @@ config PPS_GENERATOR_PARPORT
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