diff options
author | Timothy Clacy <tcl@phaseone.com> | 2009-05-07 13:40:33 -0400 |
---|---|---|
committer | Eric Miao <eric.miao@marvell.com> | 2009-05-18 09:52:09 -0400 |
commit | 866bd435819df8d97767c407f8828a7a2ff971e6 (patch) | |
tree | 17b16770357e2abf621c89e75725cc42a354149f /arch | |
parent | 216e3b7abbd05c35d2d1a3f86629ade485351f0d (diff) |
[ARM] pxa: enable GPIO receivers after configuring pins
'mach-pxa' platforms currently rely on a bootloader to setup GPIO pins
and clear RDH (to enable inputs).
A kernel loaded by a 'minimal' bootloader, that doesn't touch any pins,
will not function correctly; inputs will remain disabled, even after the
pins are configured. The following change fixes the issue and has been
verified on Gumstix Verdex XL6P and a custom PXA270 platform.
Signed-off-by: Timothy Clacy <tcl@phaseone.com>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-pxa/mfp-pxa2xx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c index 6ae50604170d..cf6b720c055f 100644 --- a/arch/arm/mach-pxa/mfp-pxa2xx.c +++ b/arch/arm/mach-pxa/mfp-pxa2xx.c | |||
@@ -377,6 +377,9 @@ static int __init pxa2xx_mfp_init(void) | |||
377 | if (cpu_is_pxa27x()) | 377 | if (cpu_is_pxa27x()) |
378 | pxa27x_mfp_init(); | 378 | pxa27x_mfp_init(); |
379 | 379 | ||
380 | /* clear RDH bit to enable GPIO receivers after reset/sleep exit */ | ||
381 | PSSR = PSSR_RDH; | ||
382 | |||
380 | /* initialize gafr_run[], pgsr_lpm[] from existing values */ | 383 | /* initialize gafr_run[], pgsr_lpm[] from existing values */ |
381 | for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) | 384 | for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++) |
382 | gpdr_lpm[i] = GPDR(i * 32); | 385 | gpdr_lpm[i] = GPDR(i * 32); |