1 #ifndef BUSDEVICE_H 2 #define BUSDEVICE_H 3 4 #include <linux/types.h> 5 #include <linux/interrupt.h> 6 #include <asm/hardware.h> 7 #include <asm/gsc.h> 8 9 #define OFFSET_IRR 0x0000 /* Interrupt request register */ 10 #define OFFSET_IMR 0x0004 /* Interrupt mask register */ 11 #define OFFSET_IPR 0x0008 /* Interrupt pending register */ 12 #define OFFSET_ICR 0x000C /* Interrupt control register */ 13 #define OFFSET_IAR 0x0010 /* Interrupt address register */ 14 15 16 struct busdevice { 17 struct parisc_device *gsc; 18 unsigned long hpa; 19 char *name; 20 int version; 21 int type; 22 int parent_irq; 23 int eim; 24 struct irq_region *busdev_region; 25 }; 26 27 /* short cut to keep the compiler happy */ 28 #define BUSDEV_DEV(x) ((struct busdevice *) (x)) 29 30 int gsc_common_irqsetup(struct parisc_device *parent, struct busdevice *busdev); 31 32 void busdev_barked(int busdev_irq, void *dev, struct pt_regs *regs); 33 34 #endif /* BUSDEVICE_H */ 35