Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42c5d52f authored by Richard Zhao's avatar Richard Zhao Committed by Shawn Guo
Browse files

clk: add helper functions clk_prepare_enable and clk_disable_unprepare



It's for migrating to generic clk framework API.

The helper functions  help cases clk_enable/clk_disable is used
in non-atomic context.
For example, Call clk_enable in probe and clk_disable in remove.

Signed-off-by: default avatarRichard Zhao <richard.zhao@linaro.org>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Cc: Russell King <linux@arm.linux.org.uk>
Acked-by: default avatarMarek Vasut <marek.vasut@gmail.com>
parent 384703b8
Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
@@ -107,6 +107,28 @@ static inline void clk_unprepare(struct clk *clk)
}
}
#endif
#endif


/* clk_prepare_enable helps cases using clk_enable in non-atomic context. */
static inline int clk_prepare_enable(struct clk *clk)
{
	int ret;

	ret = clk_prepare(clk);
	if (ret)
		return ret;
	ret = clk_enable(clk);
	if (ret)
		clk_unprepare(clk);

	return ret;
}

/* clk_disable_unprepare helps cases using clk_disable in non-atomic context. */
static inline void clk_disable_unprepare(struct clk *clk)
{
	clk_disable(clk);
	clk_unprepare(clk);
}

/**
/**
 * clk_get_rate - obtain the current clock rate (in Hz) for a clock source.
 * clk_get_rate - obtain the current clock rate (in Hz) for a clock source.
 *		  This is only valid once the clock source has been enabled.
 *		  This is only valid once the clock source has been enabled.