diff options
author | Yi Guo <yig@marvell.com> | 2021-09-28 17:01:01 +0530 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-09-28 13:50:37 +0100 |
commit | 99bbc4ae69b9798b8cd6cbf3ec62a60a17044b1f (patch) | |
tree | 3ec121303c6910023346d9110e3a4a657477c376 /drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h | |
parent | octeontx2-af: Use ptp input clock info from firmware data (diff) | |
download | linux-dev-99bbc4ae69b9798b8cd6cbf3ec62a60a17044b1f.tar.xz linux-dev-99bbc4ae69b9798b8cd6cbf3ec62a60a17044b1f.zip |
octeontx2-af: Add external ptp input clock
PTP hardware block can be configured to utilize
the external clock. Also the current ptp timestamp
can be captured when external trigger is applied on
a gpio pin. These features are required in scenarios
like connecting a external timing device to the chip
for time synchronization. The timing device provides
the clock and trigger(PPS signal) to the PTP block.
This patch does the following:
1. configures PTP block to use external clock
frequency and timestamp capture on external event.
2. sends PTP_REQ_EXTTS events to kernel ptp phc susbsytem
with captured timestamps
3. aligns PPS edge to adjusted ptp clock in the ptp device
by setting the PPS_THRESH to the reminder of the last
timestamp value captured by external PPS
Signed-off-by: Yi Guo <yig@marvell.com>
Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h')
-rw-r--r-- | drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h index 8e51a1db7e29..0a792fce55f1 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h @@ -264,6 +264,12 @@ struct otx2_ptp { struct cyclecounter cycle_counter; struct timecounter time_counter; + + struct delayed_work extts_work; + u64 last_extts; + u64 thresh; + + struct ptp_pin_desc extts_config; }; #define OTX2_HW_TIMESTAMP_LEN 8 |