#include <linux/delay.h>
#include <linux/module.h>
#include <linux/phy.h>
enum { … };
static int bcm84881_wait_init(struct phy_device *phydev)
{ … }
static void bcm84881_fill_possible_interfaces(struct phy_device *phydev)
{ … }
static int bcm84881_config_init(struct phy_device *phydev)
{ … }
static int bcm84881_probe(struct phy_device *phydev)
{ … }
static int bcm84881_get_features(struct phy_device *phydev)
{ … }
static int bcm84881_config_aneg(struct phy_device *phydev)
{ … }
static int bcm84881_aneg_done(struct phy_device *phydev)
{ … }
static int bcm84881_read_status(struct phy_device *phydev)
{ … }
static struct phy_driver bcm84881_drivers[] = …;
module_phy_driver(bcm84881_drivers);
static struct mdio_device_id __maybe_unused bcm84881_tbl[] = …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_DEVICE_TABLE(mdio, bcm84881_tbl);
MODULE_LICENSE(…) …;