Thread (15 messages) 15 messages, 3 authors, 2015-04-02

[PATCH v3 0/4] clk: st: New always-on clock domain

From: geert@linux-m68k.org (Geert Uytterhoeven)
Date: 2015-03-25 04:11:55
Also in: linux-devicetree, lkml

Hi Lee,

On Mon, Mar 9, 2015 at 10:28 AM, Lee Jones [off-list ref] wrote:
On Fri, 06 Mar 2015, Mike Turquette wrote:
quoted
Quoting Lee Jones (2015-03-04 04:00:03)
quoted
Mike,

Do you want me to resend this set with Robert's Reviewed-by applied,
or are you happy to apply it yourself?
No need for the resend. I am hoping for a final review from a DT human.

This approach looks fine to me. In practice I think it is restricted to
hardware blocks that don't exist in DT yet (e.g. no driver, in the case
of your interconnect) and that restriction is probably for the best.
Agreed.
I think this restriction should be documented in the DT binding more clearly,
as adding a "clk-always-on" node prohibits you from handling the clock
correctly in
the future.

Still, for simple devices where you don't have a driver, but have "predictable"
bindings (e.g. a bus like "simple-pm-bus"), I think it's better to add
a device node
for that simple device now, incl. a reference to the clock, and have a simple
driver that binds to the device, or platform code that looks for a
compatible node,
and enables the clock. That way you don't have to make any chances to the DTS
later, when you'll have a real driver.
quoted
quoted
quoted
v2 => v3:
  - Ensure DT actually reflects h/w
    - i.e. Nodes should not contain a mishmash of different IP
      blocks, but should identify related h/w.  In the current
      example we use interconnects
  - Change naming from clkdomain to clk-always-on
  - Place "do not abuse" warning in documentation

v1 => v2:
  - Turned the ST specific driver into a generic one

Hardware can have a bunch of clocks which must not be turned off.
If drivers a) fail to obtain a reference to any of these or b) give
up a previously obtained reference during suspend, the common clk
framework will attempt to turn them off and the hardware will
subsequently die.  The only way to recover from this failure is to
restart.

To avoid either of these two scenarios from catastrophically
disabling the running system we have implemented a clock domain
where clocks are consumed and references are taken, thus preventing
them from being shut down by the framework.
Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help