#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(…);