| /* |
| * linux/include/linux/l3/uda1341.h |
| * |
| * Philips UDA1341 mixer device driver for ALSA |
| * |
| * Copyright (c) 2002 Tomas Kasparek <tomas.kasparek@seznam.cz> |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License. |
| * |
| * History: |
| * |
| * 2002-03-13 Tomas Kasparek Initial release - based on uda1341.h from OSS |
| * 2002-03-30 Tomas Kasparek Proc filesystem support, complete mixer and DSP |
| * features support |
| */ |
| |
| /* $Id: uda1341.h,v 1.8 2005/11/17 14:17:21 tiwai Exp $ */ |
| |
| #define UDA1341_ALSA_NAME "snd-uda1341" |
| |
| /* |
| * Default rate set after inicialization |
| */ |
| #define AUDIO_RATE_DEFAULT 44100 |
| |
| /* |
| * UDA1341 L3 address and command types |
| */ |
| #define UDA1341_L3ADDR 5 |
| #define UDA1341_DATA0 (UDA1341_L3ADDR << 2 | 0) |
| #define UDA1341_DATA1 (UDA1341_L3ADDR << 2 | 1) |
| #define UDA1341_STATUS (UDA1341_L3ADDR << 2 | 2) |
| |
| enum uda1341_onoff { |
| OFF=0, |
| ON, |
| }; |
| |
| enum uda1341_format { |
| I2S=0, |
| LSB16, |
| LSB18, |
| LSB20, |
| MSB, |
| LSB16MSB, |
| LSB18MSB, |
| LSB20MSB, |
| }; |
| |
| enum uda1341_fs { |
| F512=0, |
| F384, |
| F256, |
| Funused, |
| }; |
| |
| enum uda1341_peak { |
| BEFORE=0, |
| AFTER, |
| }; |
| |
| enum uda1341_filter { |
| FLAT=0, |
| MIN, |
| MIN2, |
| MAX, |
| }; |
| |
| enum uda1341_mixer { |
| DOUBLE, |
| LINE, |
| MIC, |
| MIXER, |
| }; |
| |
| enum uda1341_deemp { |
| NONE, |
| D32, |
| D44, |
| D48, |
| }; |
| |
| enum uda1341_config { |
| CMD_READ_REG = 0, |
| CMD_RESET, |
| CMD_FS, |
| CMD_FORMAT, |
| CMD_OGAIN, |
| CMD_IGAIN, |
| CMD_DAC, |
| CMD_ADC, |
| CMD_VOLUME, |
| CMD_BASS, |
| CMD_TREBBLE, |
| CMD_PEAK, |
| CMD_DEEMP, |
| CMD_MUTE, |
| CMD_FILTER, |
| CMD_CH1, |
| CMD_CH2, |
| CMD_MIC, |
| CMD_MIXER, |
| CMD_AGC, |
| CMD_IG, |
| CMD_AGC_TIME, |
| CMD_AGC_LEVEL, |
| #ifdef CONFIG_PM |
| CMD_SUSPEND, |
| CMD_RESUME, |
| #endif |
| CMD_LAST, |
| }; |
| |
| enum write_through { |
| //used in update_bits (write_cfg) to avoid l3_write - just update local copy of regs. |
| REGS_ONLY=0, |
| //update local regs and write value to uda1341 - do l3_write |
| FLUSH, |
| }; |
| |
| int __init snd_chip_uda1341_mixer_new(struct snd_card *card, struct l3_client **clnt); |
| |
| /* |
| * Local variables: |
| * indent-tabs-mode: t |
| * End: |
| */ |