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

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-lpcg-scu.c
drivers/clk/imx/clk-scu.h

index fab9c94..4363ab6 100644 (file)
@@ -81,9 +81,9 @@ static const struct clk_ops clk_lpcg_scu_ops = {
        .disable = clk_lpcg_scu_disable,
 };
 
-struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,
-                               unsigned long flags, void __iomem *reg,
-                               u8 bit_idx, bool hw_gate)
+struct clk_hw *__imx_clk_lpcg_scu(struct device *dev, const char *name,
+                                 const char *parent_name, unsigned long flags,
+                                 void __iomem *reg, u8 bit_idx, bool hw_gate)
 {
        struct clk_lpcg_scu *clk;
        struct clk_init_data init;
@@ -107,7 +107,7 @@ struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,
        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);
index 6a87952..faee1ba 100644 (file)
@@ -25,6 +25,11 @@ struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
 
 void imx_clk_scu_unregister(void);
 
+struct clk_hw *__imx_clk_lpcg_scu(struct device *dev, const char *name,
+                                 const char *parent_name, unsigned long flags,
+                                 void __iomem *reg, u8 bit_idx, bool hw_gate);
+void imx_clk_lpcg_scu_unregister(struct clk_hw *hw);
+
 static inline struct clk_hw *imx_clk_scu(const char *name, u32 rsrc_id,
                                         u8 clk_type, u8 clk_cells)
 {
@@ -44,8 +49,19 @@ static inline struct clk_hw *imx_clk_scu2(const char *name, const char * const *
                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,
-                               unsigned long flags, void __iomem *reg,
-                               u8 bit_idx, bool hw_gate);
-void imx_clk_lpcg_scu_unregister(struct clk_hw *hw);
+static inline struct clk_hw *imx_clk_lpcg_scu_dev(struct device *dev, const char *name,
+                                                 const char *parent_name, unsigned long flags,
+                                                 void __iomem *reg, u8 bit_idx, bool hw_gate)
+{
+       return __imx_clk_lpcg_scu(dev, name, parent_name, flags, reg,
+                                 bit_idx, hw_gate);
+}
+
+static inline struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,
+                                             unsigned long flags, void __iomem *reg,
+                                             u8 bit_idx, bool hw_gate)
+{
+       return __imx_clk_lpcg_scu(NULL, name, parent_name, flags, reg,
+                                 bit_idx, hw_gate);
+}
 #endif