Thread (28 messages) flat view 28 messages, 5 authors, 2015-02-25

[PATCH v2 4/4] clk: dt: Introduce always-on clock domain documentation

From: geert@linux-m68k.org (Geert Uytterhoeven)
Date: 2015-02-19 10:18:33
Also in: linux-devicetree, lkml

Hi Lee,

On Thu, Feb 19, 2015 at 11:11 AM, Lee Jones [off-list ref] wrote:
On Thu, 19 Feb 2015, Geert Uytterhoeven wrote:
quoted
On Thu, Feb 19, 2015 at 10:42 AM, Lee Jones [off-list ref] wrote:
quoted
quoted
What kind of clocks are these? What do they control?
Memory controllers? Bus controllers?

They must control some device(s), so there should be one or more device
nodes in DT that reference these clocks.
As soon as that information is in DT, support can be added to Linux to
make sure the "critical" clocks stay enabled, either through a real driver,
or through platform code.
Some do, some don't.  For instance, we have one clock which controls
SPI and I2C that must not be turned off.  We discovered this then when
a suspend was attempted and the board refused to resume.  This clock
also runs one of the critical interconnects that runs from the a9.  It
would be wrong to remove the clk_disable() attempt from the SPI/I2C
drivers because the same IP on another board might be controlled by a
different clock which is able to be gated.

There are also clocks which control other interconnects that are not
connected to any device drivers.  If we fail to take references for
them before clk_disable_unused() is called, again the board hangs.  We
even lose JTAG support.
Interconnects are buses. Can't you represent those buses in the DT
hierarchy, and give them clocks properties?
So instead of this nice succinct, simple, cover all bases
(interconnects was just an example, there are bound to be others),
generic framework, you are suggesting to write drivers for devices
which other than "don't turn my clocks off", Linux can't actually see
or control?
DT describes the hardware, not behavior.

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