blob: 425fbff4f4d80dce4cf1b172aa9e0d66a72b1860 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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
Linus Torvalds1da177e2005-04-16 15:20:36 -070061#ifndef __ASSEMBLY__
62
63struct mac_oss {
64 __u8 irq_level[0x10]; /* [0x000-0x00f] Interrupt levels */
65 __u8 padding0[0x1F2]; /* [0x010-0x201] IO space filler */
66 __u16 irq_pending; /* [0x202-0x203] pending interrupts bits */
67 __u8 rom_ctrl; /* [0x204-0x204] ROM cntl reg (for poweroff) */
68 __u8 padding1[0x2]; /* [0x205-0x206] currently unused by A/UX */
69 __u8 ack_60hz; /* [0x207-0x207] 60 Hz ack. */
70};
71
72extern volatile struct mac_oss *oss;
73extern int oss_present;
74
Finn Thained04c972011-10-24 01:11:15 +110075extern void oss_register_interrupts(void);
76extern void oss_irq_enable(int);
77extern void oss_irq_disable(int);
78
Linus Torvalds1da177e2005-04-16 15:20:36 -070079#endif /* __ASSEMBLY__ */