aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/pxa3xx.c
diff options
context:
space:
mode:
authoreric miao <eric.miao@marvell.com>2008-03-04 00:53:05 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-04-19 06:29:04 -0400
commitf6fb7af4768bc1ddc2349f6eaefedd746c8e4913 (patch)
treeade9682bb833f1b576609b4344b4e55ce20a8500 /arch/arm/mach-pxa/pxa3xx.c
parente3630db1fa7677b350fd5a1ac5498cc48448ae28 (diff)
[ARM] pxa: integrate low IRQ chip (ICIP) and high IRQ chip (ICIP2) into one
This makes the code better organized and simplified a bit. The change will lose a bit of performance when performing IRQ ack/mask/unmask,but that's not too much after checking the result binary. This patch also removes the ugly #ifdef CONFIG_PXA27x .. #endif by carefully not to access those pxa{27x,3xx} specific registers, this is done by keeping an internal IRQ number variable. The pxa-regs.h is also modified so registers for IRQ > PXA_IRQ(31) are made public even if CONFIG_PXA{27x,3xx} isn't defined (for pxa25x's sake) The incorrect assumption in the original code that internal irq starts from 0 is also corrected by comparing with PXA_IRQ(0). "struct sys_device" for the IRQ are reduced into one single device on pxa{27x,3xx}. Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa/pxa3xx.c')
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 93f3236b4100..8f8179b2fc38 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -513,8 +513,7 @@ void __init pxa3xx_init_irq(void)
513 value |= (1 << 6); 513 value |= (1 << 6);
514 __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value)); 514 __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value));
515 515
516 pxa_init_irq_low(); 516 pxa_init_irq(56);
517 pxa_init_irq_high();
518 pxa_init_irq_gpio(128); 517 pxa_init_irq_gpio(128);
519 pxa3xx_init_irq_pm(); 518 pxa3xx_init_irq_pm();
520} 519}
@@ -538,10 +537,6 @@ static struct platform_device *devices[] __initdata = {
538 537
539static struct sys_device pxa3xx_sysdev[] = { 538static struct sys_device pxa3xx_sysdev[] = {
540 { 539 {
541 .id = 0,
542 .cls = &pxa_irq_sysclass,
543 }, {
544 .id = 1,
545 .cls = &pxa_irq_sysclass, 540 .cls = &pxa_irq_sysclass,
546 }, { 541 }, {
547 .cls = &pxa_gpio_sysclass, 542 .cls = &pxa_gpio_sysclass,