1 
2 /*
3  * I/O addresses
4  */
5 
6 #define u_Base			(gus_base + 0x000)
7 #define u_Mixer			u_Base
8 #define u_Status		(gus_base + 0x006)
9 #define u_TimerControl		(gus_base + 0x008)
10 #define u_TimerData		(gus_base + 0x009)
11 #define u_IRQDMAControl		(gus_base + 0x00b)
12 #define u_MidiControl		(gus_base + 0x100)
13 #define 	MIDI_RESET		0x03
14 #define		MIDI_ENABLE_XMIT	0x20
15 #define		MIDI_ENABLE_RCV		0x80
16 #define u_MidiStatus		u_MidiControl
17 #define		MIDI_RCV_FULL		0x01
18 #define 	MIDI_XMIT_EMPTY		0x02
19 #define 	MIDI_FRAME_ERR		0x10
20 #define 	MIDI_OVERRUN		0x20
21 #define 	MIDI_IRQ_PEND		0x80
22 #define u_MidiData		(gus_base + 0x101)
23 #define u_Voice			(gus_base + 0x102)
24 #define u_Command		(gus_base + 0x103)
25 #define u_DataLo		(gus_base + 0x104)
26 #define u_DataHi		(gus_base + 0x105)
27 #define u_MixData               (gus_base + 0x106)   /* Rev. 3.7+ mixing */
28 #define u_MixSelect             (gus_base + 0x506)   /* registers.       */
29 #define u_IrqStatus		u_Status
30 #	define MIDI_TX_IRQ		0x01	/* pending MIDI xmit IRQ */
31 #	define MIDI_RX_IRQ		0x02	/* pending MIDI recv IRQ */
32 #	define GF1_TIMER1_IRQ		0x04	/* general purpose timer */
33 #	define GF1_TIMER2_IRQ		0x08	/* general purpose timer */
34 #	define WAVETABLE_IRQ		0x20	/* pending wavetable IRQ */
35 #	define ENVELOPE_IRQ		0x40	/* pending volume envelope IRQ */
36 #	define DMA_TC_IRQ		0x80	/* pending dma tc IRQ */
37 
38 #define ICS2101		1
39 #	define ICS_MIXDEVS	6
40 #	define DEV_MIC		0
41 #	define DEV_LINE		1
42 #	define DEV_CD		2
43 #	define DEV_GF1		3
44 #	define DEV_UNUSED	4
45 #	define DEV_VOL		5
46 
47 #	define CHN_LEFT		0
48 #	define CHN_RIGHT	1
49 #define CS4231		2
50 #define u_DRAMIO		(gus_base + 0x107)
51