diff options
author | Haojian Zhuang <haojian.zhuang@gmail.com> | 2010-09-08 09:42:42 -0400 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2010-10-09 05:07:25 -0400 |
commit | 0bd8696119904b5868c7315b644128b16ab06f59 (patch) | |
tree | 0f3525f994b85f8d678656d74072cd23560483c8 /arch | |
parent | 20266df55db7dcb70b3f527a55f4eb5a4d7092e2 (diff) |
ARM: mmp: support sparse irq
Add sparse IRQ support in ARCH_MMP.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-mmp/aspenite.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-mmp/flint.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-mmp/include/mach/irqs.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-mmp/jasper.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-mmp/ttc_dkb.c | 4 |
6 files changed, 17 insertions, 4 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 95ad5f913a73..6cae2771bf66 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -510,6 +510,7 @@ config ARCH_MMP | |||
510 | select GENERIC_CLOCKEVENTS | 510 | select GENERIC_CLOCKEVENTS |
511 | select TICK_ONESHOT | 511 | select TICK_ONESHOT |
512 | select PLAT_PXA | 512 | select PLAT_PXA |
513 | select SPARSE_IRQ | ||
513 | help | 514 | help |
514 | Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. | 515 | Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. |
515 | 516 | ||
diff --git a/arch/arm/mach-mmp/aspenite.c b/arch/arm/mach-mmp/aspenite.c index f04bae6e4ccf..4681bedbe788 100644 --- a/arch/arm/mach-mmp/aspenite.c +++ b/arch/arm/mach-mmp/aspenite.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/mtd/mtd.h> | 16 | #include <linux/mtd/mtd.h> |
17 | #include <linux/mtd/partitions.h> | 17 | #include <linux/mtd/partitions.h> |
18 | #include <linux/mtd/nand.h> | 18 | #include <linux/mtd/nand.h> |
19 | #include <linux/interrupt.h> | ||
19 | 20 | ||
20 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
21 | #include <asm/mach/arch.h> | 22 | #include <asm/mach/arch.h> |
@@ -239,6 +240,7 @@ MACHINE_START(ASPENITE, "PXA168-based Aspenite Development Platform") | |||
239 | .phys_io = APB_PHYS_BASE, | 240 | .phys_io = APB_PHYS_BASE, |
240 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, | 241 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, |
241 | .map_io = mmp_map_io, | 242 | .map_io = mmp_map_io, |
243 | .nr_irqs = IRQ_BOARD_START, | ||
242 | .init_irq = pxa168_init_irq, | 244 | .init_irq = pxa168_init_irq, |
243 | .timer = &pxa168_timer, | 245 | .timer = &pxa168_timer, |
244 | .init_machine = common_init, | 246 | .init_machine = common_init, |
@@ -248,6 +250,7 @@ MACHINE_START(ZYLONITE2, "PXA168-based Zylonite2 Development Platform") | |||
248 | .phys_io = APB_PHYS_BASE, | 250 | .phys_io = APB_PHYS_BASE, |
249 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, | 251 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, |
250 | .map_io = mmp_map_io, | 252 | .map_io = mmp_map_io, |
253 | .nr_irqs = IRQ_BOARD_START, | ||
251 | .init_irq = pxa168_init_irq, | 254 | .init_irq = pxa168_init_irq, |
252 | .timer = &pxa168_timer, | 255 | .timer = &pxa168_timer, |
253 | .init_machine = common_init, | 256 | .init_machine = common_init, |
diff --git a/arch/arm/mach-mmp/flint.c b/arch/arm/mach-mmp/flint.c index e4312d238eae..c558425c3613 100644 --- a/arch/arm/mach-mmp/flint.c +++ b/arch/arm/mach-mmp/flint.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/smc91x.h> | 16 | #include <linux/smc91x.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/interrupt.h> | ||
19 | 20 | ||
20 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
21 | #include <asm/mach/arch.h> | 22 | #include <asm/mach/arch.h> |
@@ -25,6 +26,8 @@ | |||
25 | 26 | ||
26 | #include "common.h" | 27 | #include "common.h" |
27 | 28 | ||
29 | #define FLINT_NR_IRQS (IRQ_BOARD_START + 48) | ||
30 | |||
28 | static unsigned long flint_pin_config[] __initdata = { | 31 | static unsigned long flint_pin_config[] __initdata = { |
29 | /* UART1 */ | 32 | /* UART1 */ |
30 | GPIO45_UART1_RXD, | 33 | GPIO45_UART1_RXD, |
@@ -116,6 +119,7 @@ MACHINE_START(FLINT, "Flint Development Platform") | |||
116 | .phys_io = APB_PHYS_BASE, | 119 | .phys_io = APB_PHYS_BASE, |
117 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, | 120 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, |
118 | .map_io = mmp_map_io, | 121 | .map_io = mmp_map_io, |
122 | .nr_irqs = FLINT_NR_IRQS, | ||
119 | .init_irq = mmp2_init_irq, | 123 | .init_irq = mmp2_init_irq, |
120 | .timer = &mmp2_timer, | 124 | .timer = &mmp2_timer, |
121 | .init_machine = flint_init, | 125 | .init_machine = flint_init, |
diff --git a/arch/arm/mach-mmp/include/mach/irqs.h b/arch/arm/mach-mmp/include/mach/irqs.h index b379cdec4d38..a09d328e2ddd 100644 --- a/arch/arm/mach-mmp/include/mach/irqs.h +++ b/arch/arm/mach-mmp/include/mach/irqs.h | |||
@@ -222,10 +222,8 @@ | |||
222 | #define IRQ_GPIO_NUM 192 | 222 | #define IRQ_GPIO_NUM 192 |
223 | #define IRQ_GPIO(x) (IRQ_GPIO_START + (x)) | 223 | #define IRQ_GPIO(x) (IRQ_GPIO_START + (x)) |
224 | 224 | ||
225 | /* Board IRQ - 64 by default, increase if not enough */ | ||
226 | #define IRQ_BOARD_START (IRQ_GPIO_START + IRQ_GPIO_NUM) | 225 | #define IRQ_BOARD_START (IRQ_GPIO_START + IRQ_GPIO_NUM) |
227 | #define IRQ_BOARD_END (IRQ_BOARD_START + 64) | ||
228 | 226 | ||
229 | #define NR_IRQS (IRQ_BOARD_END) | 227 | #define NR_IRQS (IRQ_BOARD_START) |
230 | 228 | ||
231 | #endif /* __ASM_MACH_IRQS_H */ | 229 | #endif /* __ASM_MACH_IRQS_H */ |
diff --git a/arch/arm/mach-mmp/jasper.c b/arch/arm/mach-mmp/jasper.c index 80c3e7ab1e17..940ee03e3682 100644 --- a/arch/arm/mach-mmp/jasper.c +++ b/arch/arm/mach-mmp/jasper.c | |||
@@ -18,16 +18,18 @@ | |||
18 | #include <linux/regulator/machine.h> | 18 | #include <linux/regulator/machine.h> |
19 | #include <linux/regulator/max8649.h> | 19 | #include <linux/regulator/max8649.h> |
20 | #include <linux/mfd/max8925.h> | 20 | #include <linux/mfd/max8925.h> |
21 | #include <linux/interrupt.h> | ||
21 | 22 | ||
22 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
23 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
24 | #include <mach/addr-map.h> | 25 | #include <mach/addr-map.h> |
25 | #include <mach/mfp-mmp2.h> | 26 | #include <mach/mfp-mmp2.h> |
26 | #include <mach/mmp2.h> | 27 | #include <mach/mmp2.h> |
27 | #include <mach/irqs.h> | ||
28 | 28 | ||
29 | #include "common.h" | 29 | #include "common.h" |
30 | 30 | ||
31 | #define JASPER_NR_IRQS (IRQ_BOARD_START + 48) | ||
32 | |||
31 | static unsigned long jasper_pin_config[] __initdata = { | 33 | static unsigned long jasper_pin_config[] __initdata = { |
32 | /* UART1 */ | 34 | /* UART1 */ |
33 | GPIO29_UART1_RXD, | 35 | GPIO29_UART1_RXD, |
@@ -137,6 +139,7 @@ MACHINE_START(MARVELL_JASPER, "Jasper Development Platform") | |||
137 | .phys_io = APB_PHYS_BASE, | 139 | .phys_io = APB_PHYS_BASE, |
138 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, | 140 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, |
139 | .map_io = mmp_map_io, | 141 | .map_io = mmp_map_io, |
142 | .nr_irqs = JASPER_NR_IRQS, | ||
140 | .init_irq = mmp2_init_irq, | 143 | .init_irq = mmp2_init_irq, |
141 | .timer = &mmp2_timer, | 144 | .timer = &mmp2_timer, |
142 | .init_machine = jasper_init, | 145 | .init_machine = jasper_init, |
diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c index ee65e05f0cf1..54571139dc4b 100644 --- a/arch/arm/mach-mmp/ttc_dkb.c +++ b/arch/arm/mach-mmp/ttc_dkb.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/mtd/mtd.h> | 14 | #include <linux/mtd/mtd.h> |
15 | #include <linux/mtd/partitions.h> | 15 | #include <linux/mtd/partitions.h> |
16 | #include <linux/mtd/onenand.h> | 16 | #include <linux/mtd/onenand.h> |
17 | #include <linux/interrupt.h> | ||
17 | 18 | ||
18 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
19 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
@@ -24,6 +25,8 @@ | |||
24 | 25 | ||
25 | #include "common.h" | 26 | #include "common.h" |
26 | 27 | ||
28 | #define TTCDKB_NR_IRQS (IRQ_BOARD_START + 24) | ||
29 | |||
27 | static unsigned long ttc_dkb_pin_config[] __initdata = { | 30 | static unsigned long ttc_dkb_pin_config[] __initdata = { |
28 | /* UART2 */ | 31 | /* UART2 */ |
29 | GPIO47_UART2_RXD, | 32 | GPIO47_UART2_RXD, |
@@ -125,6 +128,7 @@ MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform") | |||
125 | .phys_io = APB_PHYS_BASE, | 128 | .phys_io = APB_PHYS_BASE, |
126 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, | 129 | .io_pg_offst = (APB_VIRT_BASE >> 18) & 0xfffc, |
127 | .map_io = mmp_map_io, | 130 | .map_io = mmp_map_io, |
131 | .nr_irqs = TTCDKB_NR_IRQS, | ||
128 | .init_irq = pxa910_init_irq, | 132 | .init_irq = pxa910_init_irq, |
129 | .timer = &pxa910_timer, | 133 | .timer = &pxa910_timer, |
130 | .init_machine = ttc_dkb_init, | 134 | .init_machine = ttc_dkb_init, |