1#ifndef __I386_SGI_LITHIUM_H 2#define __I386_SGI_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... */ 32extern __inline void li_pcia_write16(unsigned long reg, unsigned short v) 33{ 34 *((volatile unsigned short *)(LI_PCIA_VADDR+reg))=v; 35} 36 37extern __inline unsigned short li_pcia_read16(unsigned long reg) 38{ 39 return *((volatile unsigned short *)(LI_PCIA_VADDR+reg)); 40} 41 42extern __inline void li_pcib_write16(unsigned long reg, unsigned short v) 43{ 44 *((volatile unsigned short *)(LI_PCIB_VADDR+reg))=v; 45} 46 47extern __inline unsigned short li_pcib_read16(unsigned long reg) 48{ 49 return *((volatile unsigned short *)(LI_PCIB_VADDR+reg)); 50} 51 52#endif 53