summaryrefslogtreecommitdiff
path: root/drivers/net/fm/memac_phy.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2014-11-14 16:39:32 -0500
committerTom Rini <trini@ti.com>2014-11-14 16:39:32 -0500
commit2086e388d56cbb0e3737a6276f04f00f74bf6723 (patch)
tree280fe51e714f5124839d81e3e3a0a6967c9f81d3 /drivers/net/fm/memac_phy.c
parent6393c43c18a1aadcdcdd8551826eef15f50353d5 (diff)
parent94b383e7d843efe2618535f01776921751dd756b (diff)
downloadu-boot-imx-2086e388d56cbb0e3737a6276f04f00f74bf6723.zip
u-boot-imx-2086e388d56cbb0e3737a6276f04f00f74bf6723.tar.gz
u-boot-imx-2086e388d56cbb0e3737a6276f04f00f74bf6723.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx
Diffstat (limited to 'drivers/net/fm/memac_phy.c')
-rw-r--r--drivers/net/fm/memac_phy.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/fm/memac_phy.c b/drivers/net/fm/memac_phy.c
index 5f910c2..a155d89 100644
--- a/drivers/net/fm/memac_phy.c
+++ b/drivers/net/fm/memac_phy.c
@@ -71,6 +71,8 @@ int memac_mdio_read(struct mii_dev *bus, int port_addr, int dev_addr,
u32 c45 = 1;
if (dev_addr == MDIO_DEVAD_NONE) {
+ if (!strcmp(bus->name, DEFAULT_FM_TGEC_MDIO_NAME))
+ return 0xffff;
c45 = 0; /* clause 22 */
dev_addr = regnum & 0x1f;
clrbits_be32(&regs->mdio_stat, MDIO_STAT_ENC);
@@ -137,9 +139,12 @@ int fm_memac_mdio_init(bd_t *bis, struct memac_mdio_info *info)
* is zero, so MDIO clock is disabled.
* So, for proper functioning of MDIO, MDIO_CLK_DIV bits needs to
* be properly initialized.
+ * NEG bit default should be '1' as per FMAN-v3 RM, but on platform
+ * like T2080QDS, this bit default is '0', which leads to MDIO failure
+ * on XAUI PHY, so set this bit definitely.
*/
setbits_be32(&((struct memac_mdio_controller *)info->regs)->mdio_stat,
- MDIO_STAT_CLKDIV(258));
+ MDIO_STAT_CLKDIV(258) | MDIO_STAT_NEG);
return mdio_register(bus);
}