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