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