Linux-2.6.12-rc2
[linux-2.6.git] / sound / oss / sb_mixer.h
1 /*
2  * sound/sb_mixer.h
3  * 
4  * Definitions for the SB Pro and SB16 mixers
5  */
6 /*
7  * Copyright (C) by Hannu Savolainen 1993-1997
8  *
9  * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
10  * Version 2 (June 1991). See the "COPYING" file distributed with this software
11  * for more info.
12  */
13
14 /*
15  * Modified:
16  *      Hunyue Yau      Jan 6 1994
17  *      Added defines for the Sound Galaxy NX Pro mixer.
18  *
19  *      Rolf Fokkens    Dec 20 1998
20  *      Added defines for some ES188x chips.
21  *
22  *      Rolf Fokkens    Dec 27 1998
23  *      Moved static stuff to sb_mixer.c
24  *
25  */
26 /*
27  * Mixer registers
28  * 
29  * NOTE!        RECORD_SRC == IN_FILTER
30  */
31
32 /* 
33  * Mixer registers of SB Pro
34  */
35 #define VOC_VOL         0x04
36 #define MIC_VOL         0x0A
37 #define MIC_MIX         0x0A
38 #define RECORD_SRC      0x0C
39 #define IN_FILTER       0x0C
40 #define OUT_FILTER      0x0E
41 #define MASTER_VOL      0x22
42 #define FM_VOL          0x26
43 #define CD_VOL          0x28
44 #define LINE_VOL        0x2E
45 #define IRQ_NR          0x80
46 #define DMA_NR          0x81
47 #define IRQ_STAT        0x82
48 #define OPSW            0x3c
49
50 /*
51  * Additional registers on the SG NX Pro 
52  */
53 #define COVOX_VOL       0x42
54 #define TREBLE_LVL      0x44
55 #define BASS_LVL        0x46
56
57 #define FREQ_HI         (1 << 3)/* Use High-frequency ANFI filters */
58 #define FREQ_LOW        0       /* Use Low-frequency ANFI filters */
59 #define FILT_ON         0       /* Yes, 0 to turn it on, 1 for off */
60 #define FILT_OFF        (1 << 5)
61
62 #define MONO_DAC        0x00
63 #define STEREO_DAC      0x02
64
65 /*
66  * Mixer registers of SB16
67  */
68 #define SB16_OMASK      0x3c
69 #define SB16_IMASK_L    0x3d
70 #define SB16_IMASK_R    0x3e
71
72 #define LEFT_CHN        0
73 #define RIGHT_CHN       1
74
75 /*
76  * 3DSE register of AWE32/64
77  */
78 #define AWE_3DSE        0x90
79
80 /*
81  * Mixer registers of ALS007
82  */
83 #define ALS007_RECORD_SRC       0x6c
84 #define ALS007_OUTPUT_CTRL1     0x3c
85 #define ALS007_OUTPUT_CTRL2     0x4c
86
87 #define MIX_ENT(name, reg_l, bit_l, len_l, reg_r, bit_r, len_r) \
88         {{reg_l, bit_l, len_l}, {reg_r, bit_r, len_r}}
89
90 /*
91  *      Recording sources (SB Pro)
92  */
93
94 #define SRC__MIC         1      /* Select Microphone recording source */
95 #define SRC__CD          3      /* Select CD recording source */
96 #define SRC__LINE        7      /* Use Line-in for recording source */
97
98 /*
99  *      Recording sources for ALS-007
100  */
101
102 #define ALS007_MIC      4
103 #define ALS007_LINE     6
104 #define ALS007_CD       2
105 #define ALS007_SYNTH    7