mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
57a10d8c11
The IDT 82P33 Synchronization Management Unit (SMU) family provides tools to manage timing references, clock sources and timing paths for IEEE 1588 / Precision Time Protocol (PTP) and Synchronous Ethernet (SyncE) based clocks. The device supports up to three independent timing paths that control: PTP clock synthesis; SyncE clock generation; and general purpose frequency translation. The device supports physical layer timing with Digital PLLs (DPLLs) and it supports packet based timing with Digitally Controlled Oscillators (DCOs). This patch adds support for ptp clock based on the device. Changes since v1: - As suggested by Richard Cochran: 1. Replace _mask_bit_count with the existing hweight8 2. Prefix all functions with idt82p33 3. Fix white space issues in Kconfig and Makefile 4. Remove forward declaration 5. Use adjfine instead of adjfreq for better resolution - As suggested by David Miller: 1. Replace CHAN_INIT macro with a static function idt82p33_channel_init 2. Employ reverse christmas tree ordering for local variables 3. Fix indentation problem by appropriate number of TAB then SPACE character Signed-off-by: Min Li <min.li.xe@renesas.com> Signed-off-by: David S. Miller <davem@davemloft.net>
143 lines
4.6 KiB
Plaintext
143 lines
4.6 KiB
Plaintext
# 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
|
|
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_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
|
|
---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 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 X86_32 || COMPILE_TEST
|
|
depends on HAS_IOMEM && NET
|
|
imply 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
|
|
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.
|
|
|
|
endmenu
|