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