1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Marvell RVU Ethernet driver 3 * 4 * Copyright (C) 2020 Marvell. 5 * 6 */ 7 8 #ifndef OTX2_PTP_H 9 #define OTX2_PTP_H 10 11 static inline u64 otx2_ptp_convert_rx_timestamp(u64 timestamp) 12 { 13 return be64_to_cpu(*(__be64 *)×tamp); 14 } 15 16 static inline u64 otx2_ptp_convert_tx_timestamp(u64 timestamp) 17 { 18 return timestamp; 19 } 20 21 static inline u64 cn10k_ptp_convert_timestamp(u64 timestamp) 22 { 23 return ((timestamp >> 32) * NSEC_PER_SEC) + (timestamp & 0xFFFFFFFFUL); 24 } 25 26 int otx2_ptp_init(struct otx2_nic *pfvf); 27 void otx2_ptp_destroy(struct otx2_nic *pfvf); 28 29 int otx2_ptp_clock_index(struct otx2_nic *pfvf); 30 int otx2_ptp_tstamp2time(struct otx2_nic *pfvf, u64 tstamp, u64 *tsns); 31 32 #endif 33