aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/include
diff options
context:
space:
mode:
authorManuel Lauss <mano@roarinelk.homelinux.net>2008-12-21 03:26:17 -0500
committerRalf Baechle <ralf@linux-mips.org>2009-01-11 04:57:26 -0500
commit785e3268e2951d4c0c21417c8e5d8004b2ab2480 (patch)
tree3e7e98dbaf2592f22f65090325a823d36caa13f7 /arch/mips/include
parent7179380ee9bdeb5fa2ff07581f512fe0f5382e5b (diff)
MIPS: Alchemy: update core interrupt code.
This patch attempts to modernize core Alchemy interrupt handling code. - add irq_chips for irq controllers instead of irq type, - add a set_type() hook to change irq trigger type during runtime, - add a set_wake() hook to control GPIO0..7 based wakeup, - use linux' IRQF_TRIGGER_ constants instead of homebrew ones, - enable GENERIC_HARDIRQS_NO__DO_IRQ. - simplify plat_irq_dispatch - merge au1xxx_irqmap into irq.c file, the only place where its contents are referenced. - board_init_irq() is now mandatory for every board; use it to register the remaining (gpio-based) interrupt sources; update all boards accordingly. Run-tested on Db1200 and other Au1200 based platforms. Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net> Signed-off-by: Ralf Baechle <ralf@linux-mips.org> delete mode 100644 arch/mips/alchemy/common/au1xxx_irqmap.c
Diffstat (limited to 'arch/mips/include')
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1000.h18
1 files changed, 5 insertions, 13 deletions
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h
index 0d302bad4492..a7ba35247c8a 100644
--- a/arch/mips/include/asm/mach-au1x00/au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/au1000.h
@@ -109,10 +109,11 @@ struct au1xxx_irqmap {
109 int im_request; 109 int im_request;
110}; 110};
111 111
112/* 112/* core calls this function to let boards initialize other IRQ sources */
113 * init_IRQ looks for a table with this name. 113void board_init_irq(void);
114 */ 114
115extern struct au1xxx_irqmap au1xxx_irq_map[]; 115/* boards call this to register additional (GPIO) interrupts */
116void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count);
116 117
117#endif /* !defined (_LANGUAGE_ASSEMBLY) */ 118#endif /* !defined (_LANGUAGE_ASSEMBLY) */
118 119
@@ -505,15 +506,6 @@ extern struct au1xxx_irqmap au1xxx_irq_map[];
505 506
506#define IC1_TESTBIT 0xB1800080 507#define IC1_TESTBIT 0xB1800080
507 508
508/* Interrupt Configuration Modes */
509#define INTC_INT_DISABLED 0x0
510#define INTC_INT_RISE_EDGE 0x1
511#define INTC_INT_FALL_EDGE 0x2
512#define INTC_INT_RISE_AND_FALL_EDGE 0x3
513#define INTC_INT_HIGH_LEVEL 0x5
514#define INTC_INT_LOW_LEVEL 0x6
515#define INTC_INT_HIGH_AND_LOW_LEVEL 0x7
516
517/* Interrupt Numbers */ 509/* Interrupt Numbers */
518/* Au1000 */ 510/* Au1000 */
519#ifdef CONFIG_SOC_AU1000 511#ifdef CONFIG_SOC_AU1000