0001
0002 #ifndef __SOUND_AK4531_CODEC_H
0003 #define __SOUND_AK4531_CODEC_H
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include <sound/info.h>
0014 #include <sound/control.h>
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #define AK4531_LMASTER 0x00
0026 #define AK4531_RMASTER 0x01
0027 #define AK4531_LVOICE 0x02
0028 #define AK4531_RVOICE 0x03
0029 #define AK4531_LFM 0x04
0030 #define AK4531_RFM 0x05
0031 #define AK4531_LCD 0x06
0032 #define AK4531_RCD 0x07
0033 #define AK4531_LLINE 0x08
0034 #define AK4531_RLINE 0x09
0035 #define AK4531_LAUXA 0x0a
0036 #define AK4531_RAUXA 0x0b
0037 #define AK4531_MONO1 0x0c
0038 #define AK4531_MONO2 0x0d
0039 #define AK4531_MIC 0x0e
0040 #define AK4531_MONO_OUT 0x0f
0041 #define AK4531_OUT_SW1 0x10
0042 #define AK4531_OUT_SW2 0x11
0043 #define AK4531_LIN_SW1 0x12
0044 #define AK4531_RIN_SW1 0x13
0045 #define AK4531_LIN_SW2 0x14
0046 #define AK4531_RIN_SW2 0x15
0047 #define AK4531_RESET 0x16
0048 #define AK4531_CLOCK 0x17
0049 #define AK4531_AD_IN 0x18
0050 #define AK4531_MIC_GAIN 0x19
0051
0052 struct snd_ak4531 {
0053 void (*write) (struct snd_ak4531 *ak4531, unsigned short reg,
0054 unsigned short val);
0055 void *private_data;
0056 void (*private_free) (struct snd_ak4531 *ak4531);
0057
0058 unsigned char regs[0x20];
0059 struct mutex reg_mutex;
0060 };
0061
0062 int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531,
0063 struct snd_ak4531 **rak4531);
0064
0065 #ifdef CONFIG_PM
0066 void snd_ak4531_suspend(struct snd_ak4531 *ak4531);
0067 void snd_ak4531_resume(struct snd_ak4531 *ak4531);
0068 #endif
0069
0070 #endif