diff options
Diffstat (limited to 'arch/arm/mach-pxa/pxa3xx.c')
-rw-r--r-- | arch/arm/mach-pxa/pxa3xx.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c index f544e58e1536..fa0014847c71 100644 --- a/arch/arm/mach-pxa/pxa3xx.c +++ b/arch/arm/mach-pxa/pxa3xx.c | |||
@@ -52,7 +52,7 @@ | |||
52 | static unsigned char smcfs_mult[8] = { 6, 0, 8, 0, 0, 16, }; | 52 | static unsigned char smcfs_mult[8] = { 6, 0, 8, 0, 0, 16, }; |
53 | 53 | ||
54 | /* crystal frequency to HSIO bus frequency multiplier (HSS) */ | 54 | /* crystal frequency to HSIO bus frequency multiplier (HSS) */ |
55 | static unsigned char hss_mult[4] = { 8, 12, 16, 0 }; | 55 | static unsigned char hss_mult[4] = { 8, 12, 16, 24 }; |
56 | 56 | ||
57 | /* | 57 | /* |
58 | * Get the clock frequency as reflected by CCSR and the turbo flag. | 58 | * Get the clock frequency as reflected by CCSR and the turbo flag. |
@@ -552,11 +552,23 @@ static void pxa_unmask_ext_wakeup(unsigned int irq) | |||
552 | PECR |= PECR_IE(irq - IRQ_WAKEUP0); | 552 | PECR |= PECR_IE(irq - IRQ_WAKEUP0); |
553 | } | 553 | } |
554 | 554 | ||
555 | static int pxa_set_ext_wakeup_type(unsigned int irq, unsigned int flow_type) | ||
556 | { | ||
557 | if (flow_type & IRQ_TYPE_EDGE_RISING) | ||
558 | PWER |= 1 << (irq - IRQ_WAKEUP0); | ||
559 | |||
560 | if (flow_type & IRQ_TYPE_EDGE_FALLING) | ||
561 | PWER |= 1 << (irq - IRQ_WAKEUP0 + 2); | ||
562 | |||
563 | return 0; | ||
564 | } | ||
565 | |||
555 | static struct irq_chip pxa_ext_wakeup_chip = { | 566 | static struct irq_chip pxa_ext_wakeup_chip = { |
556 | .name = "WAKEUP", | 567 | .name = "WAKEUP", |
557 | .ack = pxa_ack_ext_wakeup, | 568 | .ack = pxa_ack_ext_wakeup, |
558 | .mask = pxa_mask_ext_wakeup, | 569 | .mask = pxa_mask_ext_wakeup, |
559 | .unmask = pxa_unmask_ext_wakeup, | 570 | .unmask = pxa_unmask_ext_wakeup, |
571 | .set_type = pxa_set_ext_wakeup_type, | ||
560 | }; | 572 | }; |
561 | 573 | ||
562 | static void __init pxa_init_ext_wakeup_irq(set_wake_t fn) | 574 | static void __init pxa_init_ext_wakeup_irq(set_wake_t fn) |
@@ -596,6 +608,7 @@ void __init pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info) | |||
596 | 608 | ||
597 | static struct platform_device *devices[] __initdata = { | 609 | static struct platform_device *devices[] __initdata = { |
598 | &pxa27x_device_udc, | 610 | &pxa27x_device_udc, |
611 | &pxa_device_pmu, | ||
599 | &pxa_device_i2s, | 612 | &pxa_device_i2s, |
600 | &sa1100_device_rtc, | 613 | &sa1100_device_rtc, |
601 | &pxa_device_rtc, | 614 | &pxa_device_rtc, |