bcm53xx: backport MDIO bus clock initialization fix
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
parent
51abaf722c
commit
8adeb4e5d0
2 changed files with 96 additions and 0 deletions
|
@ -0,0 +1,48 @@
|
||||||
|
From bb1a619735b4660f21bce3e728b937640024b4ad Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yendapally Reddy Dhananjaya Reddy <yendapally.reddy@broadcom.com>
|
||||||
|
Date: Wed, 8 Feb 2017 17:14:26 -0500
|
||||||
|
Subject: [PATCH] net: phy: Initialize mdio clock at probe function
|
||||||
|
|
||||||
|
USB PHYs need the MDIO clock divisor enabled earlier to work.
|
||||||
|
Initialize mdio clock divisor in probe function. The ext bus
|
||||||
|
bit available in the same register will be used by mdio mux
|
||||||
|
to enable external mdio.
|
||||||
|
|
||||||
|
Signed-off-by: Yendapally Reddy Dhananjaya Reddy <yendapally.reddy@broadcom.com>
|
||||||
|
Fixes: ddc24ae1 ("net: phy: Broadcom iProc MDIO bus driver")
|
||||||
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
|
Signed-off-by: Jon Mason <jon.mason@broadcom.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
drivers/net/phy/mdio-bcm-iproc.c | 6 ++----
|
||||||
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/phy/mdio-bcm-iproc.c
|
||||||
|
+++ b/drivers/net/phy/mdio-bcm-iproc.c
|
||||||
|
@@ -81,8 +81,6 @@ static int iproc_mdio_read(struct mii_bu
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
|
- iproc_mdio_config_clk(priv->base);
|
||||||
|
-
|
||||||
|
/* Prepare the read operation */
|
||||||
|
cmd = (MII_DATA_TA_VAL << MII_DATA_TA_SHIFT) |
|
||||||
|
(reg << MII_DATA_RA_SHIFT) |
|
||||||
|
@@ -112,8 +110,6 @@ static int iproc_mdio_write(struct mii_b
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
|
- iproc_mdio_config_clk(priv->base);
|
||||||
|
-
|
||||||
|
/* Prepare the write operation */
|
||||||
|
cmd = (MII_DATA_TA_VAL << MII_DATA_TA_SHIFT) |
|
||||||
|
(reg << MII_DATA_RA_SHIFT) |
|
||||||
|
@@ -163,6 +159,8 @@ static int iproc_mdio_probe(struct platf
|
||||||
|
bus->read = iproc_mdio_read;
|
||||||
|
bus->write = iproc_mdio_write;
|
||||||
|
|
||||||
|
+ iproc_mdio_config_clk(priv->base);
|
||||||
|
+
|
||||||
|
rc = of_mdiobus_register(bus, pdev->dev.of_node);
|
||||||
|
if (rc) {
|
||||||
|
dev_err(&pdev->dev, "MDIO bus registration failed\n");
|
|
@ -0,0 +1,48 @@
|
||||||
|
From bb1a619735b4660f21bce3e728b937640024b4ad Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yendapally Reddy Dhananjaya Reddy <yendapally.reddy@broadcom.com>
|
||||||
|
Date: Wed, 8 Feb 2017 17:14:26 -0500
|
||||||
|
Subject: [PATCH] net: phy: Initialize mdio clock at probe function
|
||||||
|
|
||||||
|
USB PHYs need the MDIO clock divisor enabled earlier to work.
|
||||||
|
Initialize mdio clock divisor in probe function. The ext bus
|
||||||
|
bit available in the same register will be used by mdio mux
|
||||||
|
to enable external mdio.
|
||||||
|
|
||||||
|
Signed-off-by: Yendapally Reddy Dhananjaya Reddy <yendapally.reddy@broadcom.com>
|
||||||
|
Fixes: ddc24ae1 ("net: phy: Broadcom iProc MDIO bus driver")
|
||||||
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
|
Signed-off-by: Jon Mason <jon.mason@broadcom.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
drivers/net/phy/mdio-bcm-iproc.c | 6 ++----
|
||||||
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/net/phy/mdio-bcm-iproc.c
|
||||||
|
+++ b/drivers/net/phy/mdio-bcm-iproc.c
|
||||||
|
@@ -81,8 +81,6 @@ static int iproc_mdio_read(struct mii_bu
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
|
- iproc_mdio_config_clk(priv->base);
|
||||||
|
-
|
||||||
|
/* Prepare the read operation */
|
||||||
|
cmd = (MII_DATA_TA_VAL << MII_DATA_TA_SHIFT) |
|
||||||
|
(reg << MII_DATA_RA_SHIFT) |
|
||||||
|
@@ -112,8 +110,6 @@ static int iproc_mdio_write(struct mii_b
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
|
- iproc_mdio_config_clk(priv->base);
|
||||||
|
-
|
||||||
|
/* Prepare the write operation */
|
||||||
|
cmd = (MII_DATA_TA_VAL << MII_DATA_TA_SHIFT) |
|
||||||
|
(reg << MII_DATA_RA_SHIFT) |
|
||||||
|
@@ -163,6 +159,8 @@ static int iproc_mdio_probe(struct platf
|
||||||
|
bus->read = iproc_mdio_read;
|
||||||
|
bus->write = iproc_mdio_write;
|
||||||
|
|
||||||
|
+ iproc_mdio_config_clk(priv->base);
|
||||||
|
+
|
||||||
|
rc = of_mdiobus_register(bus, pdev->dev.of_node);
|
||||||
|
if (rc) {
|
||||||
|
dev_err(&pdev->dev, "MDIO bus registration failed\n");
|
Loading…
Reference in a new issue