Skip to content
  • eric miao's avatar
    [ARM] pxa: allow dynamic enable/disable of GPIO wakeup for pxa{25x,27x} · c0a596d6
    eric miao authored
    
    
    Changes include:
    
    1. rename MFP_LPM_WAKEUP_ENABLE into MFP_LPM_CAN_WAKEUP to indicate
       the board capability of this pin to wakeup the system
    
    2. add gpio_set_wake() and keypad_set_wake() to allow dynamically
       enable/disable wakeup from GPIOs and keypad GPIO
    
       * these functions are currently kept in mfp-pxa2xx.c due to their
         dependency to the MFP configuration
    
    3. pxa2xx_mfp_config() only gives early warning if MFP_LPM_CAN_WAKEUP
       is set on incorrect pins
    
    So that the GPIO's wakeup capability is now decided by the following:
    
       a) processor's capability: (only those GPIOs which have dedicated
          bits within PWER/PRER/PFER can wakeup the system), this is
          initialized by pxa{25x,27x}_init_mfp()
    
       b) board design decides:
          - whether the pin is designed to wakeup the system (some of
            the GPIOs are configured as other functions, which is not
            intended to be a wakeup source), by OR'ing the pin config
            with MFP_LPM_CAN_WAKEUP
    
          - which edge the pin is designed to wakeup the system, this
            may depends on external peripherals/connections, which is
            totally board specific; this is indicated by MFP_LPM_EDGE_*
    
       c) the corresponding device's (most likely the gpio_keys.c) wakeup
          attribute:
    
    Signed-off-by: default avatareric miao <eric.miao@marvell.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    c0a596d6