aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/pxa25x.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-pxa/pxa25x.c')
-rw-r--r--arch/arm/mach-pxa/pxa25x.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 653a3b63d073..c486c3055cfb 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -26,6 +26,7 @@
26#include <asm/hardware.h> 26#include <asm/hardware.h>
27#include <asm/arch/irqs.h> 27#include <asm/arch/irqs.h>
28#include <asm/arch/pxa-regs.h> 28#include <asm/arch/pxa-regs.h>
29#include <asm/arch/mfp-pxa25x.h>
29#include <asm/arch/pm.h> 30#include <asm/arch/pm.h>
30#include <asm/arch/dma.h> 31#include <asm/arch/dma.h>
31 32
@@ -230,24 +231,10 @@ static inline void pxa25x_init_pm(void) {}
230static int pxa25x_set_wake(unsigned int irq, unsigned int on) 231static int pxa25x_set_wake(unsigned int irq, unsigned int on)
231{ 232{
232 int gpio = IRQ_TO_GPIO(irq); 233 int gpio = IRQ_TO_GPIO(irq);
233 uint32_t gpio_bit, mask = 0; 234 uint32_t mask = 0;
234 235
235 if (gpio >= 0 && gpio <= 15) { 236 if (gpio >= 0 && gpio < 85)
236 gpio_bit = GPIO_bit(gpio); 237 return gpio_set_wake(gpio, on);
237 mask = gpio_bit;
238 if (on) {
239 if (GRER(gpio) | gpio_bit)
240 PRER |= gpio_bit;
241 else
242 PRER &= ~gpio_bit;
243
244 if (GFER(gpio) | gpio_bit)
245 PFER |= gpio_bit;
246 else
247 PFER &= ~gpio_bit;
248 }
249 goto set_pwer;
250 }
251 238
252 if (irq == IRQ_RTCAlrm) { 239 if (irq == IRQ_RTCAlrm) {
253 mask = PWER_RTC; 240 mask = PWER_RTC;