clk: imx: scu: allow scu clk to take device pointer
authorDong Aisheng <aisheng.dong@nxp.com>
Wed, 29 Jul 2020 08:00:12 +0000 (16:00 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 26 Oct 2020 02:53:51 +0000 (10:53 +0800)
Used to support runtime pm.

Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Michael Turquette <mturquette@baylibre.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
drivers/clk/imx/clk-scu.c
drivers/clk/imx/clk-scu.h

index dae2529bf64e0c136a88a82379115ebc61104e0c..a67cca0a32adce91e572671699ff110fc483f4f8 100644 (file)
@@ -387,8 +387,9 @@ static const struct clk_ops clk_scu_cpu_ops = {
        .unprepare = clk_scu_unprepare,
 };
 
-struct clk_hw *__imx_clk_scu(const char *name, const char * const *parents,
-                            int num_parents, u32 rsrc_id, u8 clk_type)
+struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
+                            const char * const *parents, int num_parents,
+                            u32 rsrc_id, u8 clk_type)
 {
        struct clk_init_data init;
        struct clk_scu *clk;
@@ -422,7 +423,7 @@ struct clk_hw *__imx_clk_scu(const char *name, const char * const *parents,
        clk->hw.init = &init;
 
        hw = &clk->hw;
-       ret = clk_hw_register(NULL, hw);
+       ret = clk_hw_register(dev, hw);
        if (ret) {
                kfree(clk);
                hw = ERR_PTR(ret);
@@ -453,7 +454,7 @@ static int imx_clk_scu_probe(struct platform_device *pdev)
        struct imx_scu_clk_node *clk = dev_get_platdata(dev);
        struct clk_hw *hw;
 
-       hw = __imx_clk_scu(clk->name, clk->parents, clk->num_parents,
+       hw = __imx_clk_scu(NULL, clk->name, clk->parents, clk->num_parents,
                           clk->rsrc, clk->clk_type);
        if (IS_ERR(hw))
                return PTR_ERR(hw);
index f7480898ea74e18d2058814e2f1057b21ffd907a..22976d64a96a66f8e7cba4df05110473f096c52e 100644 (file)
@@ -19,8 +19,9 @@ struct clk_hw *imx_clk_scu_alloc_dev(const char *name,
                                     const char * const *parents,
                                     int num_parents, u32 rsrc_id, u8 clk_type);
 
-struct clk_hw *__imx_clk_scu(const char *name, const char * const *parents,
-                            int num_parents, u32 rsrc_id, u8 clk_type);
+struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
+                            const char * const *parents, int num_parents,
+                            u32 rsrc_id, u8 clk_type);
 
 void imx_clk_scu_unregister(void);
 
@@ -30,7 +31,7 @@ static inline struct clk_hw *imx_clk_scu(const char *name, u32 rsrc_id,
        if (clk_cells == 2)
                return imx_clk_scu_alloc_dev(name, NULL, 0, rsrc_id, clk_type);
        else
-               return __imx_clk_scu(name, NULL, 0, rsrc_id, clk_type);
+               return __imx_clk_scu(NULL, name, NULL, 0, rsrc_id, clk_type);
 }
 
 static inline struct clk_hw *imx_clk_scu2(const char *name, const char * const *parents,
@@ -40,7 +41,7 @@ static inline struct clk_hw *imx_clk_scu2(const char *name, const char * const *
        if (clk_cells == 2)
                return imx_clk_scu_alloc_dev(name, parents, num_parents, rsrc_id, clk_type);
        else
-               return __imx_clk_scu(name, parents, num_parents, rsrc_id, clk_type);
+               return __imx_clk_scu(NULL, name, parents, num_parents, rsrc_id, clk_type);
 }
 
 struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,