net: phy: xilinx-gmii2rgmii: Adopt clock support
authorVineeth Karumanchi <vineeth.karumanchi@amd.com>
Tue, 28 May 2024 06:20:08 +0000 (11:50 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 29 May 2024 12:10:57 +0000 (13:10 +0100)
Add clock support to the gmii_to_rgmii IP.
Make clk optional to keep DTB backward compatibility.

Signed-off-by: Vineeth Karumanchi <vineeth.karumanchi@amd.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/xilinx_gmii2rgmii.c

index 7b1bc5f..7c51dae 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/mii.h>
 #include <linux/mdio.h>
 #include <linux/phy.h>
+#include <linux/clk.h>
 #include <linux/of_mdio.h>
 
 #define XILINX_GMII2RGMII_REG          0x10
@@ -85,11 +86,17 @@ static int xgmiitorgmii_probe(struct mdio_device *mdiodev)
        struct device *dev = &mdiodev->dev;
        struct device_node *np = dev->of_node, *phy_node;
        struct gmii2rgmii *priv;
+       struct clk *clkin;
 
        priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
        if (!priv)
                return -ENOMEM;
 
+       clkin = devm_clk_get_optional_enabled(dev, NULL);
+       if (IS_ERR(clkin))
+               return dev_err_probe(dev, PTR_ERR(clkin),
+                                       "Failed to get and enable clock from Device Tree\n");
+
        phy_node = of_parse_phandle(np, "phy-handle", 0);
        if (!phy_node) {
                dev_err(dev, "Couldn't parse phy-handle\n");