Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef __ASM_SH_HW_IRQ_H |
| 2 | #define __ASM_SH_HW_IRQ_H |
| 3 | |
Magnus Damm | 02ab3f7 | 2007-07-18 17:25:09 +0900 | [diff] [blame] | 4 | #include <linux/init.h> |
Paul Mundt | bbfbd8b | 2008-10-01 16:13:54 +0900 | [diff] [blame] | 5 | #include <linux/sh_intc.h> |
Arun Sharma | 60063497 | 2011-07-26 16:09:06 -0700 | [diff] [blame^] | 6 | #include <linux/atomic.h> |
Paul Mundt | 35f3c51 | 2006-10-06 15:31:16 +0900 | [diff] [blame] | 7 | |
| 8 | extern atomic_t irq_err_count; |
| 9 | |
Magnus Damm | 68abdbb | 2007-06-15 18:56:19 +0900 | [diff] [blame] | 10 | struct ipr_data { |
| 11 | unsigned char irq; |
| 12 | unsigned char ipr_idx; /* Index for the IPR registered */ |
| 13 | unsigned char shift; /* Number of bits to shift the data */ |
| 14 | unsigned char priority; /* The priority */ |
| 15 | }; |
| 16 | |
| 17 | struct ipr_desc { |
| 18 | unsigned long *ipr_offsets; |
| 19 | unsigned int nr_offsets; |
| 20 | struct ipr_data *ipr_data; |
| 21 | unsigned int nr_irqs; |
| 22 | struct irq_chip chip; |
| 23 | }; |
| 24 | |
| 25 | void register_ipr_controller(struct ipr_desc *); |
Magnus Damm | 68abdbb | 2007-06-15 18:56:19 +0900 | [diff] [blame] | 26 | |
Magnus Damm | 90015c8 | 2007-07-18 17:57:34 +0900 | [diff] [blame] | 27 | void __init plat_irq_setup(void); |
Magnus Damm | a276e58 | 2008-04-24 21:30:09 +0900 | [diff] [blame] | 28 | void __init plat_irq_setup_sh3(void); |
Paul Mundt | bbfbd8b | 2008-10-01 16:13:54 +0900 | [diff] [blame] | 29 | void __init plat_irq_setup_pins(int mode); |
Magnus Damm | 90015c8 | 2007-07-18 17:57:34 +0900 | [diff] [blame] | 30 | |
Magnus Damm | a0e2326 | 2007-07-31 17:11:21 +0900 | [diff] [blame] | 31 | enum { IRQ_MODE_IRQ, IRQ_MODE_IRQ7654, IRQ_MODE_IRQ3210, |
Magnus Damm | 953c8ef | 2007-09-10 12:03:50 +0900 | [diff] [blame] | 32 | IRQ_MODE_IRL7654_MASK, IRQ_MODE_IRL3210_MASK, |
Magnus Damm | a0e2326 | 2007-07-31 17:11:21 +0900 | [diff] [blame] | 33 | IRQ_MODE_IRL7654, IRQ_MODE_IRL3210 }; |
Magnus Damm | 39c7aa9 | 2007-07-20 12:10:29 +0900 | [diff] [blame] | 34 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 35 | #endif /* __ASM_SH_HW_IRQ_H */ |