mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 20:32:22 +00:00
kerneldoc for <linux/clk.h>
Add <linux/clk.h> to the generated kerneldoc, with some overview to go along with those per-function descriptions. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: "Randy.Dunlap" <rdunlap@xenotime.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a3ed107e63
commit
e275ac4771
@ -645,4 +645,58 @@ X!Idrivers/video/console/fonts.c
|
||||
!Edrivers/i2c/i2c-core.c
|
||||
</chapter>
|
||||
|
||||
<chapter id="clk">
|
||||
<title>Clock Framework</title>
|
||||
|
||||
<para>
|
||||
The clock framework defines programming interfaces to support
|
||||
software management of the system clock tree.
|
||||
This framework is widely used with System-On-Chip (SOC) platforms
|
||||
to support power management and various devices which may need
|
||||
custom clock rates.
|
||||
Note that these "clocks" don't relate to timekeeping or real
|
||||
time clocks (RTCs), each of which have separate frameworks.
|
||||
These <structname>struct clk</structname> instances may be used
|
||||
to manage for example a 96 MHz signal that is used to shift bits
|
||||
into and out of peripherals or busses, or otherwise trigger
|
||||
synchronous state machine transitions in system hardware.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Power management is supported by explicit software clock gating:
|
||||
unused clocks are disabled, so the system doesn't waste power
|
||||
changing the state of transistors that aren't in active use.
|
||||
On some systems this may be backed by hardware clock gating,
|
||||
where clocks are gated without being disabled in software.
|
||||
Sections of chips that are powered but not clocked may be able
|
||||
to retain their last state.
|
||||
This low power state is often called a <emphasis>retention
|
||||
mode</emphasis>.
|
||||
This mode still incurs leakage currents, especially with finer
|
||||
circuit geometries, but for CMOS circuits power is mostly used
|
||||
by clocked state changes.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Power-aware drivers only enable their clocks when the device
|
||||
they manage is in active use. Also, system sleep states often
|
||||
differ according to which clock domains are active: while a
|
||||
"standby" state may allow wakeup from several active domains, a
|
||||
"mem" (suspend-to-RAM) state may require a more wholesale shutdown
|
||||
of clocks derived from higher speed PLLs and oscillators, limiting
|
||||
the number of possible wakeup event sources. A driver's suspend
|
||||
method may need to be aware of system-specific clock constraints
|
||||
on the target sleep state.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Some platforms support programmable clock generators. These
|
||||
can be used by external chips of various kinds, such as other
|
||||
CPUs, multimedia codecs, and devices with strict requirements
|
||||
for interface clocking.
|
||||
</para>
|
||||
|
||||
!Iinclude/linux/clk.h
|
||||
</chapter>
|
||||
|
||||
</book>
|
||||
|
Loading…
Reference in New Issue
Block a user