aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-sh/hw_irq.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-sh/hw_irq.h')
-rw-r--r--include/asm-sh/hw_irq.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/asm-sh/hw_irq.h b/include/asm-sh/hw_irq.h
index c958fdaa009..7438d1e21bc 100644
--- a/include/asm-sh/hw_irq.h
+++ b/include/asm-sh/hw_irq.h
@@ -79,6 +79,10 @@ struct intc_desc {
79 struct intc_sense_reg *sense_regs; 79 struct intc_sense_reg *sense_regs;
80 unsigned int nr_sense_regs; 80 unsigned int nr_sense_regs;
81 char *name; 81 char *name;
82#ifdef CONFIG_CPU_SH3
83 struct intc_mask_reg *ack_regs;
84 unsigned int nr_ack_regs;
85#endif
82}; 86};
83 87
84#define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a) 88#define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a)
@@ -91,10 +95,25 @@ struct intc_desc symbol __initdata = { \
91 chipname, \ 95 chipname, \
92} 96}
93 97
98#ifdef CONFIG_CPU_SH3
99#define DECLARE_INTC_DESC_ACK(symbol, chipname, vectors, groups, \
100 mask_regs, prio_regs, sense_regs, ack_regs) \
101struct intc_desc symbol __initdata = { \
102 _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \
103 _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \
104 _INTC_ARRAY(sense_regs), \
105 chipname, \
106 _INTC_ARRAY(ack_regs), \
107}
108#endif
109
94void __init register_intc_controller(struct intc_desc *desc); 110void __init register_intc_controller(struct intc_desc *desc);
95int intc_set_priority(unsigned int irq, unsigned int prio); 111int intc_set_priority(unsigned int irq, unsigned int prio);
96 112
97void __init plat_irq_setup(void); 113void __init plat_irq_setup(void);
114#ifdef CONFIG_CPU_SH3
115void __init plat_irq_setup_sh3(void);
116#endif
98 117
99enum { IRQ_MODE_IRQ, IRQ_MODE_IRQ7654, IRQ_MODE_IRQ3210, 118enum { IRQ_MODE_IRQ, IRQ_MODE_IRQ7654, IRQ_MODE_IRQ3210,
100 IRQ_MODE_IRL7654_MASK, IRQ_MODE_IRL3210_MASK, 119 IRQ_MODE_IRL7654_MASK, IRQ_MODE_IRL3210_MASK,