• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  */
127