diff options
author | Tom Rini <trini@konsulko.com> | 2018-06-14 07:20:41 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-06-14 07:20:41 -0400 |
commit | 606fddd76c7a045c09d544357806b0b4de4845c7 (patch) | |
tree | 5caaf0bcc020c1cefea322807e179f1f16a644ea /drivers/net/designware.c | |
parent | 66398944f53921ec641e1c2202390933767dbb87 (diff) | |
parent | 5b2c9a6ce3ce66796e8c375133da8340c7ab2adc (diff) |
Merge branch 'master' of git://git.denx.de/u-boot-net
Diffstat (limited to 'drivers/net/designware.c')
-rw-r--r-- | drivers/net/designware.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index cf125210d88..10a87096b72 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -280,6 +280,15 @@ int designware_eth_init(struct dw_eth_dev *priv, u8 *enetaddr) writel(readl(&dma_p->busmode) | DMAMAC_SRST, &dma_p->busmode); + /* + * When a MII PHY is used, we must set the PS bit for the DMA + * reset to succeed. + */ + if (priv->phydev->interface == PHY_INTERFACE_MODE_MII) + writel(readl(&mac_p->conf) | MII_PORTSELECT, &mac_p->conf); + else + writel(readl(&mac_p->conf) & ~MII_PORTSELECT, &mac_p->conf); + start = get_timer(0); while (readl(&dma_p->busmode) & DMAMAC_SRST) { if (get_timer(start) >= CONFIG_MACRESET_TIMEOUT) { |