summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/sound/sbcard.h
blob: 464128ccf46c01428155a474883eeb8555a5bb22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 * file: sbcard.h
 */

extern int sbc_major, sbc_minor ;
/*
 * sound blaster registers
 */

#define DSP_RESET	(sbc_base + 0x6)
#define DSP_READ	(sbc_base + 0xA)
#define DSP_WRITE	(sbc_base + 0xC)
#define DSP_COMMAND	(sbc_base + 0xC)
#define DSP_STATUS	(sbc_base + 0xC)
#define DSP_DATA_AVAIL	(sbc_base + 0xE)
#define DSP_DATA_AVL16	(sbc_base + 0xF)
#define MIXER_ADDR	(sbc_base + 0x4)
#define MIXER_DATA	(sbc_base + 0x5)
#define OPL3_LEFT	(sbc_base + 0x0)
#define OPL3_RIGHT	(sbc_base + 0x2)
#define OPL3_BOTH	(sbc_base + 0x8)

/*
 * DSP Commands. There are many, and in many cases they are used explicitly
 */

#define DSP_CMD_SPKON		0xD1
#define DSP_CMD_SPKOFF		0xD3
#define DSP_CMD_DMAON		0xD0	/* ??? the comment says Halt DMA */
#define DSP_CMD_DMAOFF		0xD4	/* ??? comment says continue dma */

#define	DSP_CMD_DMAHALT		0xD0
#define	DSP_CMD_TCONST		0x40	/* set time constant */
#define	DSP_CMD_HSSIZE		0x48	/* high speed dma count */
#define	DSP_CMD_HSDAC		0x91	/* high speed dac */
#define	DSP_CMD_HSADC		0x99	/* high speed adc */
#define	DSP_CMD_DAC8		0x14	/* 8-bit dac (dma count) */
#define	DSP_CMD_ADC8		0x24	/* 8-bit adc (dma count) */

#define	DSP_CMD_GETVER		0xE1
#define	DSP_CMD_GETID		0xE7	/* return id bytes */

#if 0 /*** unknown ***/

#endif

#define IMODE_NONE		0
#define IMODE_OUTPUT		PCM_ENABLE_OUTPUT
#define IMODE_INPUT		PCM_ENABLE_INPUT
#define IMODE_INIT		3
#define IMODE_MIDI		4

#define NORMAL_MIDI	0
#define UART_MIDI	1
OpenPOWER on IntegriCloud