1 #ifndef ASM_PARISC_GSC_H 2 #define ASM_PARISC_GSC_H 3 #ifdef __KERNEL__ 4 5 #include <linux/types.h> 6 #include <asm/io.h> /* temporary for __raw_{read,write} */ 7 8 /* Please, call ioremap and use {read,write}[bwl] instead. These functions 9 * are not very fast. 10 */ 11 #define gsc_readb(x) __raw_readb((unsigned long)x) 12 #define gsc_readw(x) __raw_readw((unsigned long)x) 13 #define gsc_readl(x) __raw_readl((unsigned long)x) 14 #define gsc_writeb(x, y) __raw_writeb(x, (unsigned long)y) 15 #define gsc_writew(x, y) __raw_writew(x, (unsigned long)y) 16 #define gsc_writel(x, y) __raw_writel(x, (unsigned long)y) 17 18 struct gsc_irq { 19 unsigned long txn_addr; /* IRQ "target" */ 20 int txn_data; /* HW "IRQ" */ 21 int irq; /* virtual IRQ */ 22 }; 23 24 /* PA I/O Architected devices support at least 5 bits in the EIM register. */ 25 #define GSC_EIM_WIDTH 5 26 27 extern int gsc_alloc_irq(struct gsc_irq *dev); /* dev needs an irq */ 28 extern int gsc_claim_irq(struct gsc_irq *dev, int irq); /* dev needs this irq */ 29 30 extern void probe_serial_gsc(void); 31 32 #endif /* __KERNEL__ */ 33 #endif /* LINUX_GSC_H */ 34