Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
d94ba80e RC |
2 | # |
3 | # PTP clock support configuration | |
4 | # | |
5 | ||
6 | menu "PTP clock support" | |
7 | ||
d94ba80e RC |
8 | config PTP_1588_CLOCK |
9 | tristate "PTP clock support" | |
baa73d9e | 10 | depends on NET && POSIX_TIMERS |
e5f31552 | 11 | default ETHERNET |
42a7ccef | 12 | select PPS |
408eccce | 13 | select NET_PTP_CLASSIFY |
d94ba80e RC |
14 | help |
15 | The IEEE 1588 standard defines a method to precisely | |
16 | synchronize distributed clocks over Ethernet networks. The | |
17 | standard defines a Precision Time Protocol (PTP), which can | |
18 | be used to achieve synchronization within a few dozen | |
19 | microseconds. In addition, with the help of special hardware | |
20 | time stamping units, it can be possible to achieve | |
21 | synchronization to within a few hundred nanoseconds. | |
22 | ||
23 | This driver adds support for PTP clocks as character | |
24 | devices. If you want to use a PTP clock, then you should | |
25 | also enable at least one clock driver as well. | |
26 | ||
27 | To compile this driver as a module, choose M here: the module | |
28 | will be called ptp. | |
29 | ||
e5f31552 AB |
30 | config PTP_1588_CLOCK_OPTIONAL |
31 | tristate | |
32 | default y if PTP_1588_CLOCK=n | |
33 | default PTP_1588_CLOCK | |
34 | help | |
35 | Drivers that can optionally use the PTP_1588_CLOCK framework | |
36 | should depend on this symbol to prevent them from being built | |
37 | into vmlinux while the PTP support itself is in a loadable | |
38 | module. | |
39 | If PTP support is disabled, this dependency will still be | |
40 | met, and drivers refer to dummy helpers. | |
41 | ||
8a56aa10 AP |
42 | config PTP_1588_CLOCK_DTE |
43 | tristate "Broadcom DTE as PTP clock" | |
44 | depends on PTP_1588_CLOCK | |
45 | depends on NET && HAS_IOMEM | |
46 | depends on ARCH_BCM_MOBILE || (ARCH_BCM_IPROC && !(ARCH_BCM_NSP || ARCH_BCM_5301X)) || COMPILE_TEST | |
47 | default y | |
48 | help | |
49 | This driver adds support for using the Digital timing engine | |
50 | (DTE) in the Broadcom SoC's as a PTP clock. | |
51 | ||
52 | The clock can be used in both wired and wireless networks | |
53 | for PTP purposes. | |
54 | ||
55 | To compile this driver as a module, choose M here: the module | |
56 | will be called ptp_dte. | |
57 | ||
ceefc71d YL |
58 | config PTP_1588_CLOCK_QORIQ |
59 | tristate "Freescale QorIQ 1588 timer as PTP clock" | |
8099d7ca | 60 | depends on GIANFAR || FSL_DPAA_ETH || FSL_DPAA2_ETH || FSL_ENETC || FSL_ENETC_VF || COMPILE_TEST |
d1cbfd77 | 61 | depends on PTP_1588_CLOCK |
a24006ed | 62 | default y |
c78275f3 | 63 | help |
ceefc71d YL |
64 | This driver adds support for using the Freescale QorIQ 1588 |
65 | timer as a PTP clock. This clock is only useful if your PTP | |
66 | programs are getting hardware time stamps on the PTP Ethernet | |
67 | packets using the SO_TIMESTAMPING API. | |
c78275f3 RC |
68 | |
69 | To compile this driver as a module, choose M here: the module | |
19df7510 | 70 | will be called ptp-qoriq. |
c78275f3 | 71 | |
cb646e2b | 72 | comment "Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks." |
a24006ed | 73 | depends on PHYLIB=n || NETWORK_PHY_TIMESTAMPING=n |
cb646e2b RC |
74 | |
75 | config DP83640_PHY | |
76 | tristate "Driver for the National Semiconductor DP83640 PHYTER" | |
cb646e2b RC |
77 | depends on NETWORK_PHY_TIMESTAMPING |
78 | depends on PHYLIB | |
d1cbfd77 | 79 | depends on PTP_1588_CLOCK |
f9d6f941 | 80 | select CRC32 |
a7f7f624 | 81 | help |
cb646e2b RC |
82 | Supports the DP83640 PHYTER with IEEE 1588 features. |
83 | ||
84 | This driver adds support for using the DP83640 as a PTP | |
85 | clock. This clock is only useful if your PTP programs are | |
86 | getting hardware time stamps on the PTP Ethernet packets | |
87 | using the SO_TIMESTAMPING API. | |
88 | ||
89 | In order for this to work, your MAC driver must also | |
6b2aac42 | 90 | implement the skb_tx_timestamp() function. |
cb646e2b | 91 | |
bad1eaa6 RC |
92 | config PTP_1588_CLOCK_INES |
93 | tristate "ZHAW InES PTP time stamping IP core" | |
94 | depends on NETWORK_PHY_TIMESTAMPING | |
1f685e6a | 95 | depends on HAS_IOMEM |
bad1eaa6 RC |
96 | depends on PHYLIB |
97 | depends on PTP_1588_CLOCK | |
98 | help | |
99 | This driver adds support for using the ZHAW InES 1588 IP | |
100 | core. This clock is only useful if the MII bus of your MAC | |
101 | is wired up to the core. | |
102 | ||
863d08ec TS |
103 | config PTP_1588_CLOCK_PCH |
104 | tristate "Intel PCH EG20T as PTP clock" | |
bc56151d | 105 | depends on X86_32 || COMPILE_TEST |
55c8fca1 AS |
106 | depends on HAS_IOMEM && PCI |
107 | depends on NET | |
e5f31552 | 108 | depends on PTP_1588_CLOCK |
863d08ec TS |
109 | help |
110 | This driver adds support for using the PCH EG20T as a PTP | |
358dfb6d | 111 | clock. The hardware supports time stamping of PTP packets |
503c9add AB |
112 | when using the end-to-end delay (E2E) mechanism. The peer |
113 | delay mechanism (P2P) is not supported. | |
358dfb6d TS |
114 | |
115 | This clock is only useful if your PTP programs are getting | |
116 | hardware time stamps on the PTP Ethernet packets using the | |
117 | SO_TIMESTAMPING API. | |
863d08ec TS |
118 | |
119 | To compile this driver as a module, choose M here: the module | |
120 | will be called ptp_pch. | |
121 | ||
a0e136d4 MT |
122 | config PTP_1588_CLOCK_KVM |
123 | tristate "KVM virtual PTP clock" | |
124 | depends on PTP_1588_CLOCK | |
300bb1fe | 125 | depends on (KVM_GUEST && X86) || (HAVE_ARM_SMCCC_DISCOVERY && ARM_ARCH_TIMER) |
a0e136d4 MT |
126 | default y |
127 | help | |
128 | This driver adds support for using kvm infrastructure as a PTP | |
129 | clock. This clock is only useful if you are using KVM guests. | |
130 | ||
131 | To compile this driver as a module, choose M here: the module | |
132 | will be called ptp_kvm. | |
133 | ||
57a10d8c ML |
134 | config PTP_1588_CLOCK_IDT82P33 |
135 | tristate "IDT 82P33xxx PTP clock" | |
136 | depends on PTP_1588_CLOCK && I2C | |
137 | default n | |
138 | help | |
139 | This driver adds support for using the IDT 82P33xxx as a PTP | |
140 | clock. This clock is only useful if your time stamping MAC | |
141 | is connected to the IDT chip. | |
142 | ||
143 | To compile this driver as a module, choose M here: the module | |
144 | will be called ptp_idt82p33. | |
145 | ||
3a6ba7dc VC |
146 | config PTP_1588_CLOCK_IDTCM |
147 | tristate "IDT CLOCKMATRIX as PTP clock" | |
03b06e3f | 148 | depends on PTP_1588_CLOCK && I2C |
3a6ba7dc VC |
149 | default n |
150 | help | |
151 | This driver adds support for using IDT CLOCKMATRIX(TM) as a PTP | |
152 | clock. This clock is only useful if your time stamping MAC | |
153 | is connected to the IDT chip. | |
154 | ||
155 | To compile this driver as a module, choose M here: the module | |
156 | will be called ptp_clockmatrix. | |
157 | ||
7d10001e VT |
158 | config PTP_1588_CLOCK_VMW |
159 | tristate "VMware virtual PTP clock" | |
160 | depends on ACPI && HYPERVISOR_GUEST && X86 | |
161 | depends on PTP_1588_CLOCK | |
162 | help | |
163 | This driver adds support for using VMware virtual precision | |
164 | clock device as a PTP clock. This is only useful in virtual | |
165 | machines running on VMware virtual infrastructure. | |
166 | ||
167 | To compile this driver as a module, choose M here: the module | |
168 | will be called ptp_vmw. | |
169 | ||
a7e1abad JL |
170 | config PTP_1588_CLOCK_OCP |
171 | tristate "OpenCompute TimeCard as PTP clock" | |
172 | depends on PTP_1588_CLOCK | |
173 | depends on HAS_IOMEM && PCI | |
bc8e05d6 JL |
174 | depends on I2C && MTD |
175 | depends on SERIAL_8250 | |
944f5101 | 176 | depends on !S390 |
42a99a0b | 177 | depends on COMMON_CLK |
d79500e6 | 178 | select NET_DEVLINK |
0c104556 | 179 | select CRC16 |
a7e1abad JL |
180 | help |
181 | This driver adds support for an OpenCompute time card. | |
182 | ||
183 | The OpenCompute time card is an atomic clock along with | |
184 | a GPS receiver that provides a Grandmaster clock source | |
185 | for a PTP enabled network. | |
186 | ||
187 | More information is available at http://www.timingcard.com/ | |
188 | ||
615927f1 TZ |
189 | config PTP_DFL_TOD |
190 | tristate "FPGA DFL ToD Driver" | |
191 | depends on FPGA_DFL | |
192 | depends on PTP_1588_CLOCK | |
193 | help | |
194 | The DFL (Device Feature List) device driver for the Intel ToD | |
195 | (Time-of-Day) device in FPGA card. The ToD IP within the FPGA | |
196 | is exposed as PTP Hardware Clock (PHC) device to the Linux PTP | |
197 | stack to synchronize the system clock to its ToD information | |
198 | using phc2sys utility of the Linux PTP stack. | |
199 | ||
200 | To compile this driver as a module, choose M here: the module | |
201 | will be called ptp_dfl_tod. | |
202 | ||
d94ba80e | 203 | endmenu |