#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/moduleparam.h>
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/ethtool.h>
#include <linux/mii.h>
#include <linux/phy.h>
#define MII_XCIIS …
#define MII_XIE …
#define MII_XIE_DEFAULT_MASK …
#define STE101P_PHY_ID …
#define STE100P_PHY_ID …
static int ste10Xp_config_init(struct phy_device *phydev)
{ … }
static int ste10Xp_ack_interrupt(struct phy_device *phydev)
{ … }
static int ste10Xp_config_intr(struct phy_device *phydev)
{ … }
static irqreturn_t ste10Xp_handle_interrupt(struct phy_device *phydev)
{ … }
static struct phy_driver ste10xp_pdriver[] = …;
module_phy_driver(ste10xp_pdriver);
static struct mdio_device_id __maybe_unused ste10Xp_tbl[] = …;
MODULE_DEVICE_TABLE(mdio, ste10Xp_tbl);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;