linux/drivers/net/ethernet/ti/am65-cpts.h
<<
>>
Prefs
   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_ */
  75