android_kernel_motorola_sm6225/arch/arm/plat-omap
Charulatha V 058af1ea98 omap: GPIO module enable/disable
This patch disables a GPIO module when all pins of a GPIO
module are inactive (clock gating forced at module level) and
enables the module when any gpio in the module is requested.

The module is enabled only when "mod_usage" indicates that no GPIO
in that  module is currently active and the GPIO being requested
is the 1st one to be active in that module.

Each module would be disabled in omap_gpio_free() API when all
GPIOs in a particular module becomes inactive. The module is
re-enabled in omap_gpio_request() API when a GPIO is requested
from the module that was previously disabled.

Since individual GPIO's bookkeeping is added in this patch
via "mod_usage", the same is used in omap_set_gpio_debounce()
& omap_set_gpio_debounce_time() APIs to ensure that the gpio being
used is actually "requested" prior to being used (Nishant Menon's
<nm@ti.comSuggestion)

GPIO module level details are specific to hardware and hence
introducing this patch in low level layer (plat-omap/gpio.c)

Signed-off-by: Charulatha V <charu@ti.com>
Acked-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2009-11-22 10:24:33 -08:00
..
include/plat omap: mailbox: OMAP4 Mailbox-driver Patch to support tasklet implementation 2009-11-22 10:24:33 -08:00
clock.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
common.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
cpu-omap.c Merge 7xx-iosplit-plat-merge with omap-fixes 2009-11-22 10:08:43 -08:00
debug-devices.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
debug-leds.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
devices.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
dma.c Merge 7xx-iosplit-plat-merge with omap-fixes 2009-11-22 10:08:43 -08:00
dmtimer.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
fb.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
gpio.c omap: GPIO module enable/disable 2009-11-22 10:24:33 -08:00
i2c.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
io.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
iommu-debug.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
iommu.c Merge branch '7xx-iosplit-plat' with omap-fixes 2009-11-10 18:10:34 -08:00
iopgtable.h omap iommu: tlb and pagetable primitives 2009-05-05 14:52:39 +03:00
iovmm.c arch/arm/plat-omap: Drop an unnecessary NULL test 2009-11-22 10:24:32 -08:00
Kconfig omap: introduce OMAP_LL_DEBUG_NONE DEBUG_LL config 2009-11-22 10:24:32 -08:00
mailbox.c omap: mailbox: OMAP4 Mailbox-driver Patch to support tasklet implementation 2009-11-22 10:24:33 -08:00
Makefile OMAP2/3/4 core: create omap_device layer 2009-09-03 20:14:05 +03:00
mcbsp.c omap: McBSP: Do not use extensive spin locks for dma_op_mode 2009-11-22 10:24:32 -08:00
mux.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
ocpi.c [ARM] Convert asm/io.h to linux/io.h 2008-09-06 12:10:45 +01:00
omap-pm-noop.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_device.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sram.c OMAP3: PM: restore SRAM functions after off-mode. 2009-11-11 14:42:24 -08:00
usb.c omap1: omap_udc: Add clocking and disable vbus sense for omap7xx 2009-11-22 10:24:32 -08:00