linux/drivers/net/dsa/ocelot/felix.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright 2019 NXP
 */
#ifndef _MSCC_FELIX_H
#define _MSCC_FELIX_H

#define ocelot_to_felix(o)
#define FELIX_MAC_QUIRKS

#define OCELOT_PORT_MODE_NONE
#define OCELOT_PORT_MODE_INTERNAL
#define OCELOT_PORT_MODE_SGMII
#define OCELOT_PORT_MODE_QSGMII
#define OCELOT_PORT_MODE_2500BASEX
#define OCELOT_PORT_MODE_USXGMII
#define OCELOT_PORT_MODE_1000BASEX

struct device_node;

/* Platform-specific information */
struct felix_info {};

/* Methods for initializing the hardware resources specific to a tagging
 * protocol (like the NPI port, for "ocelot" or "seville", or the VCAP TCAMs,
 * for "ocelot-8021q").
 * It is important that the resources configured here do not have side effects
 * for the other tagging protocols. If that is the case, their configuration
 * needs to go to felix_tag_proto_setup_shared().
 */
struct felix_tag_proto_ops {};

/* DSA glue / front-end for struct ocelot */
struct felix {};

int felix_register_switch(struct device *dev, resource_size_t switch_base,
			  int num_flooding_pgids, bool ptp,
			  bool mm_supported,
			  enum dsa_tag_protocol init_tag_proto,
			  const struct felix_info *info);
struct net_device *felix_port_to_netdev(struct ocelot *ocelot, int port);
int felix_netdev_to_port(struct net_device *dev);

#endif