diff options
Diffstat (limited to 'include/linux/ptp_clock_kernel.h')
-rw-r--r-- | include/linux/ptp_clock_kernel.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h index 945704c2ed65..f2dc6d8fc680 100644 --- a/include/linux/ptp_clock_kernel.h +++ b/include/linux/ptp_clock_kernel.h | |||
@@ -21,6 +21,8 @@ | |||
21 | #ifndef _PTP_CLOCK_KERNEL_H_ | 21 | #ifndef _PTP_CLOCK_KERNEL_H_ |
22 | #define _PTP_CLOCK_KERNEL_H_ | 22 | #define _PTP_CLOCK_KERNEL_H_ |
23 | 23 | ||
24 | #include <linux/device.h> | ||
25 | #include <linux/pps_kernel.h> | ||
24 | #include <linux/ptp_clock.h> | 26 | #include <linux/ptp_clock.h> |
25 | 27 | ||
26 | 28 | ||
@@ -40,7 +42,9 @@ struct ptp_clock_request { | |||
40 | * struct ptp_clock_info - decribes a PTP hardware clock | 42 | * struct ptp_clock_info - decribes a PTP hardware clock |
41 | * | 43 | * |
42 | * @owner: The clock driver should set to THIS_MODULE. | 44 | * @owner: The clock driver should set to THIS_MODULE. |
43 | * @name: A short name to identify the clock. | 45 | * @name: A short "friendly name" to identify the clock and to |
46 | * help distinguish PHY based devices from MAC based ones. | ||
47 | * The string is not meant to be a unique id. | ||
44 | * @max_adj: The maximum possible frequency adjustment, in parts per billon. | 48 | * @max_adj: The maximum possible frequency adjustment, in parts per billon. |
45 | * @n_alarm: The number of programmable alarms. | 49 | * @n_alarm: The number of programmable alarms. |
46 | * @n_ext_ts: The number of external time stamp channels. | 50 | * @n_ext_ts: The number of external time stamp channels. |
@@ -92,10 +96,12 @@ struct ptp_clock; | |||
92 | /** | 96 | /** |
93 | * ptp_clock_register() - register a PTP hardware clock driver | 97 | * ptp_clock_register() - register a PTP hardware clock driver |
94 | * | 98 | * |
95 | * @info: Structure describing the new clock. | 99 | * @info: Structure describing the new clock. |
100 | * @parent: Pointer to the parent device of the new clock. | ||
96 | */ | 101 | */ |
97 | 102 | ||
98 | extern struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info); | 103 | extern struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info, |
104 | struct device *parent); | ||
99 | 105 | ||
100 | /** | 106 | /** |
101 | * ptp_clock_unregister() - unregister a PTP hardware clock driver | 107 | * ptp_clock_unregister() - unregister a PTP hardware clock driver |
@@ -110,6 +116,7 @@ enum ptp_clock_events { | |||
110 | PTP_CLOCK_ALARM, | 116 | PTP_CLOCK_ALARM, |
111 | PTP_CLOCK_EXTTS, | 117 | PTP_CLOCK_EXTTS, |
112 | PTP_CLOCK_PPS, | 118 | PTP_CLOCK_PPS, |
119 | PTP_CLOCK_PPSUSR, | ||
113 | }; | 120 | }; |
114 | 121 | ||
115 | /** | 122 | /** |
@@ -117,13 +124,17 @@ enum ptp_clock_events { | |||
117 | * | 124 | * |
118 | * @type: One of the ptp_clock_events enumeration values. | 125 | * @type: One of the ptp_clock_events enumeration values. |
119 | * @index: Identifies the source of the event. | 126 | * @index: Identifies the source of the event. |
120 | * @timestamp: When the event occured. | 127 | * @timestamp: When the event occurred (%PTP_CLOCK_EXTTS only). |
128 | * @pps_times: When the event occurred (%PTP_CLOCK_PPSUSR only). | ||
121 | */ | 129 | */ |
122 | 130 | ||
123 | struct ptp_clock_event { | 131 | struct ptp_clock_event { |
124 | int type; | 132 | int type; |
125 | int index; | 133 | int index; |
126 | u64 timestamp; | 134 | union { |
135 | u64 timestamp; | ||
136 | struct pps_event_time pps_times; | ||
137 | }; | ||
127 | }; | 138 | }; |
128 | 139 | ||
129 | /** | 140 | /** |