On Thu, Dec 21, 2023 at 03:02:52PM +0530, lakshmi.sowjanya.d@xxxxxxxxx wrote: > From: Lakshmi Sowjanya D <lakshmi.sowjanya.d@xxxxxxxxx> > > 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. ... > +#include <linux/bits.h> > +#include <linux/bitfield.h> > +#include <linux/cleanup.h> + container_of.h > +#include <linux/cpu.h> + device.h + err.h + hrtimer.h > +#include <linux/io-64-nonatomic-hi-lo.h> + kstrtox.h > +#include <linux/mod_devicetable.h> > +#include <linux/module.h> > +#include <linux/platform_device.h> + spinlock.h + sysfs.h > +#include <linux/timekeeping.h> > +#include <linux/types.h> -- With Best Regards, Andy Shevchenko