diff options
author | Haojian Zhuang <haojian.zhuang@gmail.com> | 2013-04-21 04:53:02 -0400 |
---|---|---|
committer | Haojian Zhuang <haojian.zhuang@gmail.com> | 2013-08-24 05:42:09 -0400 |
commit | 0f374561b50df8f29e3427717b35dd57c7ac4ca4 (patch) | |
tree | d5b5275b3c77e80d6c9c01aacc8fb47e06e33489 /arch/arm/mach-mmp | |
parent | c052d13c08b793a13cf0158feca324417bf9ca4b (diff) |
irqchip: mmp: support irqchip
Support IRQCHIP & CONFIG_MULTI_IRQ_HANDLER in irq-mmp driver.
Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Reviewed-by: Daniel Drake <dsd@laptop.org>
Diffstat (limited to 'arch/arm/mach-mmp')
-rw-r--r-- | arch/arm/mach-mmp/include/mach/entry-macro.S | 26 | ||||
-rw-r--r-- | arch/arm/mach-mmp/mmp-dt.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-mmp/mmp2-dt.c | 8 |
3 files changed, 2 insertions, 40 deletions
diff --git a/arch/arm/mach-mmp/include/mach/entry-macro.S b/arch/arm/mach-mmp/include/mach/entry-macro.S deleted file mode 100644 index bd152e24e6d7..000000000000 --- a/arch/arm/mach-mmp/include/mach/entry-macro.S +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-mmp/include/mach/entry-macro.S | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #include <asm/irq.h> | ||
10 | #include <mach/regs-icu.h> | ||
11 | |||
12 | .macro get_irqnr_preamble, base, tmp | ||
13 | mrc p15, 0, \tmp, c0, c0, 0 @ CPUID | ||
14 | and \tmp, \tmp, #0xff00 | ||
15 | cmp \tmp, #0x5800 | ||
16 | ldr \base, =mmp_icu_base | ||
17 | ldr \base, [\base, #0] | ||
18 | addne \base, \base, #0x10c @ PJ1 AP INT SEL register | ||
19 | addeq \base, \base, #0x104 @ PJ4 IRQ SEL register | ||
20 | .endm | ||
21 | |||
22 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
23 | ldr \tmp, [\base, #0] | ||
24 | and \irqnr, \tmp, #0x3f | ||
25 | tst \tmp, #(1 << 6) | ||
26 | .endm | ||
diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c index b37915dc4470..cca529ceecb7 100644 --- a/arch/arm/mach-mmp/mmp-dt.c +++ b/arch/arm/mach-mmp/mmp-dt.c | |||
@@ -9,17 +9,13 @@ | |||
9 | * publishhed by the Free Software Foundation. | 9 | * publishhed by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/irq.h> | 12 | #include <linux/irqchip.h> |
13 | #include <linux/irqdomain.h> | ||
14 | #include <linux/of_irq.h> | ||
15 | #include <linux/of_platform.h> | 13 | #include <linux/of_platform.h> |
16 | #include <asm/mach/arch.h> | 14 | #include <asm/mach/arch.h> |
17 | #include <asm/mach/time.h> | 15 | #include <asm/mach/time.h> |
18 | #include <mach/irqs.h> | ||
19 | 16 | ||
20 | #include "common.h" | 17 | #include "common.h" |
21 | 18 | ||
22 | extern void __init mmp_dt_irq_init(void); | ||
23 | extern void __init mmp_dt_init_timer(void); | 19 | extern void __init mmp_dt_init_timer(void); |
24 | 20 | ||
25 | static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = { | 21 | static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = { |
@@ -64,7 +60,6 @@ static const char *mmp_dt_board_compat[] __initdata = { | |||
64 | 60 | ||
65 | DT_MACHINE_START(PXA168_DT, "Marvell PXA168 (Device Tree Support)") | 61 | DT_MACHINE_START(PXA168_DT, "Marvell PXA168 (Device Tree Support)") |
66 | .map_io = mmp_map_io, | 62 | .map_io = mmp_map_io, |
67 | .init_irq = mmp_dt_irq_init, | ||
68 | .init_time = mmp_dt_init_timer, | 63 | .init_time = mmp_dt_init_timer, |
69 | .init_machine = pxa168_dt_init, | 64 | .init_machine = pxa168_dt_init, |
70 | .dt_compat = mmp_dt_board_compat, | 65 | .dt_compat = mmp_dt_board_compat, |
@@ -72,7 +67,6 @@ MACHINE_END | |||
72 | 67 | ||
73 | DT_MACHINE_START(PXA910_DT, "Marvell PXA910 (Device Tree Support)") | 68 | DT_MACHINE_START(PXA910_DT, "Marvell PXA910 (Device Tree Support)") |
74 | .map_io = mmp_map_io, | 69 | .map_io = mmp_map_io, |
75 | .init_irq = mmp_dt_irq_init, | ||
76 | .init_time = mmp_dt_init_timer, | 70 | .init_time = mmp_dt_init_timer, |
77 | .init_machine = pxa910_dt_init, | 71 | .init_machine = pxa910_dt_init, |
78 | .dt_compat = mmp_dt_board_compat, | 72 | .dt_compat = mmp_dt_board_compat, |
diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c index 4ac256720f7d..023cb453f157 100644 --- a/arch/arm/mach-mmp/mmp2-dt.c +++ b/arch/arm/mach-mmp/mmp2-dt.c | |||
@@ -10,18 +10,13 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <linux/irq.h> | 13 | #include <linux/irqchip.h> |
14 | #include <linux/irqdomain.h> | ||
15 | #include <linux/of_irq.h> | ||
16 | #include <linux/of_platform.h> | 14 | #include <linux/of_platform.h> |
17 | #include <asm/mach/arch.h> | 15 | #include <asm/mach/arch.h> |
18 | #include <asm/mach/time.h> | 16 | #include <asm/mach/time.h> |
19 | #include <mach/irqs.h> | ||
20 | #include <mach/regs-apbc.h> | ||
21 | 17 | ||
22 | #include "common.h" | 18 | #include "common.h" |
23 | 19 | ||
24 | extern void __init mmp_dt_irq_init(void); | ||
25 | extern void __init mmp_dt_init_timer(void); | 20 | extern void __init mmp_dt_init_timer(void); |
26 | 21 | ||
27 | static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = { | 22 | static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = { |
@@ -49,7 +44,6 @@ static const char *mmp2_dt_board_compat[] __initdata = { | |||
49 | 44 | ||
50 | DT_MACHINE_START(MMP2_DT, "Marvell MMP2 (Device Tree Support)") | 45 | DT_MACHINE_START(MMP2_DT, "Marvell MMP2 (Device Tree Support)") |
51 | .map_io = mmp_map_io, | 46 | .map_io = mmp_map_io, |
52 | .init_irq = mmp_dt_irq_init, | ||
53 | .init_time = mmp_dt_init_timer, | 47 | .init_time = mmp_dt_init_timer, |
54 | .init_machine = mmp2_dt_init, | 48 | .init_machine = mmp2_dt_init, |
55 | .dt_compat = mmp2_dt_board_compat, | 49 | .dt_compat = mmp2_dt_board_compat, |