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

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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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);
+20 −4
Original line number Diff line number Diff line
@@ -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,
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);
void imx_clk_lpcg_scu_unregister(struct clk_hw *hw);
					      u8 bit_idx, bool hw_gate)
{
	return __imx_clk_lpcg_scu(NULL, name, parent_name, flags, reg,
				  bit_idx, hw_gate);
}
#endif