xref: /OK3568_Linux_fs/kernel/drivers/ptp/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# PTP clock support configuration
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunmenu "PTP clock support"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyunconfig PTP_1588_CLOCK
9*4882a593Smuzhiyun	tristate "PTP clock support"
10*4882a593Smuzhiyun	depends on NET && POSIX_TIMERS
11*4882a593Smuzhiyun	select PPS
12*4882a593Smuzhiyun	select NET_PTP_CLASSIFY
13*4882a593Smuzhiyun	help
14*4882a593Smuzhiyun	  The IEEE 1588 standard defines a method to precisely
15*4882a593Smuzhiyun	  synchronize distributed clocks over Ethernet networks. The
16*4882a593Smuzhiyun	  standard defines a Precision Time Protocol (PTP), which can
17*4882a593Smuzhiyun	  be used to achieve synchronization within a few dozen
18*4882a593Smuzhiyun	  microseconds. In addition, with the help of special hardware
19*4882a593Smuzhiyun	  time stamping units, it can be possible to achieve
20*4882a593Smuzhiyun	  synchronization to within a few hundred nanoseconds.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	  This driver adds support for PTP clocks as character
23*4882a593Smuzhiyun	  devices. If you want to use a PTP clock, then you should
24*4882a593Smuzhiyun	  also enable at least one clock driver as well.
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
27*4882a593Smuzhiyun	  will be called ptp.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunconfig PTP_1588_CLOCK_DTE
30*4882a593Smuzhiyun	tristate "Broadcom DTE as PTP clock"
31*4882a593Smuzhiyun	depends on PTP_1588_CLOCK
32*4882a593Smuzhiyun	depends on NET && HAS_IOMEM
33*4882a593Smuzhiyun	depends on ARCH_BCM_MOBILE || (ARCH_BCM_IPROC && !(ARCH_BCM_NSP || ARCH_BCM_5301X)) || COMPILE_TEST
34*4882a593Smuzhiyun	default y
35*4882a593Smuzhiyun	help
36*4882a593Smuzhiyun	  This driver adds support for using the Digital timing engine
37*4882a593Smuzhiyun	  (DTE) in the Broadcom SoC's as a PTP clock.
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun	  The clock can be used in both wired and wireless networks
40*4882a593Smuzhiyun	  for PTP purposes.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
43*4882a593Smuzhiyun	  will be called ptp_dte.
44*4882a593Smuzhiyun
45*4882a593Smuzhiyunconfig PTP_1588_CLOCK_QORIQ
46*4882a593Smuzhiyun	tristate "Freescale QorIQ 1588 timer as PTP clock"
47*4882a593Smuzhiyun	depends on GIANFAR || FSL_DPAA_ETH || FSL_DPAA2_ETH || FSL_ENETC || FSL_ENETC_VF || COMPILE_TEST
48*4882a593Smuzhiyun	depends on PTP_1588_CLOCK
49*4882a593Smuzhiyun	default y
50*4882a593Smuzhiyun	help
51*4882a593Smuzhiyun	  This driver adds support for using the Freescale QorIQ 1588
52*4882a593Smuzhiyun	  timer as a PTP clock. This clock is only useful if your PTP
53*4882a593Smuzhiyun	  programs are getting hardware time stamps on the PTP Ethernet
54*4882a593Smuzhiyun	  packets using the SO_TIMESTAMPING API.
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
57*4882a593Smuzhiyun	  will be called ptp-qoriq.
58*4882a593Smuzhiyun
59*4882a593Smuzhiyuncomment "Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks."
60*4882a593Smuzhiyun	depends on PHYLIB=n || NETWORK_PHY_TIMESTAMPING=n
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunconfig DP83640_PHY
63*4882a593Smuzhiyun	tristate "Driver for the National Semiconductor DP83640 PHYTER"
64*4882a593Smuzhiyun	depends on NETWORK_PHY_TIMESTAMPING
65*4882a593Smuzhiyun	depends on PHYLIB
66*4882a593Smuzhiyun	depends on PTP_1588_CLOCK
67*4882a593Smuzhiyun	select CRC32
68*4882a593Smuzhiyun	help
69*4882a593Smuzhiyun	  Supports the DP83640 PHYTER with IEEE 1588 features.
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun	  This driver adds support for using the DP83640 as a PTP
72*4882a593Smuzhiyun	  clock. This clock is only useful if your PTP programs are
73*4882a593Smuzhiyun	  getting hardware time stamps on the PTP Ethernet packets
74*4882a593Smuzhiyun	  using the SO_TIMESTAMPING API.
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	  In order for this to work, your MAC driver must also
77*4882a593Smuzhiyun	  implement the skb_tx_timestamp() function.
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig PTP_1588_CLOCK_INES
80*4882a593Smuzhiyun	tristate "ZHAW InES PTP time stamping IP core"
81*4882a593Smuzhiyun	depends on NETWORK_PHY_TIMESTAMPING
82*4882a593Smuzhiyun	depends on HAS_IOMEM
83*4882a593Smuzhiyun	depends on PHYLIB
84*4882a593Smuzhiyun	depends on PTP_1588_CLOCK
85*4882a593Smuzhiyun	help
86*4882a593Smuzhiyun	  This driver adds support for using the ZHAW InES 1588 IP
87*4882a593Smuzhiyun	  core.  This clock is only useful if the MII bus of your MAC
88*4882a593Smuzhiyun	  is wired up to the core.
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunconfig PTP_1588_CLOCK_PCH
91*4882a593Smuzhiyun	tristate "Intel PCH EG20T as PTP clock"
92*4882a593Smuzhiyun	depends on X86_32 || COMPILE_TEST
93*4882a593Smuzhiyun	depends on HAS_IOMEM && PCI
94*4882a593Smuzhiyun	depends on NET
95*4882a593Smuzhiyun	imply PTP_1588_CLOCK
96*4882a593Smuzhiyun	help
97*4882a593Smuzhiyun	  This driver adds support for using the PCH EG20T as a PTP
98*4882a593Smuzhiyun	  clock. The hardware supports time stamping of PTP packets
99*4882a593Smuzhiyun	  when using the end-to-end delay (E2E) mechanism. The peer
100*4882a593Smuzhiyun	  delay mechanism (P2P) is not supported.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun	  This clock is only useful if your PTP programs are getting
103*4882a593Smuzhiyun	  hardware time stamps on the PTP Ethernet packets using the
104*4882a593Smuzhiyun	  SO_TIMESTAMPING API.
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
107*4882a593Smuzhiyun	  will be called ptp_pch.
108*4882a593Smuzhiyun
109*4882a593Smuzhiyunconfig PTP_1588_CLOCK_KVM
110*4882a593Smuzhiyun	tristate "KVM virtual PTP clock"
111*4882a593Smuzhiyun	depends on PTP_1588_CLOCK
112*4882a593Smuzhiyun	depends on KVM_GUEST && X86
113*4882a593Smuzhiyun	default y
114*4882a593Smuzhiyun	help
115*4882a593Smuzhiyun	  This driver adds support for using kvm infrastructure as a PTP
116*4882a593Smuzhiyun	  clock. This clock is only useful if you are using KVM guests.
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
119*4882a593Smuzhiyun	  will be called ptp_kvm.
120*4882a593Smuzhiyun
121*4882a593Smuzhiyunconfig PTP_1588_CLOCK_IDT82P33
122*4882a593Smuzhiyun	tristate "IDT 82P33xxx PTP clock"
123*4882a593Smuzhiyun	depends on PTP_1588_CLOCK && I2C
124*4882a593Smuzhiyun	default n
125*4882a593Smuzhiyun	help
126*4882a593Smuzhiyun	  This driver adds support for using the IDT 82P33xxx as a PTP
127*4882a593Smuzhiyun	  clock. This clock is only useful if your time stamping MAC
128*4882a593Smuzhiyun	  is connected to the IDT chip.
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
131*4882a593Smuzhiyun	  will be called ptp_idt82p33.
132*4882a593Smuzhiyun
133*4882a593Smuzhiyunconfig PTP_1588_CLOCK_IDTCM
134*4882a593Smuzhiyun	tristate "IDT CLOCKMATRIX as PTP clock"
135*4882a593Smuzhiyun	depends on PTP_1588_CLOCK && I2C
136*4882a593Smuzhiyun	default n
137*4882a593Smuzhiyun	help
138*4882a593Smuzhiyun	  This driver adds support for using IDT CLOCKMATRIX(TM) as a PTP
139*4882a593Smuzhiyun	  clock. This clock is only useful if your time stamping MAC
140*4882a593Smuzhiyun	  is connected to the IDT chip.
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
143*4882a593Smuzhiyun	  will be called ptp_clockmatrix.
144*4882a593Smuzhiyun
145*4882a593Smuzhiyunconfig PTP_1588_CLOCK_VMW
146*4882a593Smuzhiyun	tristate "VMware virtual PTP clock"
147*4882a593Smuzhiyun	depends on ACPI && HYPERVISOR_GUEST && X86
148*4882a593Smuzhiyun	depends on PTP_1588_CLOCK
149*4882a593Smuzhiyun	help
150*4882a593Smuzhiyun	  This driver adds support for using VMware virtual precision
151*4882a593Smuzhiyun	  clock device as a PTP clock. This is only useful in virtual
152*4882a593Smuzhiyun	  machines running on VMware virtual infrastructure.
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
155*4882a593Smuzhiyun	  will be called ptp_vmw.
156*4882a593Smuzhiyun
157*4882a593Smuzhiyunendmenu
158