hw_irq.h 876 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef __ASM_SH_HW_IRQ_H
  2. #define __ASM_SH_HW_IRQ_H
  3. #include <linux/init.h>
  4. #include <linux/sh_intc.h>
  5. #include <linux/atomic.h>
  6. extern atomic_t irq_err_count;
  7. struct ipr_data {
  8. unsigned char irq;
  9. unsigned char ipr_idx; /* Index for the IPR registered */
  10. unsigned char shift; /* Number of bits to shift the data */
  11. unsigned char priority; /* The priority */
  12. };
  13. struct ipr_desc {
  14. unsigned long *ipr_offsets;
  15. unsigned int nr_offsets;
  16. struct ipr_data *ipr_data;
  17. unsigned int nr_irqs;
  18. struct irq_chip chip;
  19. };
  20. void register_ipr_controller(struct ipr_desc *);
  21. void __init plat_irq_setup(void);
  22. void __init plat_irq_setup_sh3(void);
  23. void __init plat_irq_setup_pins(int mode);
  24. enum { IRQ_MODE_IRQ, IRQ_MODE_IRQ7654, IRQ_MODE_IRQ3210,
  25. IRQ_MODE_IRL7654_MASK, IRQ_MODE_IRL3210_MASK,
  26. IRQ_MODE_IRL7654, IRQ_MODE_IRL3210 };
  27. #endif /* __ASM_SH_HW_IRQ_H */