18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ 28c2ecf20Sopenharmony_ci/* Copyright 2019 NXP */ 38c2ecf20Sopenharmony_ci#ifndef DPAA2_MAC_H 48c2ecf20Sopenharmony_ci#define DPAA2_MAC_H 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <linux/of.h> 78c2ecf20Sopenharmony_ci#include <linux/of_mdio.h> 88c2ecf20Sopenharmony_ci#include <linux/of_net.h> 98c2ecf20Sopenharmony_ci#include <linux/phylink.h> 108c2ecf20Sopenharmony_ci#include <linux/pcs-lynx.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include "dpmac.h" 138c2ecf20Sopenharmony_ci#include "dpmac-cmd.h" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistruct dpaa2_mac { 168c2ecf20Sopenharmony_ci struct fsl_mc_device *mc_dev; 178c2ecf20Sopenharmony_ci struct dpmac_link_state state; 188c2ecf20Sopenharmony_ci struct net_device *net_dev; 198c2ecf20Sopenharmony_ci struct fsl_mc_io *mc_io; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci struct phylink_config phylink_config; 228c2ecf20Sopenharmony_ci struct phylink *phylink; 238c2ecf20Sopenharmony_ci phy_interface_t if_mode; 248c2ecf20Sopenharmony_ci enum dpmac_link_type if_link_type; 258c2ecf20Sopenharmony_ci struct lynx_pcs *pcs; 268c2ecf20Sopenharmony_ci}; 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_cibool dpaa2_mac_is_type_fixed(struct fsl_mc_device *dpmac_dev, 298c2ecf20Sopenharmony_ci struct fsl_mc_io *mc_io); 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ciint dpaa2_mac_connect(struct dpaa2_mac *mac); 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_civoid dpaa2_mac_disconnect(struct dpaa2_mac *mac); 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciint dpaa2_mac_get_sset_count(void); 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_civoid dpaa2_mac_get_strings(u8 *data); 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_civoid dpaa2_mac_get_ethtool_stats(struct dpaa2_mac *mac, u64 *data); 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci#endif /* DPAA2_MAC_H */ 42