1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Marvell PTP driver
3  *
4  * Copyright (C) 2020 Marvell.
5  *
6  */
7 
8 #ifndef PTP_H
9 #define PTP_H
10 
11 #include <linux/timecounter.h>
12 #include <linux/time64.h>
13 #include <linux/spinlock.h>
14 
15 struct ptp {
16 	struct pci_dev *pdev;
17 	void __iomem *reg_base;
18 	u64 (*read_ptp_tstmp)(struct ptp *ptp);
19 	spinlock_t ptp_lock; /* lock */
20 	u32 clock_rate;
21 };
22 
23 struct ptp *ptp_get(void);
24 void ptp_put(struct ptp *ptp);
25 void ptp_start(struct ptp *ptp, u64 sclk, u32 ext_clk_freq, u32 extts);
26 
27 extern struct pci_driver ptp_driver;
28 
29 #endif
30