xref: /linux-6.15/include/uapi/linux/pps_gen.h (revision 86b525be)
1*86b525beSRodolfo Giometti /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*86b525beSRodolfo Giometti /*
3*86b525beSRodolfo Giometti  * PPS generator API header
4*86b525beSRodolfo Giometti  *
5*86b525beSRodolfo Giometti  * Copyright (C) 2024 Rodolfo Giometti <[email protected]>
6*86b525beSRodolfo Giometti  */
7*86b525beSRodolfo Giometti 
8*86b525beSRodolfo Giometti #ifndef _PPS_GEN_H_
9*86b525beSRodolfo Giometti #define _PPS_GEN_H_
10*86b525beSRodolfo Giometti 
11*86b525beSRodolfo Giometti #include <linux/types.h>
12*86b525beSRodolfo Giometti #include <linux/ioctl.h>
13*86b525beSRodolfo Giometti 
14*86b525beSRodolfo Giometti /**
15*86b525beSRodolfo Giometti  * struct pps_gen_event - the PPS generator events
16*86b525beSRodolfo Giometti  * @event: the event type
17*86b525beSRodolfo Giometti  * @sequence: the event sequence number
18*86b525beSRodolfo Giometti  *
19*86b525beSRodolfo Giometti  * Userspace can get the last PPS generator event by using the
20*86b525beSRodolfo Giometti  * ioctl(pps_gen, PPS_GEN_FETCHEVENT, ...) syscall.
21*86b525beSRodolfo Giometti  * The sequence field can be used to save the last event ID, while in the
22*86b525beSRodolfo Giometti  * event field is stored the last event type. Currently known event is:
23*86b525beSRodolfo Giometti  *
24*86b525beSRodolfo Giometti  *     PPS_GEN_EVENT_MISSEDPULSE	: last pulse was not generated
25*86b525beSRodolfo Giometti  */
26*86b525beSRodolfo Giometti struct pps_gen_event {
27*86b525beSRodolfo Giometti 	unsigned int event;
28*86b525beSRodolfo Giometti 	unsigned int sequence;
29*86b525beSRodolfo Giometti };
30*86b525beSRodolfo Giometti 
31*86b525beSRodolfo Giometti #define PPS_GEN_EVENT_MISSEDPULSE	1
32*86b525beSRodolfo Giometti 
33*86b525beSRodolfo Giometti #define PPS_GEN_SETENABLE		_IOW('p', 0xb1, unsigned int *)
34*86b525beSRodolfo Giometti #define PPS_GEN_USESYSTEMCLOCK		_IOR('p', 0xb2, unsigned int *)
35*86b525beSRodolfo Giometti #define PPS_GEN_FETCHEVENT		_IOR('p', 0xb3, struct pps_gen_event *)
36*86b525beSRodolfo Giometti 
37*86b525beSRodolfo Giometti #endif /* _PPS_GEN_H_ */
38