Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
ptp_clock_kernel.h
Go to the documentation of this file.
1
/*
2
* PTP 1588 clock support
3
*
4
* Copyright (C) 2010 OMICRON electronics GmbH
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19
*/
20
21
#ifndef _PTP_CLOCK_KERNEL_H_
22
#define _PTP_CLOCK_KERNEL_H_
23
24
#include <linux/device.h>
25
#include <
linux/pps_kernel.h
>
26
#include <
linux/ptp_clock.h
>
27
28
29
struct
ptp_clock_request
{
30
enum
{
31
PTP_CLK_REQ_EXTTS
,
32
PTP_CLK_REQ_PEROUT
,
33
PTP_CLK_REQ_PPS
,
34
}
type
;
35
union
{
36
struct
ptp_extts_request
extts
;
37
struct
ptp_perout_request
perout
;
38
};
39
};
40
79
struct
ptp_clock_info
{
80
struct
module
*
owner
;
81
char
name
[16];
82
s32
max_adj
;
83
int
n_alarm
;
84
int
n_ext_ts
;
85
int
n_per_out
;
86
int
pps
;
87
int
(*
adjfreq
)(
struct
ptp_clock_info
*
ptp
,
s32
delta
);
88
int
(*
adjtime
)(
struct
ptp_clock_info
*
ptp
,
s64
delta
);
89
int
(*
gettime
)(
struct
ptp_clock_info
*
ptp
,
struct
timespec
*
ts
);
90
int
(*
settime
)(
struct
ptp_clock_info
*
ptp
,
const
struct
timespec
*
ts
);
91
int
(*
enable
)(
struct
ptp_clock_info
*
ptp
,
92
struct
ptp_clock_request
*
request
,
int
on);
93
};
94
95
struct
ptp_clock
;
96
104
extern
struct
ptp_clock
*
ptp_clock_register
(
struct
ptp_clock_info
*
info
,
105
struct
device
*parent);
106
113
extern
int
ptp_clock_unregister
(
struct
ptp_clock
*
ptp
);
114
115
116
enum
ptp_clock_events
{
117
PTP_CLOCK_ALARM
,
118
PTP_CLOCK_EXTTS
,
119
PTP_CLOCK_PPS
,
120
PTP_CLOCK_PPSUSR
,
121
};
122
132
struct
ptp_clock_event
{
133
int
type
;
134
int
index
;
135
union
{
136
u64
timestamp
;
137
struct
pps_event_time
pps_times
;
138
};
139
};
140
148
extern
void
ptp_clock_event
(
struct
ptp_clock
*
ptp
,
149
struct
ptp_clock_event
*
event
);
150
157
extern
int
ptp_clock_index
(
struct
ptp_clock
*
ptp
);
158
159
#endif
Generated on Thu Jan 10 2013 14:52:25 for Linux Kernel by
1.8.2