linux/drivers/net/ethernet/mscc/ocelot_ptp.c

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/* Microsemi Ocelot PTP clock driver
 *
 * Copyright (c) 2017 Microsemi Corporation
 * Copyright 2020 NXP
 */
#include <linux/time64.h>

#include <linux/dsa/ocelot.h>
#include <linux/ptp_classify.h>
#include <soc/mscc/ocelot_ptp.h>
#include <soc/mscc/ocelot_sys.h>
#include <soc/mscc/ocelot_vcap.h>
#include <soc/mscc/ocelot.h>
#include "ocelot.h"

int ocelot_ptp_gettime64(struct ptp_clock_info *ptp, struct timespec64 *ts)
{}
EXPORT_SYMBOL();

int ocelot_ptp_settime64(struct ptp_clock_info *ptp,
			 const struct timespec64 *ts)
{}
EXPORT_SYMBOL();

int ocelot_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)
{}
EXPORT_SYMBOL();

int ocelot_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm)
{}
EXPORT_SYMBOL();

int ocelot_ptp_verify(struct ptp_clock_info *ptp, unsigned int pin,
		      enum ptp_pin_function func, unsigned int chan)
{}
EXPORT_SYMBOL();

int ocelot_ptp_enable(struct ptp_clock_info *ptp,
		      struct ptp_clock_request *rq, int on)
{}
EXPORT_SYMBOL();

static void ocelot_populate_l2_ptp_trap_key(struct ocelot_vcap_filter *trap)
{}

static void
ocelot_populate_ipv4_ptp_event_trap_key(struct ocelot_vcap_filter *trap)
{}

static void
ocelot_populate_ipv6_ptp_event_trap_key(struct ocelot_vcap_filter *trap)
{}

static void
ocelot_populate_ipv4_ptp_general_trap_key(struct ocelot_vcap_filter *trap)
{}

static void
ocelot_populate_ipv6_ptp_general_trap_key(struct ocelot_vcap_filter *trap)
{}

static int ocelot_l2_ptp_trap_add(struct ocelot *ocelot, int port)
{}

static int ocelot_l2_ptp_trap_del(struct ocelot *ocelot, int port)
{}

static int ocelot_ipv4_ptp_trap_add(struct ocelot *ocelot, int port)
{}

static int ocelot_ipv4_ptp_trap_del(struct ocelot *ocelot, int port)
{}

static int ocelot_ipv6_ptp_trap_add(struct ocelot *ocelot, int port)
{}

static int ocelot_ipv6_ptp_trap_del(struct ocelot *ocelot, int port)
{}

static int ocelot_setup_ptp_traps(struct ocelot *ocelot, int port,
				  bool l2, bool l4)
{}

static int ocelot_traps_to_ptp_rx_filter(unsigned int proto)
{}

int ocelot_hwstamp_get(struct ocelot *ocelot, int port, struct ifreq *ifr)
{}
EXPORT_SYMBOL();

int ocelot_hwstamp_set(struct ocelot *ocelot, int port, struct ifreq *ifr)
{}
EXPORT_SYMBOL();

int ocelot_get_ts_info(struct ocelot *ocelot, int port,
		       struct kernel_ethtool_ts_info *info)
{}
EXPORT_SYMBOL();

static int ocelot_port_add_txtstamp_skb(struct ocelot *ocelot, int port,
					struct sk_buff *clone)
{}

static bool ocelot_ptp_is_onestep_sync(struct sk_buff *skb,
				       unsigned int ptp_class)
{}

int ocelot_port_txtstamp_request(struct ocelot *ocelot, int port,
				 struct sk_buff *skb,
				 struct sk_buff **clone)
{}
EXPORT_SYMBOL();

static void ocelot_get_hwtimestamp(struct ocelot *ocelot,
				   struct timespec64 *ts)
{}

static bool ocelot_validate_ptp_skb(struct sk_buff *clone, u16 seqid)
{}

void ocelot_get_txtstamp(struct ocelot *ocelot)
{}
EXPORT_SYMBOL();

int ocelot_init_timestamp(struct ocelot *ocelot,
			  const struct ptp_clock_info *info)
{}
EXPORT_SYMBOL();

int ocelot_deinit_timestamp(struct ocelot *ocelot)
{}
EXPORT_SYMBOL();