1 #ifndef _ASM_X86_VISWS_LITHIUM_H 2 #define _ASM_X86_VISWS_LITHIUM_H 3 4 #include <asm/fixmap.h> 5 6 /* 7 * Lithium is the SGI Visual Workstation I/O ASIC 8 */ 9 10 #define LI_PCI_A_PHYS 0xfc000000 /* Enet is dev 3 */ 11 #define LI_PCI_B_PHYS 0xfd000000 /* PIIX4 is here */ 12 13 /* see set_fixmap() and asm/fixmap.h */ 14 #define LI_PCIA_VADDR (fix_to_virt(FIX_LI_PCIA)) 15 #define LI_PCIB_VADDR (fix_to_virt(FIX_LI_PCIB)) 16 17 /* Not a standard PCI? (not in linux/pci.h) */ 18 #define LI_PCI_BUSNUM 0x44 /* lo8: primary, hi8: sub */ 19 #define LI_PCI_INTEN 0x46 20 21 /* LI_PCI_INTENT bits */ 22 #define LI_INTA_0 0x0001 23 #define LI_INTA_1 0x0002 24 #define LI_INTA_2 0x0004 25 #define LI_INTA_3 0x0008 26 #define LI_INTA_4 0x0010 27 #define LI_INTB 0x0020 28 #define LI_INTC 0x0040 29 #define LI_INTD 0x0080 30 31 /* More special purpose macros... */ li_pcia_write16(unsigned long reg,unsigned short v)32static inline void li_pcia_write16(unsigned long reg, unsigned short v) 33 { 34 *((volatile unsigned short *)(LI_PCIA_VADDR+reg))=v; 35 } 36 li_pcia_read16(unsigned long reg)37static inline unsigned short li_pcia_read16(unsigned long reg) 38 { 39 return *((volatile unsigned short *)(LI_PCIA_VADDR+reg)); 40 } 41 li_pcib_write16(unsigned long reg,unsigned short v)42static inline void li_pcib_write16(unsigned long reg, unsigned short v) 43 { 44 *((volatile unsigned short *)(LI_PCIB_VADDR+reg))=v; 45 } 46 li_pcib_read16(unsigned long reg)47static inline unsigned short li_pcib_read16(unsigned long reg) 48 { 49 return *((volatile unsigned short *)(LI_PCIB_VADDR+reg)); 50 } 51 52 #endif /* _ASM_X86_VISWS_LITHIUM_H */ 53 54