ARM: OMAP2+: hwmod: Add a new flag to handle hwmods left enabled at init
authorRajendra Nayak <rnayak@ti.com>
Fri, 16 Dec 2011 12:50:12 +0000 (05:50 -0700)
committerTony Lindgren <tony@atomide.com>
Fri, 16 Dec 2011 21:59:55 +0000 (13:59 -0800)
commitaacf094128759cfb29a3ce88f92d08b79b74a4e8
tree8a15e6774835240e953cb9f561d50ca88fe95c59
parent4c89aad9f4803875f7065e825badc9ba61922091
ARM: OMAP2+: hwmod: Add a new flag to handle hwmods left enabled at init

An hwmod with a 'HWMOD_INIT_NO_IDLE' flag set, is left in
enabled state by the hwmod framework post the initial setup.
Once a real user of the device (a driver) tries to enable it
at a later point, the hwmod framework throws a WARN() about
the device being already in enabled state.

Fix this by introducing a new internal flag '_HWMOD_SKIP_ENABLE' to
identify such devices/hwmods. When the device/hwmod is requested to be
enabled (the first time) by its driver/user, nothing except the
mux-enable is needed. The mux data is board specific and is
unavailable during initial enable() of the device, done by the
framework as part of setup().

A good example of a such a device is an UART used as debug console.
The UART module needs to be kept enabled through the boot, until the
UART driver takes control of it, for debug prints to appear on
the console.

Acked-by: Kevin Hilman <khilman@ti.com>
Acked-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
[paul@pwsan.com: use a flag rather than a state; updated commit message;
 edited some documentation]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/plat-omap/include/plat/omap_hwmod.h