home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-m68k / mac_oss.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.5 KB  |  95 lines

  1. /*
  2.  *    OSS
  3.  *
  4.  *    This is used in place of VIA2 on the IIfx.
  5.  */
  6.  
  7. #define OSS_BASE    (0x50f1a000)
  8.  
  9. /*
  10.  * Interrupt level offsets for mac_oss->irq_level
  11.  */
  12.  
  13. #define OSS_NUBUS0    0
  14. #define OSS_NUBUS1    1
  15. #define OSS_NUBUS2    2
  16. #define OSS_NUBUS3    3
  17. #define OSS_NUBUS4    4
  18. #define OSS_NUBUS5    5
  19. #define OSS_IOPISM    6
  20. #define OSS_IOPSCC    7
  21. #define OSS_SOUND    8
  22. #define OSS_SCSI    9
  23. #define OSS_60HZ    10
  24. #define OSS_VIA1    11
  25. #define OSS_UNUSED1    12
  26. #define OSS_UNUSED2    13
  27. #define OSS_PARITY    14
  28. #define OSS_UNUSED3    15
  29.  
  30. #define OSS_NUM_SOURCES    16
  31.  
  32. /*
  33.  * Pending interrupt bits in mac_oss->irq_pending
  34.  */
  35.  
  36. #define OSS_IP_NUBUS0    0x0001
  37. #define OSS_IP_NUBUS1    0x0002
  38. #define OSS_IP_NUBUS2    0x0004
  39. #define OSS_IP_NUBUS3    0x0008
  40. #define OSS_IP_NUBUS4    0x0010
  41. #define OSS_IP_NUBUS5    0x0020
  42. #define OSS_IP_IOPISM    0x0040
  43. #define OSS_IP_IOPSCC    0x0080
  44. #define OSS_IP_SOUND    0x0100
  45. #define OSS_IP_SCSI    0x0200
  46. #define OSS_IP_60HZ    0x0400
  47. #define OSS_IP_VIA1    0x0800
  48. #define OSS_IP_UNUSED1    0x1000
  49. #define OSS_IP_UNUSED2    0x2000
  50. #define OSS_IP_PARITY    0x4000
  51. #define OSS_IP_UNUSED3    0x8000
  52.  
  53. #define OSS_IP_NUBUS (OSS_IP_NUBUS0|OSS_IP_NUBUS1|OSS_IP_NUBUS2|OSS_IP_NUBUS3|OSS_IP_NUBUS4|OSS_IP_NUBUS5)
  54.  
  55. /*
  56.  * Rom Control Register
  57.  */
  58.  
  59. #define OSS_POWEROFF    0x80
  60.  
  61. /*
  62.  * OSS Interrupt levels for various sub-systems
  63.  *
  64.  * This mapping is layed out with two things in mind: first, we try to keep
  65.  * things on their own levels to avoid having to do double-dispatches. Second,
  66.  * the levels match as closely as possible the alternate IRQ mapping mode (aka
  67.  * "A/UX mode") available on some VIA machines.
  68.  */
  69.  
  70. #define OSS_IRQLEV_DISABLED    0
  71. #define OSS_IRQLEV_IOPISM    1    /* ADB? */
  72. #define OSS_IRQLEV_SCSI        2
  73. #define OSS_IRQLEV_NUBUS    3    /* keep this on its own level */
  74. #define OSS_IRQLEV_IOPSCC    4    /* matches VIA alternate mapping */
  75. #define OSS_IRQLEV_SOUND    5    /* matches VIA alternate mapping */
  76. #define OSS_IRQLEV_60HZ        6    /* matches VIA alternate mapping */
  77. #define OSS_IRQLEV_VIA1        6    /* matches VIA alternate mapping */
  78. #define OSS_IRQLEV_PARITY    7    /* matches VIA alternate mapping */
  79.  
  80. #ifndef __ASSEMBLY__
  81.  
  82. struct mac_oss {
  83.     __u8  irq_level[0x10];    /* [0x000-0x00f] Interrupt levels */
  84.     __u8  padding0[0x1F2];    /* [0x010-0x201] IO space filler */
  85.     __u16 irq_pending;        /* [0x202-0x203] pending interrupts bits */
  86.     __u8  rom_ctrl;        /* [0x204-0x204] ROM cntl reg (for poweroff) */
  87.     __u8  padding1[0x2];    /* [0x205-0x206] currently unused by A/UX */
  88.     __u8  ack_60hz;        /* [0x207-0x207] 60 Hz ack. */
  89. };
  90.  
  91. extern volatile struct mac_oss *oss;
  92. extern int oss_present;
  93.  
  94. #endif /* __ASSEMBLY__ */
  95.