| # 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 |
| 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 |
| 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_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_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 |
| 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. |
| |
| endmenu |