irq.h 992 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright 2004-2009 Analog Devices Inc.
  3. * 2003 HuTao
  4. * 2002 Arcturus Networks Inc. (www.arcturusnetworks.com
  5. * Ted Ma <mated@sympatico.ca>
  6. *
  7. * Licensed under the GPL-2
  8. */
  9. #ifndef _BFIN_IRQ_H_
  10. #define _BFIN_IRQ_H_
  11. #include <linux/irqflags.h>
  12. /* IRQs that may be used by external irq_chip controllers */
  13. #define NR_SPARE_IRQS 32
  14. #include <mach/anomaly.h>
  15. /* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */
  16. #include <mach/irq.h>
  17. /*
  18. * pm save bfin pint registers
  19. */
  20. struct adi_pm_pint_save {
  21. u32 assign;
  22. u32 edge_set;
  23. u32 invert_set;
  24. };
  25. #if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE)
  26. # define NOP_PAD_ANOMALY_05000244 "nop; nop;"
  27. #else
  28. # define NOP_PAD_ANOMALY_05000244
  29. #endif
  30. #define idle_with_irq_disabled() \
  31. __asm__ __volatile__( \
  32. NOP_PAD_ANOMALY_05000244 \
  33. ".align 8;" \
  34. "sti %0;" \
  35. "idle;" \
  36. : \
  37. : "d" (bfin_irq_flags) \
  38. )
  39. #include <asm-generic/irq.h>
  40. #endif /* _BFIN_IRQ_H_ */