[PATCH 25/40] ARM: imx: add common clock support for clk busy
Stephen Boyd
sboyd at codeaurora.org
Wed Apr 11 18:21:29 EDT 2012
On 04/10/12 23:53, Sascha Hauer wrote:
> On Tue, Apr 10, 2012 at 11:59:13AM -0700, Stephen Boyd wrote:
>> On 04/10/12 06:45, Sascha Hauer wrote:
>>> +static int clk_busy_wait(void __iomem *reg, u8 shift)
>>> +{
>>> + unsigned long timeout = jiffies + msecs_to_jiffies(10);
>>> +
>>> + while (readl_relaxed(reg) & (1 << shift))
>>> + if (time_after(jiffies, timeout))
>>> + return -ETIMEDOUT;
>>> +
>>> + return 0;
>>> +}
>> MSM also has a bit to poll to see if a clock is enabled or not, similar
>> to this rate switch complete bit. Would it make sense to have another
>> few clock ops like wait_for_enable(), wait_for_rate(),
>> wait_for_disable()? Then you should be able to copy the basic divider
>> ops and assign the wait ops and avoid the wrappers.
> I think this won't work. What arguments would your wait_for_* functions
> take?
I assume the same as what all the other ops take.
wait_for_disable(struct clk_hw *hw)
wait_for_enable(struct clk_hw *hw)
wait_for_rate(struct clk_hw *hw)
Do you see the need for anything else?
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
More information about the linux-arm-kernel
mailing list