ARM: OMAP2: Clockdomain: Add base OMAP2/3 clockdomain code
authorPaul Walmsley <paul@pwsan.com>
Tue, 19 Aug 2008 08:08:43 +0000 (11:08 +0300)
committerTony Lindgren <tony@atomide.com>
Tue, 19 Aug 2008 08:08:43 +0000 (11:08 +0300)
commitd459bfe01f523983a822de8c2d3fe0bd2f2c194e
tree9f583480f3c0940778bb0f7b4fee5c68eb5b5bfc
parentecb24aa129c6d4b2152571f856320aa7dea41676
ARM: OMAP2: Clockdomain: Add base OMAP2/3 clockdomain code

This patch creates an interface to the clockdomain registers in the
PRM/CM modules on OMAP2/3.  This interface is intended to be used by
PM code, e.g., pm.c; not by device drivers directly.

The patch also adds clockdomain usecount tracking.  This is intended
to be called whenever the first clock in a clockdomain is enabled, or
when the last enabled clock in a clockdomain is disabled.  If the
clockdomain is in software-supervised mode, the code will force-wakeup
or force-sleep the clockdomain.  If the clockdomain is in
hardware-supervised mode, the first clock enable will add sleep and
wakeup dependencies on a user-selectable set of parent domains (usually
MPU & IVA2), and the disable will remove them.

Each clockdomain will be defined in later patches as static
structures.  The clockdomain structures are linked into a list at boot
by clkdm_register(), similar to the OMAP clock code.

The patch adds a Kconfig option, CONFIG_OMAP_DEBUG_CLOCKDOMAIN, which
when enabled will emit verbose debug messages via pr_debug().

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/clockdomain.c [new file with mode: 0644]
arch/arm/plat-omap/Kconfig
arch/arm/plat-omap/include/mach/clockdomain.h [new file with mode: 0644]