linux/arch/x86/include/asm/visws/lithium.h
<<
>>
Prefs
   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... */
  32static inline void li_pcia_write16(unsigned long reg, unsigned short v)
  33{
  34        *((volatile unsigned short *)(LI_PCIA_VADDR+reg))=v;
  35}
  36
  37static inline unsigned short li_pcia_read16(unsigned long reg)
  38{
  39         return *((volatile unsigned short *)(LI_PCIA_VADDR+reg));
  40}
  41
  42static inline void li_pcib_write16(unsigned long reg, unsigned short v)
  43{
  44        *((volatile unsigned short *)(LI_PCIB_VADDR+reg))=v;
  45}
  46
  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