#include <linux/module.h>
#include <linux/phy.h>
#define PHY_ID_CS4340 …
#define VILLA_GLOBAL_CHIP_ID_LSB …
#define VILLA_GLOBAL_CHIP_ID_MSB …
#define VILLA_GLOBAL_GPIO_1_INTS …
static int cortina_read_reg(struct phy_device *phydev, u16 regnum)
{ … }
static int cortina_read_status(struct phy_device *phydev)
{ … }
static int cortina_probe(struct phy_device *phydev)
{ … }
static struct phy_driver cortina_driver[] = …;
module_phy_driver(cortina_driver);
static struct mdio_device_id __maybe_unused cortina_tbl[] = …;
MODULE_DEVICE_TABLE(mdio, cortina_tbl);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;