aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/mfp-pxa2xx.c
diff options
context:
space:
mode:
authorTimothy Clacy <tcl@phaseone.com>2009-05-07 19:40:33 +0200
committerEric Miao <eric.miao@marvell.com>2009-05-18 21:52:09 +0800
commit866bd435819df8d97767c407f8828a7a2ff971e6 (patch)
tree17b16770357e2abf621c89e75725cc42a354149f /arch/arm/mach-pxa/mfp-pxa2xx.c
parent216e3b7abbd05c35d2d1a3f86629ade485351f0d (diff)
downloadkernel_samsung_smdk4412-866bd435819df8d97767c407f8828a7a2ff971e6.zip
kernel_samsung_smdk4412-866bd435819df8d97767c407f8828a7a2ff971e6.tar.gz
kernel_samsung_smdk4412-866bd435819df8d97767c407f8828a7a2ff971e6.tar.bz2
[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/arm/mach-pxa/mfp-pxa2xx.c')
-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 6ae50604..cf6b720 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)
if (cpu_is_pxa27x())
pxa27x_mfp_init();
+ /* clear RDH bit to enable GPIO receivers after reset/sleep exit */
+ PSSR = PSSR_RDH;
+
/* initialize gafr_run[], pgsr_lpm[] from existing values */
for (i = 0; i <= gpio_to_bank(pxa_last_gpio); i++)
gpdr_lpm[i] = GPDR(i * 32);