• David Brownell's avatar
    ARM: OMAP: MPUIO wake updates · 11a78b79
    David Brownell authored
    GPIO and MPUIO wake updates:
    
     - Hook MPUIOs into the irq wakeup framework too.  This uses a platform
       device to update irq enables during system sleep states, instead of
       a sys_device, since the latter is no longer needed for such things.
    
     - Also forward enable/disable irq wake requests to the relevant GPIO
       controller, so the top level IRQ dispatcher can (eventually) handle
       these wakeup events automatically if more than one GPIO pin needs to
       be a wakeup event source.
    
     - Minor tweak to the 24xx non-wakeup gpio stuff: no need to check such
       read-only data under the spinlock.
    
    This assumes (maybe wrongly?) that only 16xx can do GPIO wakeup; without
    a 15xx I can't test such stuff.
    
    Also this expects the top level IRQ dispatcher to properly handle requests
    to enable/disable irq wake, which is currently known to be wrong:  omap1
    saves the flags but ignores them, omap2 doesn't even save it.  (Wakeup
    events are, wrongly, hardwired in the relevant mach-omapX/pm.c file ...)
    So MPUIO irqs won't yet trigger system wakeup.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    11a78b79
gpio.c 41.4 KB