brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · 6099d77 Raw
91 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/* TI K3 AM65 CPTS driver interface3 *4 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com5 */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)21void am65_cpts_release(struct am65_cpts *cpts);22struct am65_cpts *am65_cpts_create(struct device *dev, void __iomem *regs,23				   struct device_node *node);24int am65_cpts_phc_index(struct am65_cpts *cpts);25void am65_cpts_rx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);26void am65_cpts_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);27void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts, struct sk_buff *skb);28u64 am65_cpts_ns_gettime(struct am65_cpts *cpts);29int am65_cpts_estf_enable(struct am65_cpts *cpts, int idx,30			  struct am65_cpts_estf_cfg *cfg);31void am65_cpts_estf_disable(struct am65_cpts *cpts, int idx);32void am65_cpts_suspend(struct am65_cpts *cpts);33void am65_cpts_resume(struct am65_cpts *cpts);34#else35static inline void am65_cpts_release(struct am65_cpts *cpts)36{37}38 39static inline struct am65_cpts *am65_cpts_create(struct device *dev,40						 void __iomem *regs,41						 struct device_node *node)42{43	return ERR_PTR(-EOPNOTSUPP);44}45 46static inline int am65_cpts_phc_index(struct am65_cpts *cpts)47{48	return -1;49}50 51static inline void am65_cpts_rx_timestamp(struct am65_cpts *cpts,52					  struct sk_buff *skb)53{54}55 56static inline void am65_cpts_tx_timestamp(struct am65_cpts *cpts,57					  struct sk_buff *skb)58{59}60 61static inline void am65_cpts_prep_tx_timestamp(struct am65_cpts *cpts,62					       struct sk_buff *skb)63{64}65 66static inline s64 am65_cpts_ns_gettime(struct am65_cpts *cpts)67{68	return 0;69}70 71static inline int am65_cpts_estf_enable(struct am65_cpts *cpts, int idx,72					struct am65_cpts_estf_cfg *cfg)73{74	return 0;75}76 77static inline void am65_cpts_estf_disable(struct am65_cpts *cpts, int idx)78{79}80 81static inline void am65_cpts_suspend(struct am65_cpts *cpts)82{83}84 85static inline void am65_cpts_resume(struct am65_cpts *cpts)86{87}88#endif89 90#endif /* K3_CPTS_H_ */91