diff mbox series

[U-Boot] net: zynq_gem: Use max-speed property from dt

Message ID 31a6b341ff05743925f7ae28e91b76bddacb9461.1523528535.git.michal.simek@xilinx.com
State Accepted
Commit 69065e8ff455e470b04c439e93650e39b005535a
Delegated to: Joe Hershberger
Headers show
Series [U-Boot] net: zynq_gem: Use max-speed property from dt | expand

Commit Message

Michal Simek April 12, 2018, 10:22 a.m. UTC
From: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>

Add support to use max-speed property from dt for
determining the supported speed. Use 1000Mbps as
default.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 drivers/net/zynq_gem.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Joe Hershberger April 12, 2018, 5:15 p.m. UTC | #1
On Thu, Apr 12, 2018 at 5:22 AM, Michal Simek <michal.simek@xilinx.com> wrote:
> From: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
>
> Add support to use max-speed property from dt for
> determining the supported speed. Use 1000Mbps as
> default.
>
> Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>

Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger April 15, 2018, 4:16 a.m. UTC | #2
Hi Michal,

https://patchwork.ozlabs.org/patch/897599/ was applied to http://git.denx.de/?p=u-boot/u-boot-net.git

Thanks!
-Joe
diff mbox series

Patch

diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index 1390c36c6141..dd36a8c22aa7 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -182,6 +182,7 @@  struct zynq_gem_priv {
 	int phy_of_handle;
 	struct mii_dev *bus;
 	struct clk clk;
+	u32 max_speed;
 	bool int_pcs;
 };
 
@@ -341,6 +342,12 @@  static int zynq_phy_init(struct udevice *dev)
 
 	priv->phydev->supported &= supported | ADVERTISED_Pause |
 				  ADVERTISED_Asym_Pause;
+	if (priv->max_speed) {
+		ret = phy_set_supported(priv->phydev, priv->max_speed);
+		if (ret)
+			return ret;
+	}
+
 	priv->phydev->advertising = priv->phydev->supported;
 
 	if (priv->phy_of_handle > 0)
@@ -704,6 +711,8 @@  static int zynq_gem_ofdata_to_platdata(struct udevice *dev)
 	}
 	priv->interface = pdata->phy_interface;
 
+	priv->max_speed = fdtdec_get_uint(gd->fdt_blob, priv->phy_of_handle,
+					  "max-speed", SPEED_1000);
 	priv->int_pcs = fdtdec_get_bool(gd->fdt_blob, node,
 					"is-internal-pcspma");