| # SPDX-License-Identifier: GPL-2.0-only | |
| # | |
| # PTP clock support configuration | |
| # | |
| menu "PTP clock support" | |
| config PTP_1588_CLOCK | |
| tristate "PTP clock support" | |
| depends on NET && POSIX_TIMERS | |
| default ETHERNET | |
| select PPS | |
| select NET_PTP_CLASSIFY | |
| help | |
| The IEEE 1588 standard defines a method to precisely | |
| synchronize distributed clocks over Ethernet networks. The | |
| standard defines a Precision Time Protocol (PTP), which can | |
| be used to achieve synchronization within a few dozen | |
| microseconds. In addition, with the help of special hardware | |
| time stamping units, it can be possible to achieve | |
| synchronization to within a few hundred nanoseconds. | |
| This driver adds support for PTP clocks as character | |
| devices. If you want to use a PTP clock, then you should | |
| also enable at least one clock driver as well. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp. | |
| config PTP_1588_CLOCK_OPTIONAL | |
| tristate | |
| default y if PTP_1588_CLOCK=n | |
| default PTP_1588_CLOCK | |
| help | |
| Drivers that can optionally use the PTP_1588_CLOCK framework | |
| should depend on this symbol to prevent them from being built | |
| into vmlinux while the PTP support itself is in a loadable | |
| module. | |
| If PTP support is disabled, this dependency will still be | |
| met, and drivers refer to dummy helpers. | |
| config PTP_1588_CLOCK_DTE | |
| tristate "Broadcom DTE as PTP clock" | |
| depends on PTP_1588_CLOCK | |
| depends on NET && HAS_IOMEM | |
| depends on ARCH_BCM_MOBILE || (ARCH_BCM_IPROC && !(ARCH_BCM_NSP || ARCH_BCM_5301X)) || COMPILE_TEST | |
| default y if ARCH_BCM_MOBILE || ARCH_BCM_IPROC | |
| help | |
| This driver adds support for using the Digital timing engine | |
| (DTE) in the Broadcom SoC's as a PTP clock. | |
| The clock can be used in both wired and wireless networks | |
| for PTP purposes. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_dte. | |
| config PTP_1588_CLOCK_QORIQ | |
| tristate "Freescale QorIQ 1588 timer as PTP clock" | |
| depends on GIANFAR || FSL_DPAA_ETH || FSL_DPAA2_ETH || FSL_ENETC || FSL_ENETC_VF || COMPILE_TEST | |
| depends on PTP_1588_CLOCK | |
| default y if GIANFAR || FSL_DPAA_ETH || FSL_DPAA2_ETH || FSL_ENETC || FSL_ENETC_VF | |
| help | |
| This driver adds support for using the Freescale QorIQ 1588 | |
| timer as a PTP clock. This clock is only useful if your PTP | |
| programs are getting hardware time stamps on the PTP Ethernet | |
| packets using the SO_TIMESTAMPING API. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_qoriq. | |
| comment "Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks." | |
| depends on PHYLIB=n || NETWORK_PHY_TIMESTAMPING=n | |
| config DP83640_PHY | |
| tristate "Driver for the National Semiconductor DP83640 PHYTER" | |
| depends on NETWORK_PHY_TIMESTAMPING | |
| depends on PHYLIB | |
| depends on PTP_1588_CLOCK | |
| select CRC32 | |
| help | |
| Supports the DP83640 PHYTER with IEEE 1588 features. | |
| This driver adds support for using the DP83640 as a PTP | |
| clock. This clock is only useful if your PTP programs are | |
| getting hardware time stamps on the PTP Ethernet packets | |
| using the SO_TIMESTAMPING API. | |
| In order for this to work, your MAC driver must also | |
| implement the skb_tx_timestamp() function. | |
| config PTP_1588_CLOCK_INES | |
| tristate "ZHAW InES PTP time stamping IP core" | |
| depends on NETWORK_PHY_TIMESTAMPING | |
| depends on HAS_IOMEM | |
| depends on PHYLIB | |
| depends on PTP_1588_CLOCK | |
| help | |
| This driver adds support for using the ZHAW InES 1588 IP | |
| core. This clock is only useful if the MII bus of your MAC | |
| is wired up to the core. | |
| config PTP_1588_CLOCK_PCH | |
| tristate "Intel PCH EG20T as PTP clock" | |
| depends on MIPS_GENERIC || X86_32 || COMPILE_TEST | |
| depends on HAS_IOMEM && PCI | |
| depends on NET | |
| depends on PTP_1588_CLOCK | |
| help | |
| This driver adds support for using the PCH EG20T as a PTP | |
| clock. The hardware supports time stamping of PTP packets | |
| when using the end-to-end delay (E2E) mechanism. The peer | |
| delay mechanism (P2P) is not supported. | |
| This clock is only useful if your PTP programs are getting | |
| hardware time stamps on the PTP Ethernet packets using the | |
| SO_TIMESTAMPING API. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_pch. | |
| config PTP_1588_CLOCK_KVM | |
| tristate "KVM virtual PTP clock" | |
| depends on PTP_1588_CLOCK | |
| depends on (KVM_GUEST && X86) || (HAVE_ARM_SMCCC_DISCOVERY && ARM_ARCH_TIMER) | |
| default y | |
| help | |
| This driver adds support for using kvm infrastructure as a PTP | |
| clock. This clock is only useful if you are using KVM guests. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_kvm. | |
| config PTP_1588_CLOCK_VMCLOCK | |
| tristate "Virtual machine PTP clock" | |
| depends on X86_TSC || ARM_ARCH_TIMER | |
| depends on PTP_1588_CLOCK && ACPI && ARCH_SUPPORTS_INT128 | |
| default PTP_1588_CLOCK_KVM | |
| help | |
| This driver adds support for using a virtual precision clock | |
| advertised by the hypervisor. This clock is only useful in virtual | |
| machines where such a device is present. | |
| Unlike the KVM virtual PTP clock, the VMCLOCK device offers support | |
| for reliable timekeeping even across live migration. So this driver | |
| is enabled by default whenever the KVM PTP clock is. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_vmclock. | |
| config PTP_1588_CLOCK_IDT82P33 | |
| tristate "IDT 82P33xxx PTP clock" | |
| depends on PTP_1588_CLOCK && I2C | |
| default n | |
| help | |
| This driver adds support for using the IDT 82P33xxx as a PTP | |
| clock. This clock is only useful if your time stamping MAC | |
| is connected to the IDT chip. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_idt82p33. | |
| config PTP_1588_CLOCK_IDTCM | |
| tristate "IDT CLOCKMATRIX as PTP clock" | |
| depends on PTP_1588_CLOCK && I2C | |
| default n | |
| help | |
| This driver adds support for using IDT CLOCKMATRIX(TM) as a PTP | |
| clock. This clock is only useful if your time stamping MAC | |
| is connected to the IDT chip. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_clockmatrix. | |
| config PTP_1588_CLOCK_FC3W | |
| tristate "RENESAS FemtoClock3 Wireless as PTP clock" | |
| depends on PTP_1588_CLOCK && I2C | |
| default n | |
| help | |
| This driver adds support for using Renesas FemtoClock3 Wireless | |
| as a PTP clock. This clock is only useful if your time stamping | |
| MAC is connected to the RENESAS chip. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_fc3. | |
| config PTP_1588_CLOCK_MOCK | |
| tristate "Mock-up PTP clock" | |
| depends on PTP_1588_CLOCK | |
| help | |
| This driver offers a set of PTP clock manipulation operations over | |
| the system monotonic time. It can be used by virtual network device | |
| drivers to emulate PTP capabilities. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_mock. | |
| config PTP_1588_CLOCK_VMW | |
| tristate "VMware virtual PTP clock" | |
| depends on ACPI && HYPERVISOR_GUEST && X86 | |
| depends on PTP_1588_CLOCK | |
| help | |
| This driver adds support for using VMware virtual precision | |
| clock device as a PTP clock. This is only useful in virtual | |
| machines running on VMware virtual infrastructure. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_vmw. | |
| config PTP_1588_CLOCK_OCP | |
| tristate "OpenCompute TimeCard as PTP clock" | |
| depends on PTP_1588_CLOCK | |
| depends on HAS_IOMEM && PCI | |
| depends on I2C && MTD | |
| depends on SERIAL_8250 | |
| depends on !S390 | |
| depends on COMMON_CLK | |
| select NET_DEVLINK | |
| select CRC16 | |
| select DPLL | |
| help | |
| This driver adds support for an OpenCompute time card. | |
| The OpenCompute time card is an atomic clock along with | |
| a GPS receiver that provides a Grandmaster clock source | |
| for a PTP enabled network. | |
| More information is available at http://www.timingcard.com/ | |
| config PTP_DFL_TOD | |
| tristate "FPGA DFL ToD Driver" | |
| depends on FPGA_DFL | |
| depends on PTP_1588_CLOCK | |
| help | |
| The DFL (Device Feature List) device driver for the Intel ToD | |
| (Time-of-Day) device in FPGA card. The ToD IP within the FPGA | |
| is exposed as PTP Hardware Clock (PHC) device to the Linux PTP | |
| stack to synchronize the system clock to its ToD information | |
| using phc2sys utility of the Linux PTP stack. | |
| To compile this driver as a module, choose M here: the module | |
| will be called ptp_dfl_tod. | |
| config PTP_S390 | |
| tristate "S390 PTP driver" | |
| depends on PTP_1588_CLOCK | |
| depends on S390 | |
| help | |
| This driver adds support for S390 time steering via the PtP | |
| interface. This works by adding a in-kernel clock delta value, | |
| which is always added to time values used in the kernel. The PtP | |
| driver provides the raw clock value without the delta to | |
| userspace. That way userspace programs like chrony could steer | |
| the kernel clock. | |
| config PTP_NETC_V4_TIMER | |
| tristate "NXP NETC V4 Timer PTP Driver" | |
| depends on PTP_1588_CLOCK | |
| depends on PCI_MSI | |
| help | |
| This driver adds support for using the NXP NETC V4 Timer as a PTP | |
| clock, the clock is used by ENETC V4 or NETC V4 Switch for PTP time | |
| synchronization. It also supports periodic output signal (e.g. PPS) | |
| and external trigger timestamping. | |
| endmenu |