#include <linux/kernel.h>
#include <linux/bitfield.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/mii.h>
#include <linux/phy.h>
#include "mdio-open-alliance.h"
#define PHY_ID_NCN26000 …
#define NCN26000_REG_IRQ_CTL …
#define NCN26000_REG_IRQ_STATUS …
#define NCN26000_BCMR_LINK_CTRL_BIT …
#define NCN26000_BMSR_LINK_STATUS_BIT …
#define NCN26000_IRQ_LINKST_BIT …
#define NCN26000_IRQ_PLCAST_BIT …
#define NCN26000_IRQ_LJABBER_BIT …
#define NCN26000_IRQ_RJABBER_BIT …
#define NCN26000_IRQ_PLCAREC_BIT …
#define NCN26000_IRQ_PHYSCOL_BIT …
#define NCN26000_IRQ_RESET_BIT …
#define TO_TMR_DEFAULT …
static int ncn26000_config_init(struct phy_device *phydev)
{ … }
static int ncn26000_config_aneg(struct phy_device *phydev)
{ … }
static int ncn26000_read_status(struct phy_device *phydev)
{ … }
static irqreturn_t ncn26000_handle_interrupt(struct phy_device *phydev)
{ … }
static int ncn26000_config_intr(struct phy_device *phydev)
{ … }
static struct phy_driver ncn26000_driver[] = …;
module_phy_driver(ncn26000_driver);
static struct mdio_device_id __maybe_unused ncn26000_tbl[] = …;
MODULE_DEVICE_TABLE(mdio, ncn26000_tbl);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;