Merge branches 'topic/fix/asoc', 'topic/fix/hda', 'topic/fix/misc' and 'topic/pci...
[linux-2.6] / include / sound / uda1341.h
1 /*
2  *  linux/include/linux/l3/uda1341.h
3  *
4  * Philips UDA1341 mixer device driver for ALSA
5  *
6  * Copyright (c) 2002 Tomas Kasparek <tomas.kasparek@seznam.cz>
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License.
10  *
11  * History:
12  *
13  * 2002-03-13 Tomas Kasparek Initial release - based on uda1341.h from OSS
14  * 2002-03-30 Tomas Kasparek Proc filesystem support, complete mixer and DSP
15  *                           features support
16  */
17
18 #define UDA1341_ALSA_NAME "snd-uda1341"
19
20 /*
21  * Default rate set after inicialization
22  */
23 #define AUDIO_RATE_DEFAULT      44100
24
25 /*
26  * UDA1341 L3 address and command types
27  */
28 #define UDA1341_L3ADDR          5
29 #define UDA1341_DATA0           (UDA1341_L3ADDR << 2 | 0)
30 #define UDA1341_DATA1           (UDA1341_L3ADDR << 2 | 1)
31 #define UDA1341_STATUS          (UDA1341_L3ADDR << 2 | 2)
32
33 enum uda1341_onoff {
34         OFF=0,
35         ON,
36 };
37
38 enum uda1341_format {
39         I2S=0,
40         LSB16,
41         LSB18,
42         LSB20,
43         MSB,
44         LSB16MSB,
45         LSB18MSB,
46         LSB20MSB,        
47 };
48
49 enum uda1341_fs {
50         F512=0,
51         F384,
52         F256,
53         Funused,
54 };
55
56 enum uda1341_peak {
57         BEFORE=0,
58         AFTER,
59 };
60
61 enum uda1341_filter {
62         FLAT=0,
63         MIN,
64         MIN2,
65         MAX,
66 };
67
68 enum uda1341_mixer {
69         DOUBLE,
70         LINE,
71         MIC,
72         MIXER,
73 };
74
75 enum uda1341_deemp {
76         NONE,
77         D32,
78         D44,
79         D48,
80 };
81
82 enum uda1341_config {
83         CMD_READ_REG = 0,
84         CMD_RESET,
85         CMD_FS,
86         CMD_FORMAT,
87         CMD_OGAIN,
88         CMD_IGAIN,
89         CMD_DAC,
90         CMD_ADC,
91         CMD_VOLUME,
92         CMD_BASS,
93         CMD_TREBBLE,
94         CMD_PEAK,
95         CMD_DEEMP,
96         CMD_MUTE,        
97         CMD_FILTER,
98         CMD_CH1,
99         CMD_CH2,
100         CMD_MIC,       
101         CMD_MIXER,
102         CMD_AGC,
103         CMD_IG,
104         CMD_AGC_TIME,
105         CMD_AGC_LEVEL,
106 #ifdef CONFIG_PM
107         CMD_SUSPEND,
108         CMD_RESUME,
109 #endif
110         CMD_LAST,
111 };
112
113 enum write_through {
114         //used in update_bits (write_cfg) to avoid l3_write - just update local copy of regs.
115         REGS_ONLY=0,
116         //update local regs and write value to uda1341 - do l3_write
117         FLUSH,
118 };
119
120 int __init snd_chip_uda1341_mixer_new(struct snd_card *card, struct l3_client **clnt);
121
122 /*
123  * Local variables:
124  * indent-tabs-mode: t
125  * End:
126  */