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