android_kernel_xiaomi_sdm845/arch/arm/mach-omap2
Kevin Hilman eb350f74eb OMAP3: PM: Enable GPIO module-level wakeups
Currently, only GPIOs in the wakeup domain (GPIOs in bank 0) are
enabled as wakups.  This patch also enables GPIOs in the PER
powerdomain (banks 2-6) to be used as possible wakeup sources.

In addition, this patch ensures that all GPIO wakeups can wakeup
the MPU using the PM_MPUGRPSEL_<pwrdm> registers.

NOTE: this doesn't enable the individual GPIOs as wakeups, this simply
enables the per-bank wakeups at the powerdomain level.

This problem was discovered by Mike Chan when preventing the CORE
powerdomain from going into retention/off.  When CORE was allowed to
hit retention, GPIO wakeups via IO pad were working fine, but when
CORE remained on, GPIO module-level wakeups were not working properly.

To test, prevent CORE from going inactive/retention/off, thus
preventing the IO chain from being armed:

  # echo 3 > /debug/pm_debug/core_pwrdm/suspend

This ensures that GPIO wakeups happen via module-level wakeups and
not via IO pad.

Tested on 3430SDP using the touchscreen GPIO (gpio 2, in WKUP)
Tested on Zoom2 using the QUART interrup GPIO  (gpio 102, in PER)

Also, c.f. OMAP PM wiki for troubleshooting GPIO wakeup issues:
http://elinux.org/OMAP_Power_Management

Reported-by: Mike Chan <mikechan@google.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
2009-10-05 10:51:00 -07:00
..
board-2430sdp.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-3430sdp.c Merge branch '2_6_32_for_next' of git://git.pwsan.com/linux-2.6 into for-next 2009-09-03 10:17:39 -07:00
board-4430sdp.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-09-18 09:19:26 -07:00
board-apollon.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-09-20 05:55:36 -07:00
board-generic.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-h4.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-ldp.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-n8x0.c OMAP2: add board file for Nokia N800 and N810 2009-08-28 10:51:38 -07:00
board-omap3beagle.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-omap3evm.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-omap3pandora.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-overo.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-rx51-peripherals.c ARM: OMAP: RX51: set MMC capabilities and power-saving flag 2009-09-23 07:39:36 -07:00
board-rx51.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-zoom2.c OMAP2/3 board-*.c files: read bootloader configuration earlier 2009-09-03 20:14:02 +03:00
board-zoom-debugboard.c OMAP: Zoom2: release debug board detect gpio line 2009-09-02 15:07:56 -07:00
clock24xx.c OMAP2 clock: 2430 I2CHS uses non-standard CM_IDLEST register 2009-07-24 20:10:36 -06:00
clock24xx.h OMAP2 clock: 2430 I2CHS uses non-standard CM_IDLEST register 2009-07-24 20:10:36 -06:00
clock34xx.c OMAP3 clock: Fixed processing of bootarg 'mpurate' 2009-09-03 20:13:58 +03:00
clock34xx.h OMAP3 clock: remove superfluous calls to omap2_init_clk_clkdm 2009-09-03 20:14:00 +03:00
clock.c OMAP: PM: Hook into PM counters 2009-09-02 15:08:23 -07:00
clock.h OMAP2/3 clock: split, rename omap2_wait_clock_ready() 2009-07-24 20:10:35 -06:00
clockdomain.c OMAP: PM: Add closures to clkdm_for_each and pwrdm_for_each. 2009-09-02 15:08:23 -07:00
clockdomains.h OMAP3: PM: D2D clockdomain supports SW supervised transitions 2009-05-28 10:59:08 -07:00
cm4xxx.c OMAP2/3/4 PRCM: add module IDLEST wait code 2009-09-03 20:14:02 +03:00
cm-regbits-24xx.h [ARM] OMAP2 PRCM: clean up CM_IDLEST bits 2009-02-08 17:50:37 +00:00
cm-regbits-34xx.h OMAP3: PM: Add D2D clocks and auto-idle setup to PRCM init 2009-05-28 10:59:07 -07:00
cm.c OMAP2/3/4 PRCM: add module IDLEST wait code 2009-09-03 20:14:02 +03:00
cm.h OMAP2/3/4 PRCM: add module IDLEST wait code 2009-09-03 20:14:02 +03:00
control.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
devices.c spi: McSPI support for OMAP4 2009-09-23 07:39:44 -07:00
gpmc-onenand.c OMAP2/3: gpmc-onenand: correct use of async timings 2009-06-23 13:30:24 +03:00
gpmc-smc91x.c ARM: OMAP2/3: Add generic smc91x support when connected to GPMC 2009-05-28 13:23:52 -07:00
gpmc.c mtd: omap: add support for nand prefetch-read and post-write 2009-09-19 13:20:51 -07:00
id.c OMAP2/3: Add omap_type() for determining GP/EMU/HS 2009-06-23 13:30:23 +03:00
io.c OMAP: omap_hwmod: call omap_hwmod init at boot; create interconnects 2009-09-03 20:14:05 +03:00
iommu2.c OMAP: iommu: add initial debugfs support 2009-08-28 10:54:41 -07:00
irq.c OMAP: Add new function to check wether there is irq pending 2009-05-28 10:59:04 -07:00
Kconfig OMAP2: add board file for Nokia N800 and N810 2009-08-28 10:51:38 -07:00
mailbox.c OMAP2/3: omap mailbox: platform_get_irq() error ignored 2009-06-23 13:30:22 +03:00
Makefile OMAP2/3/4: create omap_hwmod layer 2009-09-03 20:14:03 +03:00
Makefile.boot [ARM] 3145/1: OMAP 3a/5: Add support for omap24xx 2005-11-10 14:26:51 +00:00
mcbsp.c Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-09-14 17:48:14 -07:00
mmc-twl4030.c ARM: OMAP: mmc-twl4030: add regulator sleep / wake function 2009-09-23 07:39:35 -07:00
mmc-twl4030.h omap_hsmmc: support for deeper power saving states 2009-09-23 07:39:35 -07:00
mux.c OMAP3: PM: add T2 interrupt line mux setting, and enable on 3430SDP 2009-09-02 15:07:56 -07:00
omap3-iommu.c omap iommu: add MPU_BRIDGE_IOMMU for tidspbridge migration 2009-05-22 10:17:02 +03:00
omap_hwmod_34xx.h OMAP: omap_hwmod: call omap_hwmod init at boot; create interconnects 2009-09-03 20:14:05 +03:00
omap_hwmod_2420.h OMAP: omap_hwmod: call omap_hwmod init at boot; create interconnects 2009-09-03 20:14:05 +03:00
omap_hwmod_2430.h OMAP: omap_hwmod: call omap_hwmod init at boot; create interconnects 2009-09-03 20:14:05 +03:00
omap_hwmod.c OMAP: omap_hwmod: call omap_hwmod init at boot; create interconnects 2009-09-03 20:14:05 +03:00
omap-headsmp.S ARM: OMAP4: SMP: Add OMAP4430 SMP board files 2009-06-09 13:03:50 +05:30
omap-smp.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
pm24xx.c OMAP: PM: Add closures to clkdm_for_each and pwrdm_for_each. 2009-09-02 15:08:23 -07:00
pm34xx.c OMAP3: PM: Enable GPIO module-level wakeups 2009-10-05 10:51:00 -07:00
pm-debug.c OMAP: PM: Added suspend target state control to debugfs for OMAP3 2009-09-02 15:08:25 -07:00
pm.h OMAP: PM: Added suspend target state control to debugfs for OMAP3 2009-09-02 15:08:25 -07:00
powerdomain.c Merge branch '2_6_32_for_next' of git://git.pwsan.com/linux-2.6 into for-next 2009-09-03 10:17:39 -07:00
powerdomains24xx.h ARM: OMAP2: Powerdomain: Add OMAP2 powerdomains 2008-08-19 11:08:42 +03:00
powerdomains34xx.h [ARM] OMAP3 powerdomains: make USBTLL SAR only available on ES3.1 and beyond 2009-02-23 14:52:51 +00:00
powerdomains.h [ARM] OMAP3 powerdomains: make USBTLL SAR only available on ES3.1 and beyond 2009-02-23 14:52:51 +00:00
prcm-common.h OMAP2/3: PM: push core PM code from linux-omap 2009-05-28 10:58:50 -07:00
prcm.c OMAP2/3 clock: split, rename omap2_wait_clock_ready() 2009-07-24 20:10:35 -06:00
prm-regbits-24xx.h ARM: OMAP2: Powerdomain: Add OMAP2 powerdomains 2008-08-19 11:08:42 +03:00
prm-regbits-34xx.h ARM: OMAP3: Fix HW SAVEANDRESTORE shift define 2009-05-16 08:28:17 -07:00
prm.h OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
sdram-micron-mt46h32m32lf-6.h ARM: OMAP3: SDRC: add timing data for Micron MT46H32M32LF-6, v2 2009-05-28 14:03:59 -07:00
sdram-qimonda-hyb18m512160af-6.h ARM: OMAP3: SDRC: add timing data for Qimonda HYB18M512160AF-6 2009-05-28 14:03:59 -07:00
sdrc2xxx.c ARM: OMAP2/3: Remove OMAP_PRM_REGADDR and OMAP2_PRM_BASE 2009-05-25 11:26:42 -07:00
sdrc.c OMAP2/3 SDRC: don't set SDRC_POWER.PWDENA on boot 2009-07-24 19:44:01 -06:00
sdrc.h OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
serial.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-09-18 09:19:26 -07:00
sleep24xx.S OMAP2/3: PM: push core PM code from linux-omap 2009-05-28 10:58:50 -07:00
sleep34xx.S OMAP2/3: PM: push core PM code from linux-omap 2009-05-28 10:58:50 -07:00
sram34xx.S OMAP3 SDRC: Move the clk stabilization delay to the right place 2009-07-24 20:10:35 -06:00
sram242x.S OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
sram243x.S OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
timer-gp.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
timer-mpu.c ARM: OMAP4: SMP: Add mpu timer support for OMAP4430 2009-06-09 13:03:59 +05:30
usb-musb.c MUSB: Remove usb_musb_pm_init() call 2009-09-02 15:07:56 -07:00
usb-tusb6010.c ARM: OMAP2: Fix tusb6010 init error and compilation warning 2009-05-12 11:20:02 -07:00