]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: zynq_gem: Use max-speed property from dt
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Thu, 21 Sep 2017 04:52:21 +0000 (10:22 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 31 Jan 2018 12:15:49 +0000 (13:15 +0100)
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

index 1dfd631e1a3c6448e4fd0cbb2e4b1d5640c4a211..fda55f3bf019ad5d44595dfd4ac7004297aa7514 100644 (file)
@@ -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;
 };
 
@@ -340,6 +341,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)
@@ -703,6 +710,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");