#include <linux/of_mdio.h>
#include <linux/phy.h>
#include <linux/iopoll.h>
#include <linux/acpi.h>
#include "emac.h"
#define EMAC_MDIO_CTRL …
#define EMAC_PHY_STS …
#define EMAC_MDIO_EX_CTRL …
#define MDIO_MODE …
#define MDIO_PR …
#define MDIO_AP_EN …
#define MDIO_BUSY …
#define MDIO_CLK_SEL_BMSK …
#define MDIO_CLK_SEL_SHFT …
#define MDIO_START …
#define SUP_PREAMBLE …
#define MDIO_RD_NWR …
#define MDIO_REG_ADDR_BMSK …
#define MDIO_REG_ADDR_SHFT …
#define MDIO_DATA_BMSK …
#define MDIO_DATA_SHFT …
#define PHY_ADDR_BMSK …
#define PHY_ADDR_SHFT …
#define MDIO_CLK_25_4 …
#define MDIO_CLK_25_28 …
#define MDIO_WAIT_TIMES …
#define MDIO_STATUS_DELAY_TIME …
static int emac_mdio_read(struct mii_bus *bus, int addr, int regnum)
{ … }
static int emac_mdio_write(struct mii_bus *bus, int addr, int regnum, u16 val)
{ … }
int emac_phy_config(struct platform_device *pdev, struct emac_adapter *adpt)
{ … }