[PATCH v3 5/8] clk: clocking-wizard: Skip s_axi_aclk for static-config
Shubhrajyoti Datta <[email protected]> Fri, 31 Jul 2026 12:50:46 +0530
| Newsgroups | org.kernel.vger.linux-clk,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
For static-config mode the AXI bus interface is not used, so there is no need to get and enable s_axi_aclk. Move the axi_clk setup inside the non-static-config branch. Signed-off-by: Shubhrajyoti Datta <[email protected]> --- (no changes since v1) drivers/clk/xilinx/clk-xlnx-clock-wizard.c | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/clk/xilinx/clk-xlnx-clock-wizard.c b/drivers/clk/xilinx/clk-xlnx-clock-wizard.c index 1332abc8a950..c79733f58082 100644 --- a/drivers/clk/xilinx/clk-xlnx-clock-wizard.c +++ b/drivers/clk/xilinx/clk-xlnx-clock-wizard.c @@ -1243,7 +1243,6 @@ static int clk_wzrd_probe(struct platform_device *pdev) struct device_node *np = pdev->dev.of_node; struct clk_wzrd *clk_wzrd; const char *clk_name; - unsigned long rate; struct clk_hw *hw; int nr_outputs; int ret, i; @@ -1259,22 +1258,24 @@ static int clk_wzrd_probe(struct platform_device *pdev) clk_wzrd->clk_data.num = nr_outputs; platform_set_drvdata(pdev, clk_wzrd); - clk_wzrd->axi_clk = devm_clk_get_enabled(&pdev->dev, "s_axi_aclk"); - if (IS_ERR(clk_wzrd->axi_clk)) - return dev_err_probe(&pdev->dev, PTR_ERR(clk_wzrd->axi_clk), - "s_axi_aclk not found\n"); - rate = clk_get_rate(clk_wzrd->axi_clk); - if (rate > WZRD_ACLK_MAX_FREQ) { - dev_err(&pdev->dev, "s_axi_aclk frequency (%lu) too high\n", rate); - return -EINVAL; - } - clk_wzrd->clk_in1 = devm_clk_get(&pdev->dev, "clk_in1"); if (IS_ERR(clk_wzrd->clk_in1)) return dev_err_probe(&pdev->dev, PTR_ERR(clk_wzrd->clk_in1), "failed to get clk_in1\n"); if (!of_property_present(np, "xlnx,static-config")) { + unsigned long rate; + + clk_wzrd->axi_clk = devm_clk_get_enabled(&pdev->dev, "s_axi_aclk"); + if (IS_ERR(clk_wzrd->axi_clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(clk_wzrd->axi_clk), + "s_axi_aclk not found\n"); + rate = clk_get_rate(clk_wzrd->axi_clk); + if (rate > WZRD_ACLK_MAX_FREQ) { + dev_err(&pdev->dev, "s_axi_aclk frequency (%lu) too high\n", rate); + return -EINVAL; + } + clk_wzrd->base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(clk_wzrd->base)) return PTR_ERR(clk_wzrd->base); -- 2.34.1