mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-28 18:10:32 +00:00

Sometimes one needs to be able not only to catch PPS signals but to produce them also. For example, running a distributed simulation, which requires computers' clock to be synchronized very tightly. This patch adds PPS generators class in order to have a well-defined interface for these devices. Signed-off-by: Rodolfo Giometti <giometti@enneenne.com> Link: https://lore.kernel.org/r/20241108073115.759039-2-giometti@enneenne.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
38 lines
1.0 KiB
C
38 lines
1.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/*
|
|
* PPS generator API header
|
|
*
|
|
* Copyright (C) 2024 Rodolfo Giometti <giometti@enneenne.com>
|
|
*/
|
|
|
|
#ifndef _PPS_GEN_H_
|
|
#define _PPS_GEN_H_
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/ioctl.h>
|
|
|
|
/**
|
|
* struct pps_gen_event - the PPS generator events
|
|
* @event: the event type
|
|
* @sequence: the event sequence number
|
|
*
|
|
* Userspace can get the last PPS generator event by using the
|
|
* ioctl(pps_gen, PPS_GEN_FETCHEVENT, ...) syscall.
|
|
* The sequence field can be used to save the last event ID, while in the
|
|
* event field is stored the last event type. Currently known event is:
|
|
*
|
|
* PPS_GEN_EVENT_MISSEDPULSE : last pulse was not generated
|
|
*/
|
|
struct pps_gen_event {
|
|
unsigned int event;
|
|
unsigned int sequence;
|
|
};
|
|
|
|
#define PPS_GEN_EVENT_MISSEDPULSE 1
|
|
|
|
#define PPS_GEN_SETENABLE _IOW('p', 0xb1, unsigned int *)
|
|
#define PPS_GEN_USESYSTEMCLOCK _IOR('p', 0xb2, unsigned int *)
|
|
#define PPS_GEN_FETCHEVENT _IOR('p', 0xb3, struct pps_gen_event *)
|
|
|
|
#endif /* _PPS_GEN_H_ */
|