Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

David Brownell and committed by
Linus Torvalds
e275ac47 a3ed107e

+54
+54
Documentation/DocBook/kernel-api.tmpl
··· 645 645 !Edrivers/i2c/i2c-core.c 646 646 </chapter> 647 647 648 + <chapter id="clk"> 649 + <title>Clock Framework</title> 650 + 651 + <para> 652 + The clock framework defines programming interfaces to support 653 + software management of the system clock tree. 654 + This framework is widely used with System-On-Chip (SOC) platforms 655 + to support power management and various devices which may need 656 + custom clock rates. 657 + Note that these "clocks" don't relate to timekeeping or real 658 + time clocks (RTCs), each of which have separate frameworks. 659 + These <structname>struct clk</structname> instances may be used 660 + to manage for example a 96 MHz signal that is used to shift bits 661 + into and out of peripherals or busses, or otherwise trigger 662 + synchronous state machine transitions in system hardware. 663 + </para> 664 + 665 + <para> 666 + Power management is supported by explicit software clock gating: 667 + unused clocks are disabled, so the system doesn't waste power 668 + changing the state of transistors that aren't in active use. 669 + On some systems this may be backed by hardware clock gating, 670 + where clocks are gated without being disabled in software. 671 + Sections of chips that are powered but not clocked may be able 672 + to retain their last state. 673 + This low power state is often called a <emphasis>retention 674 + mode</emphasis>. 675 + This mode still incurs leakage currents, especially with finer 676 + circuit geometries, but for CMOS circuits power is mostly used 677 + by clocked state changes. 678 + </para> 679 + 680 + <para> 681 + Power-aware drivers only enable their clocks when the device 682 + they manage is in active use. Also, system sleep states often 683 + differ according to which clock domains are active: while a 684 + "standby" state may allow wakeup from several active domains, a 685 + "mem" (suspend-to-RAM) state may require a more wholesale shutdown 686 + of clocks derived from higher speed PLLs and oscillators, limiting 687 + the number of possible wakeup event sources. A driver's suspend 688 + method may need to be aware of system-specific clock constraints 689 + on the target sleep state. 690 + </para> 691 + 692 + <para> 693 + Some platforms support programmable clock generators. These 694 + can be used by external chips of various kinds, such as other 695 + CPUs, multimedia codecs, and devices with strict requirements 696 + for interface clocking. 697 + </para> 698 + 699 + !Iinclude/linux/clk.h 700 + </chapter> 701 + 648 702 </book>