Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
[pandora-kernel.git] / 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 /* $Id: uda1341.h,v 1.8 2005/11/17 14:17:21 tiwai Exp $ */
19
20 #define UDA1341_ALSA_NAME "snd-uda1341"
21
22 /*
23  * Default rate set after inicialization
24  */
25 #define AUDIO_RATE_DEFAULT      44100
26
27 /*
28  * UDA1341 L3 address and command types
29  */
30 #define UDA1341_L3ADDR          5
31 #define UDA1341_DATA0           (UDA1341_L3ADDR << 2 | 0)
32 #define UDA1341_DATA1           (UDA1341_L3ADDR << 2 | 1)
33 #define UDA1341_STATUS          (UDA1341_L3ADDR << 2 | 2)
34
35 enum uda1341_onoff {
36         OFF=0,
37         ON,
38 };
39
40 enum uda1341_format {
41         I2S=0,
42         LSB16,
43         LSB18,
44         LSB20,
45         MSB,
46         LSB16MSB,
47         LSB18MSB,
48         LSB20MSB,        
49 };
50
51 enum uda1341_fs {
52         F512=0,
53         F384,
54         F256,
55         Funused,
56 };
57
58 enum uda1341_peak {
59         BEFORE=0,
60         AFTER,
61 };
62
63 enum uda1341_filter {
64         FLAT=0,
65         MIN,
66         MIN2,
67         MAX,
68 };
69
70 enum uda1341_mixer {
71         DOUBLE,
72         LINE,
73         MIC,
74         MIXER,
75 };
76
77 enum uda1341_deemp {
78         NONE,
79         D32,
80         D44,
81         D48,
82 };
83
84 enum uda1341_config {
85         CMD_READ_REG = 0,
86         CMD_RESET,
87         CMD_FS,
88         CMD_FORMAT,
89         CMD_OGAIN,
90         CMD_IGAIN,
91         CMD_DAC,
92         CMD_ADC,
93         CMD_VOLUME,
94         CMD_BASS,
95         CMD_TREBBLE,
96         CMD_PEAK,
97         CMD_DEEMP,
98         CMD_MUTE,        
99         CMD_FILTER,
100         CMD_CH1,
101         CMD_CH2,
102         CMD_MIC,       
103         CMD_MIXER,
104         CMD_AGC,
105         CMD_IG,
106         CMD_AGC_TIME,
107         CMD_AGC_LEVEL,
108 #ifdef CONFIG_PM
109         CMD_SUSPEND,
110         CMD_RESUME,
111 #endif
112         CMD_LAST,
113 };
114
115 enum write_through {
116         //used in update_bits (write_cfg) to avoid l3_write - just update local copy of regs.
117         REGS_ONLY=0,
118         //update local regs and write value to uda1341 - do l3_write
119         FLUSH,
120 };
121
122 int __init snd_chip_uda1341_mixer_new(struct snd_card *card, struct l3_client **clnt);
123
124 /*
125  * Local variables:
126  * indent-tabs-mode: t
127  * End:
128  */