From da7ff0332a3244d6173fba1507325efe45985801 Mon Sep 17 00:00:00 2001 From: Sham Muthayyan Date: Thu, 13 Jun 2019 12:42:11 +0530 Subject: [PATCH] ipq806x: Add MII RESET and AUTONEG for all phy devices Change-Id: I63972ccc1e9dc139ab282ee4ac66b1884ba5e4dc Signed-off-by: Sham Muthayyan --- arch/arm/include/asm/arch-ipq806x/ipq_gmac.h | 2 ++ drivers/net/ipq806x/ipq_gmac_eth.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/arch/arm/include/asm/arch-ipq806x/ipq_gmac.h b/arch/arm/include/asm/arch-ipq806x/ipq_gmac.h index b74ffb0230..37f5a43bcc 100644 --- a/arch/arm/include/asm/arch-ipq806x/ipq_gmac.h +++ b/arch/arm/include/asm/arch-ipq806x/ipq_gmac.h @@ -357,6 +357,8 @@ #define FORCE_RATE_10 (0 << 13) | (1 << 15) | (1 << 8) #define FORCE_RATE_100 (1 << 13) | (1 << 15) | (1 << 8) +#define BMCR_RESET 0x8000 + typedef struct { volatile u32 status; /* Status */ diff --git a/drivers/net/ipq806x/ipq_gmac_eth.c b/drivers/net/ipq806x/ipq_gmac_eth.c index 6e744b1baf..58b736cfd5 100644 --- a/drivers/net/ipq806x/ipq_gmac_eth.c +++ b/drivers/net/ipq806x/ipq_gmac_eth.c @@ -867,6 +867,8 @@ int ipq_gmac_init(ipq_gmac_board_cfg_t *gmac_cfg) strncpy(bb_miiphy_buses[i].name, gmac_cfg->phy_name, sizeof(bb_miiphy_buses[i].name)); miiphy_register(bb_miiphy_buses[i].name, bb_miiphy_read, bb_miiphy_write); + miiphy_write(bb_miiphy_buses[i].name, ipq_gmac_macs[i]->phy_address, + PHY_CONTROL_REG, BMCR_RESET | AUTO_NEG_ENABLE); } eth_register(dev[i]);