clk: versal: Add support to enable clocks
authorT Karthik Reddy <t.karthik.reddy@xilinx.com>
Wed, 3 Feb 2021 10:10:47 +0000 (03:10 -0700)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 23 Feb 2021 13:56:59 +0000 (14:56 +0100)
Add clock enable functionality in versal clock driver to enable
clocks from peripheral drivers using clk_ops.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/clk/clk_versal.c

index 908bc75..62523d2 100644 (file)
@@ -718,9 +718,20 @@ static ulong versal_clk_set_rate(struct clk *clk, ulong rate)
        return clk_rate;
 }
 
+static int versal_clk_enable(struct clk *clk)
+{
+       struct versal_clk_priv *priv = dev_get_priv(clk->dev);
+       u32 clk_id;
+
+       clk_id = priv->clk[clk->id].clk_id;
+
+       return xilinx_pm_request(PM_CLOCK_ENABLE, clk_id, 0, 0, 0, NULL);
+}
+
 static struct clk_ops versal_clk_ops = {
        .set_rate = versal_clk_set_rate,
        .get_rate = versal_clk_get_rate,
+       .enable = versal_clk_enable,
 };
 
 static const struct udevice_id versal_clk_ids[] = {