#include <linux/module.h>
#include <linux/phy.h>
#include <linux/of.h>
#define PHY_ID_BCM8706 …
#define PHY_ID_BCM8727 …
#define BCM87XX_PMD_RX_SIGNAL_DETECT …
#define BCM87XX_10GBASER_PCS_STATUS …
#define BCM87XX_XGXS_LANE_STATUS …
#define BCM87XX_LASI_CONTROL …
#define BCM87XX_LASI_STATUS …
#if IS_ENABLED(CONFIG_OF_MDIO)
static int bcm87xx_of_reg_init(struct phy_device *phydev)
{ … }
#else
static int bcm87xx_of_reg_init(struct phy_device *phydev)
{
return 0;
}
#endif
static int bcm87xx_get_features(struct phy_device *phydev)
{ … }
static int bcm87xx_config_init(struct phy_device *phydev)
{ … }
static int bcm87xx_config_aneg(struct phy_device *phydev)
{ … }
static int bcm87xx_read_status(struct phy_device *phydev)
{ … }
static int bcm87xx_config_intr(struct phy_device *phydev)
{ … }
static irqreturn_t bcm87xx_handle_interrupt(struct phy_device *phydev)
{ … }
static int bcm8706_match_phy_device(struct phy_device *phydev)
{ … }
static int bcm8727_match_phy_device(struct phy_device *phydev)
{ … }
static struct phy_driver bcm87xx_driver[] = …;
module_phy_driver(bcm87xx_driver);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;