Commit a4bfc85c authored by Dong Aisheng's avatar Dong Aisheng Committed by Shawn Guo

clk: imx: lpcg: allow lpcg clk to take device pointer

Used to support runtime pm.
Reviewed-by: default avatarStephen Boyd <sboyd@kernel.org>
Signed-off-by: default avatarDong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent d5f1e6a2
...@@ -81,9 +81,9 @@ static const struct clk_ops clk_lpcg_scu_ops = { ...@@ -81,9 +81,9 @@ static const struct clk_ops clk_lpcg_scu_ops = {
.disable = clk_lpcg_scu_disable, .disable = clk_lpcg_scu_disable,
}; };
struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name, struct clk_hw *__imx_clk_lpcg_scu(struct device *dev, const char *name,
unsigned long flags, void __iomem *reg, const char *parent_name, unsigned long flags,
u8 bit_idx, bool hw_gate) void __iomem *reg, u8 bit_idx, bool hw_gate)
{ {
struct clk_lpcg_scu *clk; struct clk_lpcg_scu *clk;
struct clk_init_data init; struct clk_init_data init;
...@@ -107,7 +107,7 @@ struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name, ...@@ -107,7 +107,7 @@ struct clk_hw *imx_clk_lpcg_scu(const char *name, const char *parent_name,
clk->hw.init = &init; clk->hw.init = &init;
hw = &clk->hw; hw = &clk->hw;
ret = clk_hw_register(NULL, hw); ret = clk_hw_register(dev, hw);
if (ret) { if (ret) {
kfree(clk); kfree(clk);
hw = ERR_PTR(ret); hw = ERR_PTR(ret);
......
...@@ -25,6 +25,11 @@ struct clk_hw *__imx_clk_scu(struct device *dev, const char *name, ...@@ -25,6 +25,11 @@ struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
void imx_clk_scu_unregister(void); 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, static inline struct clk_hw *imx_clk_scu(const char *name, u32 rsrc_id,
u8 clk_type, u8 clk_cells) u8 clk_type, u8 clk_cells)
{ {
...@@ -44,8 +49,19 @@ static inline struct clk_hw *imx_clk_scu2(const char *name, const char * const * ...@@ -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); 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, static inline struct clk_hw *imx_clk_lpcg_scu_dev(struct device *dev, const char *name,
unsigned long flags, void __iomem *reg, const char *parent_name, unsigned long flags,
u8 bit_idx, bool hw_gate); void __iomem *reg, u8 bit_idx, bool hw_gate)
void imx_clk_lpcg_scu_unregister(struct clk_hw *hw); {
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 #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment