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 10 #ifndef _BFIN_IRQ_H_ 11 #define _BFIN_IRQ_H_ 12 13 #include <linux/irqflags.h> 14 15 /* IRQs that may be used by external irq_chip controllers */ 16 #define NR_SPARE_IRQS 32 17 18 #include <mach/anomaly.h> 19 20 /* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */ 21 #include <mach/irq.h> 22 23 /* 24 * pm save bfin pint registers 25 */ 26 struct bfin_pm_pint_save { 27 u32 mask_set; 28 u32 assign; 29 u32 edge_set; 30 u32 invert_set; 31 }; 32 33 #if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE) 34 # define NOP_PAD_ANOMALY_05000244 "nop; nop;" 35 #else 36 # define NOP_PAD_ANOMALY_05000244 37 #endif 38 39 #define idle_with_irq_disabled() \ 40 __asm__ __volatile__( \ 41 NOP_PAD_ANOMALY_05000244 \ 42 ".align 8;" \ 43 "sti %0;" \ 44 "idle;" \ 45 : \ 46 : "d" (bfin_irq_flags) \ 47 ) 48 49 #include <asm-generic/irq.h> 50 51 #endif /* _BFIN_IRQ_H_ */ 52