rk610 codec : add adjust Analog Gain define

This commit is contained in:
邱建斌
2013-05-23 10:36:29 +08:00
parent 40149bca57
commit 57d32f2641

View File

@@ -57,20 +57,22 @@
#define DBG(x...)
#endif
//it can change rk610 output volume
//0x0000 ~ 0xFFFF
//rk610 output volume,DAC Digital Gain
//0x0000 ~ 0xF42
#define Volume_Output 0xF42
//it can change rk610 input volume
//0x00 ~ 0x0E
//0x0 ~ 0x3f(bit0-bit5) max=0x0(+6DB) min=0x3f(-60DB) //Analog Gain
#define Volume_Codec_PA 0x0
//rk610 input volume,rk610 can not adjust the recording volume
#define Volume_Input 0x07
#define OUT_CAPLESS (1) //<2F>Ƿ<EFBFBD>Ϊ<EFBFBD>޵<EFBFBD><DEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1:<3A>޵<EFBFBD><DEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0:<3A>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u32 gVolReg = 0x00; ///0x0f; //<2F><><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
//static u32 gCodecVol = 0x0f;
static u8 gR0AReg = 0; //<2F><><EFBFBD>ڼ<EFBFBD>¼R0A<30>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ڸı<DAB8><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͨ<C7B0><CDA8>R0Aֹͣclk
static u8 gR0BReg = 0; //<2F><><EFBFBD>ڼ<EFBFBD>¼R0B<30>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ڸı<DAB8><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰͨ<C7B0><CDA8>R0Bֹͣinterplate<74><65>decimation
//static u8 gR1314Reg = 0; //<2F><><EFBFBD>ڼ<EFBFBD>¼R13,R14<31>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FM<46><4D><EFBFBD><EFBFBD>Ϊ0ʱ
/*
* rk610 register cache
@@ -661,8 +663,8 @@ static int rk610_codec_mute(struct snd_soc_dai *dai, int mute)
{
// rk610_codec_write(codec,ACCELCODEC_R1D, 0x2a); //setup Vmid and Vref, other module power down
// rk610_codec_write(codec,ACCELCODEC_R1E, 0x40); ///|ASC_PDASDML_ENABLE);
rk610_codec_write(codec,ACCELCODEC_R17, gVolReg|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //AOL gVolReg|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //AOL
rk610_codec_write(codec,ACCELCODEC_R18, gVolReg|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //gVolReg|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //AOR
rk610_codec_write(codec,ACCELCODEC_R17, Volume_Codec_PA|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //AOL Volume_Codec_PA|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //AOL
rk610_codec_write(codec,ACCELCODEC_R18, Volume_Codec_PA|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //Volume_Codec_PA|ASC_OUTPUT_ACTIVE|ASC_CROSSZERO_EN); //AOR
rk610_codec_write(codec,ACCELCODEC_R04, ASC_INT_ACTIVE_L|ASC_INT_ACTIVE_R|ASC_SIDETONE_L_OFF|ASC_SIDETONE_R_OFF);
rk610_codec_write(codec,ACCELCODEC_R19, 0x7F); //AOM
msleep(300);