#include <linux/ethtool.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mii.h>
#include <linux/netdevice.h>
#include <linux/phy.h>
#define INTERNAL_EPHY_ID …
#define MII_INTERNAL_CTRL_STATUS …
#define SMI_ADDR_TSTCNTL …
#define SMI_ADDR_TSTREAD1 …
#define SMI_ADDR_TSTREAD2 …
#define SMI_ADDR_TSTWRITE …
#define MII_SPECIAL_CONTROL_STATUS …
#define MII_AUTO_MDIX_EN …
#define MII_MDIX_EN …
#define MII_SPEED_10 …
#define MII_SPEED_100 …
#define TSTCNTL_RD …
#define TSTCNTL_WR …
#define TSTMODE_ENABLE …
#define TSTMODE_DISABLE …
#define WR_ADDR_A7CFG …
static int rockchip_init_tstmode(struct phy_device *phydev)
{ … }
static int rockchip_close_tstmode(struct phy_device *phydev)
{ … }
static int rockchip_integrated_phy_analog_init(struct phy_device *phydev)
{ … }
static int rockchip_integrated_phy_config_init(struct phy_device *phydev)
{ … }
static void rockchip_link_change_notify(struct phy_device *phydev)
{ … }
static int rockchip_set_polarity(struct phy_device *phydev, int polarity)
{ … }
static int rockchip_config_aneg(struct phy_device *phydev)
{ … }
static int rockchip_phy_resume(struct phy_device *phydev)
{ … }
static struct phy_driver rockchip_phy_driver[] = …;
module_phy_driver(rockchip_phy_driver);
static struct mdio_device_id __maybe_unused rockchip_phy_tbl[] = …;
MODULE_DEVICE_TABLE(mdio, rockchip_phy_tbl);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;