From b20a16ae5a2d134a25a25f441ea235600171a7cc Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Thu, 23 Feb 2012 10:08:07 -0600 Subject: [PATCH] Xilinx: ARM: net: Add xgmac support for the mii command This allows the MII command to access phys connected to the xgmac Signed-off-by: Joe Hershberger --- board/xilinx/dfe/xgmac.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/board/xilinx/dfe/xgmac.c b/board/xilinx/dfe/xgmac.c index e6effda6152..152ee9a0be0 100644 --- a/board/xilinx/dfe/xgmac.c +++ b/board/xilinx/dfe/xgmac.c @@ -3,6 +3,7 @@ #include #include +#include #include #include "xemacpss.h" @@ -63,6 +64,26 @@ int Xgmac_phy_mgmt_idle(XEmacPss * EmacPssInstancePtr) & XEMACPSS_NWSR_MDIOIDLE_MASK) == XEMACPSS_NWSR_MDIOIDLE_MASK); } +#if defined(CONFIG_CMD_MII) && !defined(CONFIG_BITBANGMII) +static int Xgmac_mii_read(const char *devname, unsigned char addr, + unsigned char reg, unsigned short *value) +{ + phy_spinwait(&EmacPssInstance); + XEmacPss_PhyRead(&EmacPssInstance, addr, reg, value); + phy_spinwait(&EmacPssInstance); + return 0; +} + +static int Xgmac_mii_write(const char *devname, unsigned char addr, + unsigned char reg, unsigned short value) +{ + phy_spinwait(&EmacPssInstance); + XEmacPss_PhyWrite(&EmacPssInstance, addr, reg, value); + phy_spinwait(&EmacPssInstance); + return 0; +} +#endif + static u32 phy_rd(XEmacPss * e, u32 a) { u16 PhyData; @@ -484,6 +505,9 @@ int Xgmac_register(bd_t * bis) eth_register(dev); +#if defined(CONFIG_CMD_MII) && !defined(CONFIG_BITBANGMII) + miiphy_register(dev->name, Xgmac_mii_read, Xgmac_mii_write); +#endif return 0; } -- 2.47.3