rk610 codec : add adjust Analog Gain define
author邱建斌 <qjb@rock-chips.com>
Thu, 23 May 2013 02:36:29 +0000 (10:36 +0800)
committer邱建斌 <qjb@rock-chips.com>
Thu, 23 May 2013 02:36:29 +0000 (10:36 +0800)
sound/soc/codecs/rk610_codec.c

index d850f7b69ec83ecec2c8f26b49a90b1d6fef7ffc..a65bb27e4f95b6e21c2afc543667d37123fe39e1 100755 (executable)
 #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)   //ÊÇ·ñΪÎÞµçÈÝÊä³ö£¬1:ÎÞµçÈÝÊä³ö£¬0:ÓеçÈÝÊä³ö
 
-static u32 gVolReg = 0x00;  ///0x0f; //ÓÃÓڼǼÒôÁ¿¼Ä´æÆ÷
-//static u32 gCodecVol = 0x0f;
 static u8 gR0AReg = 0;  //ÓÃÓڼǼR0A¼Ä´æÆ÷µÄÖµ£¬ÓÃÓڸıä²ÉÑùÂÊǰͨ¹ýR0AÍ£Ö¹clk
 static u8 gR0BReg = 0;  //ÓÃÓڼǼR0B¼Ä´æÆ÷µÄÖµ£¬ÓÃÓڸıä²ÉÑùÂÊǰͨ¹ýR0BÍ£Ö¹interplateºÍdecimation
-//static u8 gR1314Reg = 0;  //ÓÃÓڼǼR13,R14¼Ä´æÆ÷µÄÖµ£¬ÓÃÓÚFMÒôÁ¿Îª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);