diff options
Diffstat (limited to 'arch/arm/mach-pxa/pxa3xx.c')
-rw-r--r-- | arch/arm/mach-pxa/pxa3xx.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c index dffb7e813d98..1827d3ce2d5b 100644 --- a/arch/arm/mach-pxa/pxa3xx.c +++ b/arch/arm/mach-pxa/pxa3xx.c | |||
@@ -40,6 +40,8 @@ | |||
40 | #define PECR_IE(n) ((1 << ((n) * 2)) << 28) | 40 | #define PECR_IE(n) ((1 << ((n) * 2)) << 28) |
41 | #define PECR_IS(n) ((1 << ((n) * 2)) << 29) | 41 | #define PECR_IS(n) ((1 << ((n) * 2)) << 29) |
42 | 42 | ||
43 | extern void __init pxa_dt_irq_init(int (*fn)(struct irq_data *, unsigned int)); | ||
44 | |||
43 | static DEFINE_PXA3_CKEN(pxa3xx_ffuart, FFUART, 14857000, 1); | 45 | static DEFINE_PXA3_CKEN(pxa3xx_ffuart, FFUART, 14857000, 1); |
44 | static DEFINE_PXA3_CKEN(pxa3xx_btuart, BTUART, 14857000, 1); | 46 | static DEFINE_PXA3_CKEN(pxa3xx_btuart, BTUART, 14857000, 1); |
45 | static DEFINE_PXA3_CKEN(pxa3xx_stuart, STUART, 14857000, 1); | 47 | static DEFINE_PXA3_CKEN(pxa3xx_stuart, STUART, 14857000, 1); |
@@ -382,7 +384,7 @@ static void __init pxa_init_ext_wakeup_irq(int (*fn)(struct irq_data *, | |||
382 | pxa_ext_wakeup_chip.irq_set_wake = fn; | 384 | pxa_ext_wakeup_chip.irq_set_wake = fn; |
383 | } | 385 | } |
384 | 386 | ||
385 | void __init pxa3xx_init_irq(void) | 387 | static void __init __pxa3xx_init_irq(void) |
386 | { | 388 | { |
387 | /* enable CP6 access */ | 389 | /* enable CP6 access */ |
388 | u32 value; | 390 | u32 value; |
@@ -390,10 +392,21 @@ void __init pxa3xx_init_irq(void) | |||
390 | value |= (1 << 6); | 392 | value |= (1 << 6); |
391 | __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value)); | 393 | __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value)); |
392 | 394 | ||
393 | pxa_init_irq(56, pxa3xx_set_wake); | ||
394 | pxa_init_ext_wakeup_irq(pxa3xx_set_wake); | 395 | pxa_init_ext_wakeup_irq(pxa3xx_set_wake); |
395 | } | 396 | } |
396 | 397 | ||
398 | void __init pxa3xx_init_irq(void) | ||
399 | { | ||
400 | __pxa3xx_init_irq(); | ||
401 | pxa_init_irq(56, pxa3xx_set_wake); | ||
402 | } | ||
403 | |||
404 | void __init pxa3xx_dt_init_irq(void) | ||
405 | { | ||
406 | __pxa3xx_init_irq(); | ||
407 | pxa_dt_irq_init(pxa3xx_set_wake); | ||
408 | } | ||
409 | |||
397 | static struct map_desc pxa3xx_io_desc[] __initdata = { | 410 | static struct map_desc pxa3xx_io_desc[] __initdata = { |
398 | { /* Mem Ctl */ | 411 | { /* Mem Ctl */ |
399 | .virtual = (unsigned long)SMEMC_VIRT, | 412 | .virtual = (unsigned long)SMEMC_VIRT, |