The i.MX95 ENETC has been upgraded to revision 4.1, which is different from the LS1028A ENETC (revision 1.0) except for the SI part. Therefore, the fsl-enetc driver is incompatible with i.MX95 ENETC PF. So add new nxp-enetc4 driver to support i.MX95 ENETC PF, and this driver will be used to support the ENETC PF with major revision 4 for other SoCs in the future. Currently, the nxp-enetc4 driver only supports basic transmission feature for i.MX95 ENETC PF, the more basic and advanced features will be added in the subsequent patches. In addition, PCS support has not been added yet, so 10G ENETC (ENETC instance 2) is not supported now. Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
19 lines
798 B
C
19 lines
798 B
C
/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
|
|
/* Copyright 2024 NXP */
|
|
|
|
#include "enetc_pf.h"
|
|
|
|
int enetc_pf_set_mac_addr(struct net_device *ndev, void *addr);
|
|
int enetc_setup_mac_addresses(struct device_node *np, struct enetc_pf *pf);
|
|
void enetc_pf_netdev_setup(struct enetc_si *si, struct net_device *ndev,
|
|
const struct net_device_ops *ndev_ops);
|
|
int enetc_mdiobus_create(struct enetc_pf *pf, struct device_node *node);
|
|
void enetc_mdiobus_destroy(struct enetc_pf *pf);
|
|
int enetc_phylink_create(struct enetc_ndev_priv *priv, struct device_node *node,
|
|
const struct phylink_mac_ops *ops);
|
|
void enetc_phylink_destroy(struct enetc_ndev_priv *priv);
|
|
|
|
static inline u16 enetc_get_ip_revision(struct enetc_hw *hw)
|
|
{
|
|
return enetc_global_rd(hw, ENETC_G_EIPBRR0) & EIPBRR0_REVISION;
|
|
}
|