On 15/02/23 08:09, N, Pandith wrote: > Hi Rodolfo, Hello. >> -----Original Message----- >> From: Rodolfo Giometti >> Sent: Monday, February 6, 2023 4:17 PM >> To: N, Pandith >> Cc: linux-kernel@vger.kernel.org; Sangannavar, Mallikarjunappa >> ; D, Lakshmi Sowjanya >> ; T R, Thejesh Reddy >> ; Hall, Christopher S >> >> Subject: Re: PPS functionality for Intel Timed I/O [snip] >> Mmm... I'm not sure this is correct since PPS generators should generate >> their pulses according to system clock and not according to their internal >> clocks even if they are synced with the system clock. >> > Timed I/O and system time are both driven by the *same* hardware clock. > Timed I/O is a high precision device (nanoseconds), able to output pulses. > The driver gets the system time and schedules output > at target_time in the future. OK, in this case it would be OK. Please put an appropriate note within the generator's code and a detailed one within Documentation/driver-api/pps.rst. Regarding Documentation/driver-api/pps.rst let me suggest you to prose a separate patch to rewrite the Generators section in such a way you easily can add your solution at the end. A possible example is attached but feel free to rewrite it according to your needs. > struct timespec64 current_time; > current_time = ktime_get_real_ts64(¤t_time); > > target_time = current_time + offset_time; > cycles = translate_system_time_to_clock_cycles(target_time); > /* Translate function is developed as part of this driver development */ > > /* Schedule pulse at target_time */ > write_timedio_reg(TIMEDIO_TRIGGER, cycles); > > The output always triggers with ~20 ns precision. > It's not affected by system load or no need for drivers to disable interrupts for longer durations. > With this driver proposal, Intel Timed I/O as PPS generator will be useful in IoT and server applications. Great! Please also add these notes to the final Documentation. Ciao, Rodolfo -- GNU/Linux Solutions e-mail: giometti@enneenne.com Linux Device Driver giometti@linux.it Embedded Systems phone: +39 349 2432127 UNIX programming skype: rodolfo.giometti