net: emaclite: Adopt clock support
authorAbin Joseph <abin.joseph@amd.com>
Wed, 9 Oct 2024 16:28:23 +0000 (21:58 +0530)
committerJakub Kicinski <kuba@kernel.org>
Fri, 11 Oct 2024 22:41:34 +0000 (15:41 -0700)
Adapt to use the clock framework. Add s_axi_aclk clock from the processor
bus clock domain and make clk optional to keep DTB backward compatibility.

Signed-off-by: Abin Joseph <abin.joseph@amd.com>
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/1728491303-1456171-4-git-send-email-radhey.shyam.pandey@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/xilinx/xilinx_emaclite.c

index 41858794252716b57e8d4278f47c57714f0accd4..ecf47107146dc75c4e8b38986ef92f5c3e6d1e00 100644 (file)
@@ -7,6 +7,7 @@
  * Copyright (c) 2007 - 2013 Xilinx, Inc.
  */
 
+#include <linux/clk.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/uaccess.h>
@@ -1091,6 +1092,7 @@ static int xemaclite_of_probe(struct platform_device *ofdev)
        struct net_device *ndev = NULL;
        struct net_local *lp = NULL;
        struct device *dev = &ofdev->dev;
+       struct clk *clkin;
 
        int rc = 0;
 
@@ -1127,6 +1129,11 @@ static int xemaclite_of_probe(struct platform_device *ofdev)
        lp->tx_ping_pong = get_bool(ofdev, "xlnx,tx-ping-pong");
        lp->rx_ping_pong = get_bool(ofdev, "xlnx,rx-ping-pong");
 
+       clkin = devm_clk_get_optional_enabled(&ofdev->dev, NULL);
+       if (IS_ERR(clkin))
+               return dev_err_probe(&ofdev->dev, PTR_ERR(clkin),
+                               "Failed to get and enable clock from Device Tree\n");
+
        rc = of_get_ethdev_address(ofdev->dev.of_node, ndev);
        if (rc) {
                dev_warn(dev, "No MAC address found, using random\n");