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 | /** |
