18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# PTP clock support configuration 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_cimenu "PTP clock support" 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK 98c2ecf20Sopenharmony_ci tristate "PTP clock support" 108c2ecf20Sopenharmony_ci depends on NET && POSIX_TIMERS 118c2ecf20Sopenharmony_ci select PPS 128c2ecf20Sopenharmony_ci select NET_PTP_CLASSIFY 138c2ecf20Sopenharmony_ci help 148c2ecf20Sopenharmony_ci The IEEE 1588 standard defines a method to precisely 158c2ecf20Sopenharmony_ci synchronize distributed clocks over Ethernet networks. The 168c2ecf20Sopenharmony_ci standard defines a Precision Time Protocol (PTP), which can 178c2ecf20Sopenharmony_ci be used to achieve synchronization within a few dozen 188c2ecf20Sopenharmony_ci microseconds. In addition, with the help of special hardware 198c2ecf20Sopenharmony_ci time stamping units, it can be possible to achieve 208c2ecf20Sopenharmony_ci synchronization to within a few hundred nanoseconds. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci This driver adds support for PTP clocks as character 238c2ecf20Sopenharmony_ci devices. If you want to use a PTP clock, then you should 248c2ecf20Sopenharmony_ci also enable at least one clock driver as well. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 278c2ecf20Sopenharmony_ci will be called ptp. 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_DTE 308c2ecf20Sopenharmony_ci tristate "Broadcom DTE as PTP clock" 318c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK 328c2ecf20Sopenharmony_ci depends on NET && HAS_IOMEM 338c2ecf20Sopenharmony_ci depends on ARCH_BCM_MOBILE || (ARCH_BCM_IPROC && !(ARCH_BCM_NSP || ARCH_BCM_5301X)) || COMPILE_TEST 348c2ecf20Sopenharmony_ci default y 358c2ecf20Sopenharmony_ci help 368c2ecf20Sopenharmony_ci This driver adds support for using the Digital timing engine 378c2ecf20Sopenharmony_ci (DTE) in the Broadcom SoC's as a PTP clock. 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci The clock can be used in both wired and wireless networks 408c2ecf20Sopenharmony_ci for PTP purposes. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 438c2ecf20Sopenharmony_ci will be called ptp_dte. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_QORIQ 468c2ecf20Sopenharmony_ci tristate "Freescale QorIQ 1588 timer as PTP clock" 478c2ecf20Sopenharmony_ci depends on GIANFAR || FSL_DPAA_ETH || FSL_DPAA2_ETH || FSL_ENETC || FSL_ENETC_VF || COMPILE_TEST 488c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK 498c2ecf20Sopenharmony_ci default y 508c2ecf20Sopenharmony_ci help 518c2ecf20Sopenharmony_ci This driver adds support for using the Freescale QorIQ 1588 528c2ecf20Sopenharmony_ci timer as a PTP clock. This clock is only useful if your PTP 538c2ecf20Sopenharmony_ci programs are getting hardware time stamps on the PTP Ethernet 548c2ecf20Sopenharmony_ci packets using the SO_TIMESTAMPING API. 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 578c2ecf20Sopenharmony_ci will be called ptp-qoriq. 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_cicomment "Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks." 608c2ecf20Sopenharmony_ci depends on PHYLIB=n || NETWORK_PHY_TIMESTAMPING=n 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ciconfig DP83640_PHY 638c2ecf20Sopenharmony_ci tristate "Driver for the National Semiconductor DP83640 PHYTER" 648c2ecf20Sopenharmony_ci depends on NETWORK_PHY_TIMESTAMPING 658c2ecf20Sopenharmony_ci depends on PHYLIB 668c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK 678c2ecf20Sopenharmony_ci select CRC32 688c2ecf20Sopenharmony_ci help 698c2ecf20Sopenharmony_ci Supports the DP83640 PHYTER with IEEE 1588 features. 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci This driver adds support for using the DP83640 as a PTP 728c2ecf20Sopenharmony_ci clock. This clock is only useful if your PTP programs are 738c2ecf20Sopenharmony_ci getting hardware time stamps on the PTP Ethernet packets 748c2ecf20Sopenharmony_ci using the SO_TIMESTAMPING API. 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci In order for this to work, your MAC driver must also 778c2ecf20Sopenharmony_ci implement the skb_tx_timestamp() function. 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_INES 808c2ecf20Sopenharmony_ci tristate "ZHAW InES PTP time stamping IP core" 818c2ecf20Sopenharmony_ci depends on NETWORK_PHY_TIMESTAMPING 828c2ecf20Sopenharmony_ci depends on HAS_IOMEM 838c2ecf20Sopenharmony_ci depends on PHYLIB 848c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK 858c2ecf20Sopenharmony_ci help 868c2ecf20Sopenharmony_ci This driver adds support for using the ZHAW InES 1588 IP 878c2ecf20Sopenharmony_ci core. This clock is only useful if the MII bus of your MAC 888c2ecf20Sopenharmony_ci is wired up to the core. 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_PCH 918c2ecf20Sopenharmony_ci tristate "Intel PCH EG20T as PTP clock" 928c2ecf20Sopenharmony_ci depends on X86_32 || COMPILE_TEST 938c2ecf20Sopenharmony_ci depends on HAS_IOMEM && PCI 948c2ecf20Sopenharmony_ci depends on NET 958c2ecf20Sopenharmony_ci imply PTP_1588_CLOCK 968c2ecf20Sopenharmony_ci help 978c2ecf20Sopenharmony_ci This driver adds support for using the PCH EG20T as a PTP 988c2ecf20Sopenharmony_ci clock. The hardware supports time stamping of PTP packets 998c2ecf20Sopenharmony_ci when using the end-to-end delay (E2E) mechanism. The peer 1008c2ecf20Sopenharmony_ci delay mechanism (P2P) is not supported. 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci This clock is only useful if your PTP programs are getting 1038c2ecf20Sopenharmony_ci hardware time stamps on the PTP Ethernet packets using the 1048c2ecf20Sopenharmony_ci SO_TIMESTAMPING API. 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 1078c2ecf20Sopenharmony_ci will be called ptp_pch. 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_KVM 1108c2ecf20Sopenharmony_ci tristate "KVM virtual PTP clock" 1118c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK 1128c2ecf20Sopenharmony_ci depends on KVM_GUEST && X86 1138c2ecf20Sopenharmony_ci default y 1148c2ecf20Sopenharmony_ci help 1158c2ecf20Sopenharmony_ci This driver adds support for using kvm infrastructure as a PTP 1168c2ecf20Sopenharmony_ci clock. This clock is only useful if you are using KVM guests. 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 1198c2ecf20Sopenharmony_ci will be called ptp_kvm. 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_IDT82P33 1228c2ecf20Sopenharmony_ci tristate "IDT 82P33xxx PTP clock" 1238c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK && I2C 1248c2ecf20Sopenharmony_ci default n 1258c2ecf20Sopenharmony_ci help 1268c2ecf20Sopenharmony_ci This driver adds support for using the IDT 82P33xxx as a PTP 1278c2ecf20Sopenharmony_ci clock. This clock is only useful if your time stamping MAC 1288c2ecf20Sopenharmony_ci is connected to the IDT chip. 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 1318c2ecf20Sopenharmony_ci will be called ptp_idt82p33. 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_IDTCM 1348c2ecf20Sopenharmony_ci tristate "IDT CLOCKMATRIX as PTP clock" 1358c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK && I2C 1368c2ecf20Sopenharmony_ci default n 1378c2ecf20Sopenharmony_ci help 1388c2ecf20Sopenharmony_ci This driver adds support for using IDT CLOCKMATRIX(TM) as a PTP 1398c2ecf20Sopenharmony_ci clock. This clock is only useful if your time stamping MAC 1408c2ecf20Sopenharmony_ci is connected to the IDT chip. 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 1438c2ecf20Sopenharmony_ci will be called ptp_clockmatrix. 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ciconfig PTP_1588_CLOCK_VMW 1468c2ecf20Sopenharmony_ci tristate "VMware virtual PTP clock" 1478c2ecf20Sopenharmony_ci depends on ACPI && HYPERVISOR_GUEST && X86 1488c2ecf20Sopenharmony_ci depends on PTP_1588_CLOCK 1498c2ecf20Sopenharmony_ci help 1508c2ecf20Sopenharmony_ci This driver adds support for using VMware virtual precision 1518c2ecf20Sopenharmony_ci clock device as a PTP clock. This is only useful in virtual 1528c2ecf20Sopenharmony_ci machines running on VMware virtual infrastructure. 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the module 1558c2ecf20Sopenharmony_ci will be called ptp_vmw. 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ciendmenu 158