Initial import from FreeBSD RELENG_4:
[dragonfly.git] / sys / i386 / isa / sound / sbcard.h
1 /*
2  * file: sbcard.h
3  *
4  * $FreeBSD: src/sys/i386/isa/sound/sbcard.h,v 1.4 1999/12/27 04:37:19 tanimura Exp $
5  *
6  */
7
8 extern int sbc_major, sbc_minor ;
9 /*
10  * sound blaster registers
11  */
12
13 #ifdef PC98
14 #define DSP_RESET      (sbc_base + 0x600)
15 #define DSP_READ       (sbc_base + 0xA00)
16 #define DSP_WRITE      (sbc_base + 0xC00)
17 #define DSP_COMMAND    (sbc_base + 0xC00)
18 #define DSP_STATUS     (sbc_base + 0xC00)
19 #define DSP_DATA_AVAIL (sbc_base + 0xE00)
20 #define DSP_DATA_AVL16 (sbc_base + 0xF00)
21 #define MIXER_ADDR     (sbc_base + 0x400)
22 #define MIXER_DATA     (sbc_base + 0x500)
23 #define OPL3_LEFT      (sbc_base + 0x000)
24 #define OPL3_RIGHT     (sbc_base + 0x200)
25 #define OPL3_BOTH      (sbc_base + 0x800)
26 #else
27 #define DSP_RESET       (sbc_base + 0x6)
28 #define DSP_READ        (sbc_base + 0xA)
29 #define DSP_WRITE       (sbc_base + 0xC)
30 #define DSP_COMMAND     (sbc_base + 0xC)
31 #define DSP_STATUS      (sbc_base + 0xC)
32 #define DSP_DATA_AVAIL  (sbc_base + 0xE)
33 #define DSP_DATA_AVL16  (sbc_base + 0xF)
34 #define MIXER_ADDR      (sbc_base + 0x4)
35 #define MIXER_DATA      (sbc_base + 0x5)
36 #define OPL3_LEFT       (sbc_base + 0x0)
37 #define OPL3_RIGHT      (sbc_base + 0x2)
38 #define OPL3_BOTH       (sbc_base + 0x8)
39 #endif
40
41 /*
42  * DSP Commands. There are many, and in many cases they are used explicitly
43  */
44
45 #define DSP_CMD_SPKON           0xD1
46 #define DSP_CMD_SPKOFF          0xD3
47 #define DSP_CMD_DMAON           0xD0    /* ??? the comment says Halt DMA */
48 #define DSP_CMD_DMAOFF          0xD4    /* ??? comment says continue dma */
49
50 #define DSP_CMD_DMAHALT         0xD0
51 #define DSP_CMD_TCONST          0x40    /* set time constant */
52 #define DSP_CMD_HSSIZE          0x48    /* high speed dma count */
53 #define DSP_CMD_HSDAC           0x91    /* high speed dac */
54 #define DSP_CMD_HSADC           0x99    /* high speed adc */
55 #define DSP_CMD_DAC8            0x14    /* 8-bit dac (dma count) */
56 #define DSP_CMD_ADC8            0x24    /* 8-bit adc (dma count) */
57
58 #define DSP_CMD_GETVER          0xE1
59 #define DSP_CMD_GETID           0xE7    /* return id bytes */
60
61 #if 0 /*** unknown ***/
62
63 #endif
64
65 #define IMODE_NONE              0
66 #define IMODE_OUTPUT            PCM_ENABLE_OUTPUT
67 #define IMODE_INPUT             PCM_ENABLE_INPUT
68 #define IMODE_INIT              3
69 #define IMODE_MIDI              4
70
71 #define NORMAL_MIDI     0
72 #define UART_MIDI       1