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