diff options
author | Eric Miao <eric.y.miao@gmail.com> | 2010-01-11 08:25:15 -0500 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2010-05-11 11:24:59 -0400 |
commit | 1106143d7ab43ba07678c88c85417df219354ae8 (patch) | |
tree | 93eed0f0dae58aaa00549a4e1d49a349a631de14 /arch/arm/mach-pxa/mfp-pxa2xx.c | |
parent | c8ee5c69516fdd973b981e3ac12d49b3133930cd (diff) |
[ARM] pxa: add MFP_LPM_KEEP_OUTPUT flag to pin config
Some pins are expected to keep their last level during suspend, and
introduce MFP_LPM_KEEP_OUTPUT for this.
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'arch/arm/mach-pxa/mfp-pxa2xx.c')
-rw-r--r-- | arch/arm/mach-pxa/mfp-pxa2xx.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c index cf6b720c055f..c98b5a8c3b0f 100644 --- a/arch/arm/mach-pxa/mfp-pxa2xx.c +++ b/arch/arm/mach-pxa/mfp-pxa2xx.c | |||
@@ -328,6 +328,17 @@ static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state) | |||
328 | { | 328 | { |
329 | int i; | 329 | int i; |
330 | 330 | ||
331 | /* set corresponding PGSR bit of those marked MFP_LPM_KEEP_OUTPUT */ | ||
332 | for (i = 0; i < pxa_last_gpio; i++) { | ||
333 | if ((gpio_desc[i].config & MFP_LPM_KEEP_OUTPUT) && | ||
334 | (GPDR(i) & GPIO_bit(i))) { | ||
335 | if (GPLR(i) & GPIO_bit(i)) | ||
336 | PGSR(i) |= GPIO_bit(i); | ||
337 | else | ||
338 | PGSR(i) &= ~GPIO_bit(i); | ||
339 | } | ||
340 | } | ||
341 | |||
331 | for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) { | 342 | for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) { |
332 | 343 | ||
333 | saved_gafr[0][i] = GAFR_L(i); | 344 | saved_gafr[0][i] = GAFR_L(i); |