[PATCH 3/4] clk: Provide always-on clock support
From: jassisinghbrar@gmail.com (Jassi Brar)
Date: 2015-03-02 10:08:15
Also in:
linux-devicetree, lkml
On Mon, Mar 2, 2015 at 2:06 PM, Lee Jones [off-list ref] wrote:
On Sat, 28 Feb 2015, Jassi Brar wrote:quoted
On 28 February 2015 at 02:44, Lee Jones [off-list ref] wrote:quoted
Lots of platforms contain clocks which if turned off would prove fatal. The only way to recover from these catastrophic failures is to restart the board(s). Now, when a clock is registered with the framework it is compared against a list of provided always-on clock names which must be kept ungated. If it matches, we enable the existing CLK_IGNORE_UNUSED flag, which will prevent the common clk framework from attempting to gate it during the clk_disable_unused() procedure.If a clock is critical on a certain board, it could be got+enabled during early boot so there is always a user.I tried this. There was push-back from the DT maintainers. http://lists.infradead.org/pipermail/linux-arm-kernel/2015-February/324417.html
Thanks, I wasn't aware of the history.
quoted
To be able to do that from DT, maybe add a new, say, CLK_ALWAYS_ON flag could be made to initialize the clock with one phantom user already. Or just reuse the CLK_IGNORE_UNUSED?How is that different to what this set is doing?
The phantom user - that's there but none can see it.
How about?
+ of_property_for_each_string(np, "clock-always-on", prop, clkname) {
+ clk = __clk_lookup(clkname);
+ if (!clk)
+ continue;
+
+ clk->core->enable_count = 1;
+ clk->core->prepare_count = 1;
+ }
-jassi