1 /* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright 2003 Vivien Chappelier <vivien.chappelier@linux-mips.org> 7 * Copyright 2008 Thomas Bogendoerfer <tsbogend@franken.de> 8 */ 9 10 #ifndef __SOUND_AD1843_H 11 #define __SOUND_AD1843_H 12 13 struct snd_ad1843 { 14 void *chip; 15 int (*read)(void *chip, int reg); 16 int (*write)(void *chip, int reg, int val); 17 }; 18 19 #define AD1843_GAIN_RECLEV 0 20 #define AD1843_GAIN_LINE 1 21 #define AD1843_GAIN_LINE_2 2 22 #define AD1843_GAIN_MIC 3 23 #define AD1843_GAIN_PCM_0 4 24 #define AD1843_GAIN_PCM_1 5 25 #define AD1843_GAIN_SIZE (AD1843_GAIN_PCM_1+1) 26 27 int ad1843_get_gain_max(struct snd_ad1843 *ad1843, int id); 28 int ad1843_get_gain(struct snd_ad1843 *ad1843, int id); 29 int ad1843_set_gain(struct snd_ad1843 *ad1843, int id, int newval); 30 int ad1843_get_recsrc(struct snd_ad1843 *ad1843); 31 int ad1843_set_recsrc(struct snd_ad1843 *ad1843, int newsrc); 32 void ad1843_setup_dac(struct snd_ad1843 *ad1843, 33 unsigned int id, 34 unsigned int framerate, 35 snd_pcm_format_t fmt, 36 unsigned int channels); 37 void ad1843_shutdown_dac(struct snd_ad1843 *ad1843, 38 unsigned int id); 39 void ad1843_setup_adc(struct snd_ad1843 *ad1843, 40 unsigned int framerate, 41 snd_pcm_format_t fmt, 42 unsigned int channels); 43 void ad1843_shutdown_adc(struct snd_ad1843 *ad1843); 44 int ad1843_init(struct snd_ad1843 *ad1843); 45 46 #endif /* __SOUND_AD1843_H */ 47