| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * PTP hardware clock driver for the FemtoClock3 family of timing and
- * synchronization devices.
- *
- * Copyright (C) 2023 Integrated Device Technology, Inc., a Renesas Company.
- */
- #ifndef PTP_IDTFC3_H
- #define PTP_IDTFC3_H
- #include <linux/ktime.h>
- #include <linux/ptp_clock.h>
- #include <linux/regmap.h>
- #define FW_FILENAME "idtfc3.bin"
- #define MAX_FFO_PPB (244000)
- #define TDC_GET_PERIOD (10)
- struct idtfc3 {
- struct ptp_clock_info caps;
- struct ptp_clock *ptp_clock;
- struct device *dev;
- /* Mutex to protect operations from being interrupted */
- struct mutex *lock;
- struct device *mfd;
- struct regmap *regmap;
- struct idtfc3_hw_param hw_param;
- u32 sub_sync_count;
- u32 ns_per_sync;
- int tdc_offset_sign;
- u64 tdc_apll_freq;
- u32 time_ref_freq;
- u16 fod_n;
- u8 lpf_mode;
- /* Time counter */
- u32 last_counter;
- s64 ns;
- u32 ns_per_counter;
- u32 tc_update_period;
- u32 tc_write_timeout;
- s64 tod_write_overhead;
- };
- #endif /* PTP_IDTFC3_H */
|