am65-cpts.h (1795B)
1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* TI K3 AM65 CPTS driver interface 3 * 4 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com 5 */ 6 7#ifndef K3_CPTS_H_ 8#define K3_CPTS_H_ 9 10#include <linux/device.h> 11#include <linux/of.h> 12 13struct am65_cpts; 14 15struct am65_cpts_estf_cfg { 16 u64 ns_period; 17 u64 ns_start; 18}; 19 20#if IS_ENABLED(CONFIG_TI_K3_AM65_CPTS) 21struct am65_cpts *am65_cpts_create(struct device *dev, void __iomem *regs, 22 struct device_node *node); 23int am65_cpts_phc_index(struct am65_cpts *cpts); 24void am65_cpts_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb); 25void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb); 26void am65_cpts_rx_enable(struct am65_cpts *cpts, bool en); 27u64 am65_cpts_ns_gettime(struct am65_cpts *cpts); 28int am65_cpts_estf_enable(struct am65_cpts *cpts, int idx, 29 struct am65_cpts_estf_cfg *cfg); 30void am65_cpts_estf_disable(struct am65_cpts *cpts, int idx); 31#else 32static inline struct am65_cpts *am65_cpts_create(struct device *dev, 33 void __iomem *regs, 34 struct device_node *node) 35{ 36 return ERR_PTR(-EOPNOTSUPP); 37} 38 39static inline int am65_cpts_phc_index(struct am65_cpts *cpts) 40{ 41 return -1; 42} 43 44static inline void am65_cpts_tx_timestamp(struct am65_cpts *cpts, 45 struct sk_buff *skb) 46{ 47} 48 49static inline void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts, 50 struct sk_buff *skb) 51{ 52} 53 54static inline void am65_cpts_rx_enable(struct am65_cpts *cpts, bool en) 55{ 56} 57 58static inline s64 am65_cpts_ns_gettime(struct am65_cpts *cpts) 59{ 60 return 0; 61} 62 63static inline int am65_cpts_estf_enable(struct am65_cpts *cpts, int idx, 64 struct am65_cpts_estf_cfg *cfg) 65{ 66 return 0; 67} 68 69static inline void am65_cpts_estf_disable(struct am65_cpts *cpts, int idx) 70{ 71} 72#endif 73 74#endif /* K3_CPTS_H_ */