diff options
Diffstat (limited to 'arch/arm/mach-imx/clk-pfd.c')
| -rw-r--r-- | arch/arm/mach-imx/clk-pfd.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/clk-pfd.c b/arch/arm/mach-imx/clk-pfd.c index e2ed4160f32..0b0f6f66ec5 100644 --- a/arch/arm/mach-imx/clk-pfd.c +++ b/arch/arm/mach-imx/clk-pfd.c @@ -109,12 +109,23 @@ static int clk_pfd_set_rate(struct clk_hw *hw, unsigned long rate,  	return 0;  } +static int clk_pfd_is_enabled(struct clk_hw *hw) +{ +	struct clk_pfd *pfd = to_clk_pfd(hw); + +	if (readl_relaxed(pfd->reg) & (1 << ((pfd->idx + 1) * 8 - 1))) +		return 0; + +	return 1; +} +  static const struct clk_ops clk_pfd_ops = {  	.enable		= clk_pfd_enable,  	.disable	= clk_pfd_disable,  	.recalc_rate	= clk_pfd_recalc_rate,  	.round_rate	= clk_pfd_round_rate,  	.set_rate	= clk_pfd_set_rate, +	.is_enabled     = clk_pfd_is_enabled,  };  struct clk *imx_clk_pfd(const char *name, const char *parent_name,  | 
