aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Clacy <tcl@phaseone.com>2009-05-07 13:40:33 -0400
committerEric Miao <eric.miao@marvell.com>2009-05-18 09:52:09 -0400
commit866bd435819df8d97767c407f8828a7a2ff971e6 (patch)
tree17b16770357e2abf621c89e75725cc42a354149f
parent216e3b7abbd05c35d2d1a3f86629ade485351f0d (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>
-rw-r--r--arch/arm/mach-pxa/mfp-pxa2xx.c3
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);