162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# PTP clock support configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_cimenu "PTP clock support" 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciconfig PTP_1588_CLOCK 962306a36Sopenharmony_ci tristate "PTP clock support" 1062306a36Sopenharmony_ci depends on NET && POSIX_TIMERS 1162306a36Sopenharmony_ci default ETHERNET 1262306a36Sopenharmony_ci select PPS 1362306a36Sopenharmony_ci select NET_PTP_CLASSIFY 1462306a36Sopenharmony_ci help 1562306a36Sopenharmony_ci The IEEE 1588 standard defines a method to precisely 1662306a36Sopenharmony_ci synchronize distributed clocks over Ethernet networks. The 1762306a36Sopenharmony_ci standard defines a Precision Time Protocol (PTP), which can 1862306a36Sopenharmony_ci be used to achieve synchronization within a few dozen 1962306a36Sopenharmony_ci microseconds. In addition, with the help of special hardware 2062306a36Sopenharmony_ci time stamping units, it can be possible to achieve 2162306a36Sopenharmony_ci synchronization to within a few hundred nanoseconds. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci This driver adds support for PTP clocks as character 2462306a36Sopenharmony_ci devices. If you want to use a PTP clock, then you should 2562306a36Sopenharmony_ci also enable at least one clock driver as well. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 2862306a36Sopenharmony_ci will be called ptp. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciconfig PTP_1588_CLOCK_OPTIONAL 3162306a36Sopenharmony_ci tristate 3262306a36Sopenharmony_ci default y if PTP_1588_CLOCK=n 3362306a36Sopenharmony_ci default PTP_1588_CLOCK 3462306a36Sopenharmony_ci help 3562306a36Sopenharmony_ci Drivers that can optionally use the PTP_1588_CLOCK framework 3662306a36Sopenharmony_ci should depend on this symbol to prevent them from being built 3762306a36Sopenharmony_ci into vmlinux while the PTP support itself is in a loadable 3862306a36Sopenharmony_ci module. 3962306a36Sopenharmony_ci If PTP support is disabled, this dependency will still be 4062306a36Sopenharmony_ci met, and drivers refer to dummy helpers. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciconfig PTP_1588_CLOCK_DTE 4362306a36Sopenharmony_ci tristate "Broadcom DTE as PTP clock" 4462306a36Sopenharmony_ci depends on PTP_1588_CLOCK 4562306a36Sopenharmony_ci depends on NET && HAS_IOMEM 4662306a36Sopenharmony_ci depends on ARCH_BCM_MOBILE || (ARCH_BCM_IPROC && !(ARCH_BCM_NSP || ARCH_BCM_5301X)) || COMPILE_TEST 4762306a36Sopenharmony_ci default y 4862306a36Sopenharmony_ci help 4962306a36Sopenharmony_ci This driver adds support for using the Digital timing engine 5062306a36Sopenharmony_ci (DTE) in the Broadcom SoC's as a PTP clock. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci The clock can be used in both wired and wireless networks 5362306a36Sopenharmony_ci for PTP purposes. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 5662306a36Sopenharmony_ci will be called ptp_dte. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ciconfig PTP_1588_CLOCK_QORIQ 5962306a36Sopenharmony_ci tristate "Freescale QorIQ 1588 timer as PTP clock" 6062306a36Sopenharmony_ci depends on GIANFAR || FSL_DPAA_ETH || FSL_DPAA2_ETH || FSL_ENETC || FSL_ENETC_VF || COMPILE_TEST 6162306a36Sopenharmony_ci depends on PTP_1588_CLOCK 6262306a36Sopenharmony_ci default y 6362306a36Sopenharmony_ci help 6462306a36Sopenharmony_ci This driver adds support for using the Freescale QorIQ 1588 6562306a36Sopenharmony_ci timer as a PTP clock. This clock is only useful if your PTP 6662306a36Sopenharmony_ci programs are getting hardware time stamps on the PTP Ethernet 6762306a36Sopenharmony_ci packets using the SO_TIMESTAMPING API. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 7062306a36Sopenharmony_ci will be called ptp-qoriq. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_cicomment "Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks." 7362306a36Sopenharmony_ci depends on PHYLIB=n || NETWORK_PHY_TIMESTAMPING=n 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciconfig DP83640_PHY 7662306a36Sopenharmony_ci tristate "Driver for the National Semiconductor DP83640 PHYTER" 7762306a36Sopenharmony_ci depends on NETWORK_PHY_TIMESTAMPING 7862306a36Sopenharmony_ci depends on PHYLIB 7962306a36Sopenharmony_ci depends on PTP_1588_CLOCK 8062306a36Sopenharmony_ci select CRC32 8162306a36Sopenharmony_ci help 8262306a36Sopenharmony_ci Supports the DP83640 PHYTER with IEEE 1588 features. 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci This driver adds support for using the DP83640 as a PTP 8562306a36Sopenharmony_ci clock. This clock is only useful if your PTP programs are 8662306a36Sopenharmony_ci getting hardware time stamps on the PTP Ethernet packets 8762306a36Sopenharmony_ci using the SO_TIMESTAMPING API. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci In order for this to work, your MAC driver must also 9062306a36Sopenharmony_ci implement the skb_tx_timestamp() function. 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig PTP_1588_CLOCK_INES 9362306a36Sopenharmony_ci tristate "ZHAW InES PTP time stamping IP core" 9462306a36Sopenharmony_ci depends on NETWORK_PHY_TIMESTAMPING 9562306a36Sopenharmony_ci depends on HAS_IOMEM 9662306a36Sopenharmony_ci depends on PHYLIB 9762306a36Sopenharmony_ci depends on PTP_1588_CLOCK 9862306a36Sopenharmony_ci help 9962306a36Sopenharmony_ci This driver adds support for using the ZHAW InES 1588 IP 10062306a36Sopenharmony_ci core. This clock is only useful if the MII bus of your MAC 10162306a36Sopenharmony_ci is wired up to the core. 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ciconfig PTP_1588_CLOCK_PCH 10462306a36Sopenharmony_ci tristate "Intel PCH EG20T as PTP clock" 10562306a36Sopenharmony_ci depends on MIPS_GENERIC || X86_32 || COMPILE_TEST 10662306a36Sopenharmony_ci depends on HAS_IOMEM && PCI 10762306a36Sopenharmony_ci depends on NET 10862306a36Sopenharmony_ci depends on PTP_1588_CLOCK 10962306a36Sopenharmony_ci help 11062306a36Sopenharmony_ci This driver adds support for using the PCH EG20T as a PTP 11162306a36Sopenharmony_ci clock. The hardware supports time stamping of PTP packets 11262306a36Sopenharmony_ci when using the end-to-end delay (E2E) mechanism. The peer 11362306a36Sopenharmony_ci delay mechanism (P2P) is not supported. 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci This clock is only useful if your PTP programs are getting 11662306a36Sopenharmony_ci hardware time stamps on the PTP Ethernet packets using the 11762306a36Sopenharmony_ci SO_TIMESTAMPING API. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 12062306a36Sopenharmony_ci will be called ptp_pch. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciconfig PTP_1588_CLOCK_KVM 12362306a36Sopenharmony_ci tristate "KVM virtual PTP clock" 12462306a36Sopenharmony_ci depends on PTP_1588_CLOCK 12562306a36Sopenharmony_ci depends on (KVM_GUEST && X86) || (HAVE_ARM_SMCCC_DISCOVERY && ARM_ARCH_TIMER) 12662306a36Sopenharmony_ci default y 12762306a36Sopenharmony_ci help 12862306a36Sopenharmony_ci This driver adds support for using kvm infrastructure as a PTP 12962306a36Sopenharmony_ci clock. This clock is only useful if you are using KVM guests. 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 13262306a36Sopenharmony_ci will be called ptp_kvm. 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciconfig PTP_1588_CLOCK_IDT82P33 13562306a36Sopenharmony_ci tristate "IDT 82P33xxx PTP clock" 13662306a36Sopenharmony_ci depends on PTP_1588_CLOCK && I2C 13762306a36Sopenharmony_ci default n 13862306a36Sopenharmony_ci help 13962306a36Sopenharmony_ci This driver adds support for using the IDT 82P33xxx as a PTP 14062306a36Sopenharmony_ci clock. This clock is only useful if your time stamping MAC 14162306a36Sopenharmony_ci is connected to the IDT chip. 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 14462306a36Sopenharmony_ci will be called ptp_idt82p33. 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ciconfig PTP_1588_CLOCK_IDTCM 14762306a36Sopenharmony_ci tristate "IDT CLOCKMATRIX as PTP clock" 14862306a36Sopenharmony_ci depends on PTP_1588_CLOCK && I2C 14962306a36Sopenharmony_ci default n 15062306a36Sopenharmony_ci help 15162306a36Sopenharmony_ci This driver adds support for using IDT CLOCKMATRIX(TM) as a PTP 15262306a36Sopenharmony_ci clock. This clock is only useful if your time stamping MAC 15362306a36Sopenharmony_ci is connected to the IDT chip. 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 15662306a36Sopenharmony_ci will be called ptp_clockmatrix. 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ciconfig PTP_1588_CLOCK_MOCK 15962306a36Sopenharmony_ci tristate "Mock-up PTP clock" 16062306a36Sopenharmony_ci depends on PTP_1588_CLOCK 16162306a36Sopenharmony_ci help 16262306a36Sopenharmony_ci This driver offers a set of PTP clock manipulation operations over 16362306a36Sopenharmony_ci the system monotonic time. It can be used by virtual network device 16462306a36Sopenharmony_ci drivers to emulate PTP capabilities. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 16762306a36Sopenharmony_ci will be called ptp_mock. 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ciconfig PTP_1588_CLOCK_VMW 17062306a36Sopenharmony_ci tristate "VMware virtual PTP clock" 17162306a36Sopenharmony_ci depends on ACPI && HYPERVISOR_GUEST && X86 17262306a36Sopenharmony_ci depends on PTP_1588_CLOCK 17362306a36Sopenharmony_ci help 17462306a36Sopenharmony_ci This driver adds support for using VMware virtual precision 17562306a36Sopenharmony_ci clock device as a PTP clock. This is only useful in virtual 17662306a36Sopenharmony_ci machines running on VMware virtual infrastructure. 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 17962306a36Sopenharmony_ci will be called ptp_vmw. 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ciconfig PTP_1588_CLOCK_OCP 18262306a36Sopenharmony_ci tristate "OpenCompute TimeCard as PTP clock" 18362306a36Sopenharmony_ci depends on PTP_1588_CLOCK 18462306a36Sopenharmony_ci depends on HAS_IOMEM && PCI 18562306a36Sopenharmony_ci depends on I2C && MTD 18662306a36Sopenharmony_ci depends on SERIAL_8250 18762306a36Sopenharmony_ci depends on !S390 18862306a36Sopenharmony_ci depends on COMMON_CLK 18962306a36Sopenharmony_ci select NET_DEVLINK 19062306a36Sopenharmony_ci select CRC16 19162306a36Sopenharmony_ci help 19262306a36Sopenharmony_ci This driver adds support for an OpenCompute time card. 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci The OpenCompute time card is an atomic clock along with 19562306a36Sopenharmony_ci a GPS receiver that provides a Grandmaster clock source 19662306a36Sopenharmony_ci for a PTP enabled network. 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ci More information is available at http://www.timingcard.com/ 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ciconfig PTP_DFL_TOD 20162306a36Sopenharmony_ci tristate "FPGA DFL ToD Driver" 20262306a36Sopenharmony_ci depends on FPGA_DFL 20362306a36Sopenharmony_ci depends on PTP_1588_CLOCK 20462306a36Sopenharmony_ci help 20562306a36Sopenharmony_ci The DFL (Device Feature List) device driver for the Intel ToD 20662306a36Sopenharmony_ci (Time-of-Day) device in FPGA card. The ToD IP within the FPGA 20762306a36Sopenharmony_ci is exposed as PTP Hardware Clock (PHC) device to the Linux PTP 20862306a36Sopenharmony_ci stack to synchronize the system clock to its ToD information 20962306a36Sopenharmony_ci using phc2sys utility of the Linux PTP stack. 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 21262306a36Sopenharmony_ci will be called ptp_dfl_tod. 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ciendmenu 215