brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · c1ec9ef Raw
61 lines · c
1/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */2/* Copyright 2019 NXP */3#ifndef DPAA2_MAC_H4#define DPAA2_MAC_H5 6#include <linux/of.h>7#include <linux/of_mdio.h>8#include <linux/of_net.h>9#include <linux/phylink.h>10 11#include "dpmac.h"12#include "dpmac-cmd.h"13 14struct dpaa2_mac {15	struct fsl_mc_device *mc_dev;16	struct dpmac_link_state state;17	struct net_device *net_dev;18	struct fsl_mc_io *mc_io;19	struct dpmac_attr attr;20	u16 ver_major, ver_minor;21	unsigned long features;22 23	struct phylink_config phylink_config;24	struct phylink *phylink;25	phy_interface_t if_mode;26	enum dpmac_link_type if_link_type;27	struct phylink_pcs *pcs;28	struct fwnode_handle *fw_node;29 30	struct phy *serdes_phy;31};32 33static inline bool dpaa2_mac_is_type_phy(struct dpaa2_mac *mac)34{35	if (!mac)36		return false;37 38	return mac->attr.link_type == DPMAC_LINK_TYPE_PHY ||39	       mac->attr.link_type == DPMAC_LINK_TYPE_BACKPLANE;40}41 42int dpaa2_mac_open(struct dpaa2_mac *mac);43 44void dpaa2_mac_close(struct dpaa2_mac *mac);45 46int dpaa2_mac_connect(struct dpaa2_mac *mac);47 48void dpaa2_mac_disconnect(struct dpaa2_mac *mac);49 50int dpaa2_mac_get_sset_count(void);51 52void dpaa2_mac_get_strings(u8 *data);53 54void dpaa2_mac_get_ethtool_stats(struct dpaa2_mac *mac, u64 *data);55 56void dpaa2_mac_start(struct dpaa2_mac *mac);57 58void dpaa2_mac_stop(struct dpaa2_mac *mac);59 60#endif /* DPAA2_MAC_H */61