xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/ptp_clock.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _PTP_CLOCK_H_
8*8d67ca89SAndroid Build Coastguard Worker #define _PTP_CLOCK_H_
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/ioctl.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
11*8d67ca89SAndroid Build Coastguard Worker #define PTP_ENABLE_FEATURE (1 << 0)
12*8d67ca89SAndroid Build Coastguard Worker #define PTP_RISING_EDGE (1 << 1)
13*8d67ca89SAndroid Build Coastguard Worker #define PTP_FALLING_EDGE (1 << 2)
14*8d67ca89SAndroid Build Coastguard Worker #define PTP_STRICT_FLAGS (1 << 3)
15*8d67ca89SAndroid Build Coastguard Worker #define PTP_EXT_OFFSET (1 << 4)
16*8d67ca89SAndroid Build Coastguard Worker #define PTP_EXTTS_EDGES (PTP_RISING_EDGE | PTP_FALLING_EDGE)
17*8d67ca89SAndroid Build Coastguard Worker #define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | PTP_RISING_EDGE | PTP_FALLING_EDGE | PTP_STRICT_FLAGS | PTP_EXT_OFFSET)
18*8d67ca89SAndroid Build Coastguard Worker #define PTP_EXTTS_V1_VALID_FLAGS (PTP_ENABLE_FEATURE | PTP_RISING_EDGE | PTP_FALLING_EDGE)
19*8d67ca89SAndroid Build Coastguard Worker #define PTP_EXTTS_EVENT_VALID (PTP_ENABLE_FEATURE)
20*8d67ca89SAndroid Build Coastguard Worker #define PTP_PEROUT_ONE_SHOT (1 << 0)
21*8d67ca89SAndroid Build Coastguard Worker #define PTP_PEROUT_DUTY_CYCLE (1 << 1)
22*8d67ca89SAndroid Build Coastguard Worker #define PTP_PEROUT_PHASE (1 << 2)
23*8d67ca89SAndroid Build Coastguard Worker #define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT | PTP_PEROUT_DUTY_CYCLE | PTP_PEROUT_PHASE)
24*8d67ca89SAndroid Build Coastguard Worker #define PTP_PEROUT_V1_VALID_FLAGS (0)
25*8d67ca89SAndroid Build Coastguard Worker struct ptp_clock_time {
26*8d67ca89SAndroid Build Coastguard Worker   __s64 sec;
27*8d67ca89SAndroid Build Coastguard Worker   __u32 nsec;
28*8d67ca89SAndroid Build Coastguard Worker   __u32 reserved;
29*8d67ca89SAndroid Build Coastguard Worker };
30*8d67ca89SAndroid Build Coastguard Worker struct ptp_clock_caps {
31*8d67ca89SAndroid Build Coastguard Worker   int max_adj;
32*8d67ca89SAndroid Build Coastguard Worker   int n_alarm;
33*8d67ca89SAndroid Build Coastguard Worker   int n_ext_ts;
34*8d67ca89SAndroid Build Coastguard Worker   int n_per_out;
35*8d67ca89SAndroid Build Coastguard Worker   int pps;
36*8d67ca89SAndroid Build Coastguard Worker   int n_pins;
37*8d67ca89SAndroid Build Coastguard Worker   int cross_timestamping;
38*8d67ca89SAndroid Build Coastguard Worker   int adjust_phase;
39*8d67ca89SAndroid Build Coastguard Worker   int max_phase_adj;
40*8d67ca89SAndroid Build Coastguard Worker   int rsv[11];
41*8d67ca89SAndroid Build Coastguard Worker };
42*8d67ca89SAndroid Build Coastguard Worker struct ptp_extts_request {
43*8d67ca89SAndroid Build Coastguard Worker   unsigned int index;
44*8d67ca89SAndroid Build Coastguard Worker   unsigned int flags;
45*8d67ca89SAndroid Build Coastguard Worker   unsigned int rsv[2];
46*8d67ca89SAndroid Build Coastguard Worker };
47*8d67ca89SAndroid Build Coastguard Worker struct ptp_perout_request {
48*8d67ca89SAndroid Build Coastguard Worker   union {
49*8d67ca89SAndroid Build Coastguard Worker     struct ptp_clock_time start;
50*8d67ca89SAndroid Build Coastguard Worker     struct ptp_clock_time phase;
51*8d67ca89SAndroid Build Coastguard Worker   };
52*8d67ca89SAndroid Build Coastguard Worker   struct ptp_clock_time period;
53*8d67ca89SAndroid Build Coastguard Worker   unsigned int index;
54*8d67ca89SAndroid Build Coastguard Worker   unsigned int flags;
55*8d67ca89SAndroid Build Coastguard Worker   union {
56*8d67ca89SAndroid Build Coastguard Worker     struct ptp_clock_time on;
57*8d67ca89SAndroid Build Coastguard Worker     unsigned int rsv[4];
58*8d67ca89SAndroid Build Coastguard Worker   };
59*8d67ca89SAndroid Build Coastguard Worker };
60*8d67ca89SAndroid Build Coastguard Worker #define PTP_MAX_SAMPLES 25
61*8d67ca89SAndroid Build Coastguard Worker struct ptp_sys_offset {
62*8d67ca89SAndroid Build Coastguard Worker   unsigned int n_samples;
63*8d67ca89SAndroid Build Coastguard Worker   unsigned int rsv[3];
64*8d67ca89SAndroid Build Coastguard Worker   struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1];
65*8d67ca89SAndroid Build Coastguard Worker };
66*8d67ca89SAndroid Build Coastguard Worker struct ptp_sys_offset_extended {
67*8d67ca89SAndroid Build Coastguard Worker   unsigned int n_samples;
68*8d67ca89SAndroid Build Coastguard Worker   unsigned int rsv[3];
69*8d67ca89SAndroid Build Coastguard Worker   struct ptp_clock_time ts[PTP_MAX_SAMPLES][3];
70*8d67ca89SAndroid Build Coastguard Worker };
71*8d67ca89SAndroid Build Coastguard Worker struct ptp_sys_offset_precise {
72*8d67ca89SAndroid Build Coastguard Worker   struct ptp_clock_time device;
73*8d67ca89SAndroid Build Coastguard Worker   struct ptp_clock_time sys_realtime;
74*8d67ca89SAndroid Build Coastguard Worker   struct ptp_clock_time sys_monoraw;
75*8d67ca89SAndroid Build Coastguard Worker   unsigned int rsv[4];
76*8d67ca89SAndroid Build Coastguard Worker };
77*8d67ca89SAndroid Build Coastguard Worker enum ptp_pin_function {
78*8d67ca89SAndroid Build Coastguard Worker   PTP_PF_NONE,
79*8d67ca89SAndroid Build Coastguard Worker   PTP_PF_EXTTS,
80*8d67ca89SAndroid Build Coastguard Worker   PTP_PF_PEROUT,
81*8d67ca89SAndroid Build Coastguard Worker   PTP_PF_PHYSYNC,
82*8d67ca89SAndroid Build Coastguard Worker };
83*8d67ca89SAndroid Build Coastguard Worker struct ptp_pin_desc {
84*8d67ca89SAndroid Build Coastguard Worker   char name[64];
85*8d67ca89SAndroid Build Coastguard Worker   unsigned int index;
86*8d67ca89SAndroid Build Coastguard Worker   unsigned int func;
87*8d67ca89SAndroid Build Coastguard Worker   unsigned int chan;
88*8d67ca89SAndroid Build Coastguard Worker   unsigned int rsv[5];
89*8d67ca89SAndroid Build Coastguard Worker };
90*8d67ca89SAndroid Build Coastguard Worker #define PTP_CLK_MAGIC '='
91*8d67ca89SAndroid Build Coastguard Worker #define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps)
92*8d67ca89SAndroid Build Coastguard Worker #define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request)
93*8d67ca89SAndroid Build Coastguard Worker #define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request)
94*8d67ca89SAndroid Build Coastguard Worker #define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int)
95*8d67ca89SAndroid Build Coastguard Worker #define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset)
96*8d67ca89SAndroid Build Coastguard Worker #define PTP_PIN_GETFUNC _IOWR(PTP_CLK_MAGIC, 6, struct ptp_pin_desc)
97*8d67ca89SAndroid Build Coastguard Worker #define PTP_PIN_SETFUNC _IOW(PTP_CLK_MAGIC, 7, struct ptp_pin_desc)
98*8d67ca89SAndroid Build Coastguard Worker #define PTP_SYS_OFFSET_PRECISE _IOWR(PTP_CLK_MAGIC, 8, struct ptp_sys_offset_precise)
99*8d67ca89SAndroid Build Coastguard Worker #define PTP_SYS_OFFSET_EXTENDED _IOWR(PTP_CLK_MAGIC, 9, struct ptp_sys_offset_extended)
100*8d67ca89SAndroid Build Coastguard Worker #define PTP_CLOCK_GETCAPS2 _IOR(PTP_CLK_MAGIC, 10, struct ptp_clock_caps)
101*8d67ca89SAndroid Build Coastguard Worker #define PTP_EXTTS_REQUEST2 _IOW(PTP_CLK_MAGIC, 11, struct ptp_extts_request)
102*8d67ca89SAndroid Build Coastguard Worker #define PTP_PEROUT_REQUEST2 _IOW(PTP_CLK_MAGIC, 12, struct ptp_perout_request)
103*8d67ca89SAndroid Build Coastguard Worker #define PTP_ENABLE_PPS2 _IOW(PTP_CLK_MAGIC, 13, int)
104*8d67ca89SAndroid Build Coastguard Worker #define PTP_SYS_OFFSET2 _IOW(PTP_CLK_MAGIC, 14, struct ptp_sys_offset)
105*8d67ca89SAndroid Build Coastguard Worker #define PTP_PIN_GETFUNC2 _IOWR(PTP_CLK_MAGIC, 15, struct ptp_pin_desc)
106*8d67ca89SAndroid Build Coastguard Worker #define PTP_PIN_SETFUNC2 _IOW(PTP_CLK_MAGIC, 16, struct ptp_pin_desc)
107*8d67ca89SAndroid Build Coastguard Worker #define PTP_SYS_OFFSET_PRECISE2 _IOWR(PTP_CLK_MAGIC, 17, struct ptp_sys_offset_precise)
108*8d67ca89SAndroid Build Coastguard Worker #define PTP_SYS_OFFSET_EXTENDED2 _IOWR(PTP_CLK_MAGIC, 18, struct ptp_sys_offset_extended)
109*8d67ca89SAndroid Build Coastguard Worker #define PTP_MASK_CLEAR_ALL _IO(PTP_CLK_MAGIC, 19)
110*8d67ca89SAndroid Build Coastguard Worker #define PTP_MASK_EN_SINGLE _IOW(PTP_CLK_MAGIC, 20, unsigned int)
111*8d67ca89SAndroid Build Coastguard Worker struct ptp_extts_event {
112*8d67ca89SAndroid Build Coastguard Worker   struct ptp_clock_time t;
113*8d67ca89SAndroid Build Coastguard Worker   unsigned int index;
114*8d67ca89SAndroid Build Coastguard Worker   unsigned int flags;
115*8d67ca89SAndroid Build Coastguard Worker   unsigned int rsv[2];
116*8d67ca89SAndroid Build Coastguard Worker };
117*8d67ca89SAndroid Build Coastguard Worker #endif
118