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 */ 26struct 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