[Bugfix][T106BUG-153] Solve the problem of no sound in the call codec
Only Configure:No
Affected branch:master
Affected module:Codec
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update:No
Change-Id: I465419323674bb2959c26a96b58ad554c0d95d18
diff --git a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
index e5e7d25..6f5eecc 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/linux-5.10/sound/soc/codecs/es8311.c
@@ -440,7 +440,8 @@
struct snd_soc_component *component = dai->component;
struct es8311_private *es8311 = snd_soc_component_get_drvdata(component);
- pr_info("Enter into %s()\n", __func__);
+ //fix T106BUG-153
+ printk("Enter into %s(),freq:%d\n", __func__,freq);
switch (freq) {
case 11289600:
case 22579200:
@@ -459,6 +460,8 @@
case 1536000:
case 1024000:
case 12000000:
+ //fix T106BUG-153
+ case 26000000:
es8311->mclk_rate = freq;
return 0;
}
@@ -496,7 +499,7 @@
return -EINVAL;
}
snd_soc_component_write(component, ES8311_RESET_REG00, iface);
-
+
/* interface format */
switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
@@ -584,7 +587,9 @@
int coeff;
u8 regv, datmp;
- pr_info("Enter into %s()\n", __func__);
+ //fix T106BUG-153
+ int rate;
+ printk("Enter into %s()\n", __func__);
/* we need mclk rate to configure registers. Set MCLK here if failed
* to get mclk from set_sysclk.
*
@@ -603,6 +608,8 @@
es8311->mclk_rate = 64 * params_rate(params);
}
+ //fix T106BUG-153
+ rate = params_rate(params);
pr_info("%s, mclk = %d, lrck = %d\n", __func__,
es8311->mclk_rate, params_rate(params));
@@ -610,7 +617,8 @@
if (coeff < 0) {
pr_info("Unable to configure sample rate %dHz with %dHz MCLK\n",
params_rate(params), es8311->mclk_rate);
- return -EINVAL;
+ //fix T106BUG-153
+ //return -EINVAL;
}
/*
* set clock parammeters
@@ -720,6 +728,27 @@
/* set iface */
snd_soc_component_write(component, ES8311_SDPOUT_REG0A, iface);
}
+
+ //fix T106BUG-153
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x98);
+
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG03, 0x1b);
+
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG04, 0x1b);
+
+ if(rate == 3000)
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0xbb);
+ if(rate == 16000)
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0x55);
+
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG06, 0x18);
+
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG07, 0x06);
+
+
+ snd_soc_component_write(component, ES8311_CLK_MANAGER_REG08, 0x58);
+ //fix T106BUG-153
+
return 0;
}
@@ -1071,7 +1100,10 @@
snd_soc_component_write(component, ES8311_CLK_MANAGER_REG01, 0x30);
snd_soc_component_write(component, ES8311_CLK_MANAGER_REG02, 0x00);
snd_soc_component_write(component, ES8311_CLK_MANAGER_REG03, 0x10);
- snd_soc_component_write(component, ES8311_ADC_REG16, 0x24);
+
+ //fix T106BUG-153
+ //snd_soc_component_write(component, ES8311_ADC_REG16, 0x24);
+ snd_soc_component_write(component, ES8311_ADC_REG16, 0x21);
snd_soc_component_write(component, ES8311_CLK_MANAGER_REG04, 0x10);
snd_soc_component_write(component, ES8311_CLK_MANAGER_REG05, 0x00);
snd_soc_component_write(component, ES8311_SDPIN_REG09, 0x00);
diff --git a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/audio_mixer_ctrl.c b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/audio_mixer_ctrl.c
index fb429c0..7c3e1d6 100755
--- a/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/audio_mixer_ctrl.c
+++ b/cap/zx297520v3/zxic_code/zxic_source/zxic_app_open/platform/libtinyalsa/audio_mixer_ctrl.c
@@ -1,1841 +1,4027 @@
#include <stdio.h>
+
#include <unistd.h>
+
#include <string.h>
+
#include <fcntl.h>
+
#include <stdint.h>
+
#include <stdbool.h>
+
#include <errno.h>
+
#include <stdlib.h>
+
#include <ctype.h>
+
#include <tinyalsa/asoundlib.h>
+
#include <sound/asound.h>
+
#include <tinyalsa/audio_mixer_ctrl.h>
+
+
#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
+
+
struct audio_para_conf {
+
const char *control;
+
char *values[2];
+
};
+
+
+
#if defined _USE_CODEC_TI3100
+
+
+
enum t_output_vol {
+
T_OUTPUT_VOL_MINUS_63_5DB = 0,
+
T_OUTPUT_VOL_MINUS_63DB = 1,
+
T_OUTPUT_VOL_MINUS_27DB = 73,
+
T_OUTPUT_VOL_MINUS_24DB = 79,
+
T_OUTPUT_VOL_MINUS_21DB = 85,
+
T_OUTPUT_VOL_MINUS_18DB = 91,
+
T_OUTPUT_VOL_MINUS_15DB = 97,
+
T_OUTPUT_VOL_MINUS_12DB = 103,
+
T_OUTPUT_VOL_MINUS_9DB = 109,
+
T_OUTPUT_VOL_MINUS_6DB = 115,
+
T_OUTPUT_VOL_MINUS_3DB = 121,
+
T_OUTPUT_VOL_MINUS_2DB = 123,
+
T_OUTPUT_VOL_MINUS_1DB = 125,
+
T_OUTPUT_VOL_0DB = 127,
+
T_OUTPUT_VOL_1DB = 129,
+
T_OUTPUT_VOL_2DB = 131,
+
T_OUTPUT_VOL_3DB = 133,
+
T_OUTPUT_VOL_6DB = 139,
+
T_OUTPUT_VOL_9DB = 145,
+
T_OUTPUT_VOL_12DB = 151,
+
T_OUTPUT_VOL_24DB = 175,
+
};
+
+
enum t_input_vol {
+
T_INPUT_VOL_MINUS_12DB = 0,
+
T_INPUT_VOL_MINUS_7DB = 10,
+
T_INPUT_VOL_MINUS_6DB = 12,
+
T_INPUT_VOL_MINUS_5DB = 14,
+
T_INPUT_VOL_MINUS_4DB = 16,
+
T_INPUT_VOL_MINUS_3DB = 18,
+
T_INPUT_VOL_MINUS_2DB = 20,
+
T_INPUT_VOL_MINUS_1DB = 22,
+
T_INPUT_VOL_0DB = 24,
+
T_INPUT_VOL_1DB = 26,
+
T_INPUT_VOL_2DB = 28,
+
T_INPUT_VOL_3DB = 30,
+
T_INPUT_VOL_20DB = 64,
+
};
-static struct audio_para_conf init_default_para[] = { //¿ª»ú³õʼ»¯µ÷ÓÃ
+
+
+static struct audio_para_conf init_default_para[] = { //开机初始化调用
+
{"Mic PGA Capture Volume", {"40"}},
+
{"ADC Mute", {"0"}},
+
{"ADC Fine Capture Volume", {"0"}},
+
{"Speaker Analog Playback Volume", {"127"}},
+
{"Speaker Driver Playback Switch", {"1"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
+
{"HP Analog Playback Volume", {"127", "127"}},
+
{"HP Driver Playback Switch", {"1", "1"}}, //7dB
+
};
+
+
#ifdef _USE_7520V3_PHONE_TYPE_FWP
-static struct audio_para_conf common_out_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
+
+static struct audio_para_conf common_out_para_audio[] = { //对应公共部分
+
{"Speaker Analog Playback Volume", {"127"}},
+
{"Speaker Driver Playback Switch", {"1"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
+
{"HP Analog Playback Volume", {"127", "127"}},
+
{"HP Driver Playback Switch", {"1", "1"}}, //7dB
+
};
-static struct audio_para_conf common_in_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
+
+
+static struct audio_para_conf common_in_para_audio[] = { //对应公共部分
+
{"Mic PGA Capture Volume", {"12"}},
+
{"ADC Mute", {"0"}},
+
{"ADC Fine Capture Volume", {"0"}},
+
+
};
-static struct audio_para_conf hp_outpath_para_audio[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ
+
+
+static struct audio_para_conf hp_outpath_para_audio[] = { //对应于Hp输出通道
+
{"Speaker Switch", {"0"}},
+
{"HP Left Switch", {"1"}},
+
{"HP Right Switch", {"1"}},
+
{"HP Driver Playback Volume", {"0", "0"}},
+
};
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
+
+
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
{"Speaker Switch", {"1"}},
+
{"Speaker Driver Playback Volume", {"2"}}, //18dB
+
{"HP Left Switch", {"0"}},
+
{"HP Right Switch", {"0"}},
+
};
-static struct audio_para_conf main_mic_inpath_para_audio[] = { //¶ÔÓ¦ÓÚMic1lp_Mic1lmÊäÈëͨµÀ
+
+
+static struct audio_para_conf main_mic_inpath_para_audio[] = { //对应于Mic1lp_Mic1lm输入通道
+
{"MIC1LM P-Terminal", {"Off"}},
+
{"MIC1RP P-Terminal", {"Off"}},
+
{"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
+
{"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
+
+
};
-static struct audio_para_conf aux_mic_inpath_para_audio[] = {//¶ÔÓ¦ÓÚMic1rpÊäÈëͨµÀ
+
+
+static struct audio_para_conf aux_mic_inpath_para_audio[] = {//对应于Mic1rp输入通道
+
{"MIC1LM P-Terminal", {"Off"}},
+
{"MIC1RP P-Terminal", {"FFR 10 Ohm"}},
+
{"MIC1LP P-Terminal", {"Off"}},
+
{"MIC1LM M-Terminal", {"Off"}},
+
};
-static struct audio_para_conf handset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
+
+
+static struct audio_para_conf handset_inoutpath_para_voice[] = { //对应于Hp输出通道Mic1lp_Mic1lm输入通道
+
{"Mic PGA Capture Volume", {"12"}},
+
//{"ADC Mute", {"0"}},
+
//{"ADC Fine Capture Volume", {"0"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
+
{"HP Analog Playback Volume", {"127", "127"}},
+
{"HP Driver Playback Switch", {"1", "1"}}, //7dB
+
{"Speaker Switch", {"0"}},
+
{"DAC Playback Volume", {"129", "129"}},
+
{"HP Left Switch", {"1"}},
+
{"HP Right Switch", {"1"}},
+
{"HP Driver Playback Volume", {"5", "5"}},
+
{"MIC1LM P-Terminal", {"Off"}},
+
{"MIC1RP P-Terminal", {"Off"}},
+
{"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
+
{"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
+
{"ADC Capture Volume", {"24"}},
+
#ifndef USE_CAP_SUPPORT
+
+
{"voice processing path select", {"handset"}}, // handset speak headset bluetooth
+
#endif
+
};
-static struct audio_para_conf headset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ Mic1rpÊäÈëͨµÀ
+
+
+static struct audio_para_conf headset_inoutpath_para_voice[] = { //对应于Hp输出通道 Mic1rp输入通道
+
{"Mic PGA Capture Volume", {"40"}},
+
//{"ADC Mute", {"0"}},
+
//{"ADC Fine Capture Volume", {"0"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
+
{"HP Analog Playback Volume", {"127", "127"}},
+
{"HP Driver Playback Switch", {"1", "1"}}, //7dB
+
{"Speaker Switch", {"0"}},
+
{"DAC Playback Volume ", {"129", "129"}},
+
{"HP Left Switch", {"1"}},
+
{"HP Right Switch", {"1"}},
+
{"HP Driver Playback Switch", {"7", "7"}}, //7dB
+
{"MIC1LM P-Terminal", {"Off"}},
+
{"MIC1RP P-Terminal", {"FFR 10 Ohm"}},
+
{"MIC1LP P-Terminal", {"Off"}},
+
{"MIC1LM M-Terminal", {"Off"}},
+
{"ADC Capture Volume", {"24"}},
+
#ifndef USE_CAP_SUPPORT
+
{"voice processing select", {"headset"}}, // handset speak headset bluetooth
+
#endif
+
};
-static struct audio_para_conf spk_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
+
+
+static struct audio_para_conf spk_inoutpath_para_voice[] = { //对应于Spk输出通道Mic1lp_Mic1lm输入通道
+
{"Mic PGA Capture Volume", {"12"}},
+
//{"ADC Mute", {"0"}},
+
//{"ADC Fine Capture Volume", {"0"}},
+
{"Speaker Analog Playback Volume", {"127"}},
+
{"Speaker Driver Playback Switch", {"1"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
+
{"DAC Playback Volume", {"124", "124"}}, //-1.5dB
+
{"Speaker Switch", {"1"}},
+
{"Speaker Driver Playback Volume", {"0"}}, //18dB
+
{"HP Left Switch", {"0"}},
+
{"HP Right Switch", {"0"}},
+
{"MIC1LM P-Terminal", {"Off"}},
+
{"MIC1RP P-Terminal", {"Off"}},
+
{"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
+
{"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
+
{"ADC Capture Volume", {"24"}},
+
#ifndef USE_CAP_SUPPORT
+
+
{"voice processing path select", {"speak"}}, // handset speak headset bluetooth
+
#endif
+
};
+
+
#else
-static struct audio_para_conf common_out_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
+
+static struct audio_para_conf common_out_para_audio[] = { //对应公共部分
+
{"Speaker Analog Playback Volume", {"127"}},
+
{"Speaker Driver Playback Switch", {"1"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
+
{"HP Analog Playback Volume", {"127", "127"}},
+
{"HP Driver Playback Switch", {"1", "1"}}, //7dB
+
};
-static struct audio_para_conf common_in_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
+
+
+static struct audio_para_conf common_in_para_audio[] = { //对应公共部分
+
{"Mic PGA Capture Volume", {"40"}},
+
{"ADC Mute", {"0"}},
+
{"ADC Fine Capture Volume", {"0"}},
+
+
};
-static struct audio_para_conf hp_outpath_para_audio[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ
+
+
+static struct audio_para_conf hp_outpath_para_audio[] = { //对应于Hp输出通道
+
{"Speaker Switch", {"0"}},
+
{"HP Left Switch", {"1"}},
+
{"HP Right Switch", {"1"}},
+
{"HP Driver Playback Volume", {"0", "0"}},
+
};
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
+
+
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
{"Speaker Switch", {"1"}},
+
{"Speaker Driver Playback Volume", {"2"}}, //18dB
+
{"HP Left Switch", {"0"}},
+
{"HP Right Switch", {"0"}},
+
};
-static struct audio_para_conf main_mic_inpath_para_audio[] = { //¶ÔÓ¦ÓÚMic1lp_Mic1lmÊäÈëͨµÀ
+
+
+static struct audio_para_conf main_mic_inpath_para_audio[] = { //对应于Mic1lp_Mic1lm输入通道
+
{"MIC1LM P-Terminal", {"Off"}},
+
{"MIC1RP P-Terminal", {"Off"}},
+
{"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
+
{"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
+
+
};
-static struct audio_para_conf aux_mic_inpath_para_audio[] = {//¶ÔÓ¦ÓÚMic1rpÊäÈëͨµÀ
+
+
+static struct audio_para_conf aux_mic_inpath_para_audio[] = {//对应于Mic1rp输入通道
+
{"MIC1LM P-Terminal", {"Off"}},
+
{"MIC1RP P-Terminal", {"FFR 10 Ohm"}},
+
{"MIC1LP P-Terminal", {"Off"}},
+
{"MIC1LM M-Terminal", {"Off"}},
+
};
-static struct audio_para_conf handset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- {"Mic PGA Capture Volume", {"40"}},//analog gain control from 0 dB to 59.5 dB in steps of 0.5 dB
- {"ADC Mute", {"0"}},//ADC muting
- {"DAC Mute", {"0","0"}},//DAC muting and setting up a master gain control to control both channels occurs
- //{"ADC Fine Capture Volume", {"0"}},
- {"DAC Left Input", {"Mono"}},
- {"DAC Right Input", {"Mono"}},
- {"Output Right From Right DAC", {"1"}},
- {"Output Left From Left DAC", {"1"}},//"1" means DAC_L is firstly routed to the left-channel mixer amplifier, then routed HPL driver
- {"HP Analog Playback Volume", {"114", "114"}},//Analog Volume Control for Headphone and Speaker Outputs(D0~D6)
- {"HP Driver Playback Switch", {"1", "1"}}, // HPL/HPR driver is not muted
- {"Speaker Switch", {"0"}},//Analog Volume Control for Speaker Outputs(D7)
- {"DAC Playback Volume", {"135", "135"}},//DAC volume: -127 to 48??//0627Ô½´óÔöÒæÔ½´ó
- {"HP Left Switch", {"1"}},//Analog Volume Control for Headphone Outputs(D7)
- {"HP Right Switch", {"1"}},
- {"HP Driver Playback Volume", {"9", "9"}},//HPL/HPR driver is 9dB(0~9)
- {"MIC1LM P-Terminal", {"Off"}},
- {"MIC1RP P-Terminal", {"Off"}},
- {"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
- {"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
- {"ADC Capture Volume", {"24"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
-#endif
-};
-static struct audio_para_conf headset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ Mic1rpÊäÈëͨµÀ
+
+static struct audio_para_conf handset_inoutpath_para_voice[] = { //对应于Hp输出通道Mic1lp_Mic1lm输入通道
+
{"Mic PGA Capture Volume", {"40"}},
+
{"ADC Mute", {"0"}},
+
{"DAC Mute", {"0","0"}},
+
//{"ADC Fine Capture Volume", {"0"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
+
{"HP Analog Playback Volume", {"127", "127"}},
+
{"HP Driver Playback Switch", {"1", "1"}}, //7dB
+
{"Speaker Switch", {"0"}},
- {"DAC Playback Volume ", {"129", "129"}},
+
+ {"DAC Playback Volume", {"129", "129"}},
+
{"HP Left Switch", {"1"}},
+
{"HP Right Switch", {"1"}},
- {"HP Driver Playback Switch", {"7", "7"}}, //7dB
+
+ {"HP Driver Playback Volume", {"7", "7"}},
+
{"MIC1LM P-Terminal", {"Off"}},
- {"MIC1RP P-Terminal", {"FFR 10 Ohm"}},
- {"MIC1LP P-Terminal", {"Off"}},
- {"MIC1LM M-Terminal", {"Off"}},
+
+ {"MIC1RP P-Terminal", {"Off"}},
+
+ {"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
+
+ {"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
+
{"ADC Capture Volume", {"24"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing select", {"headset"}}, // handset speak headset bluetooth
+
+#ifndef USE_CAP_SUPPORT
+
+ {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
+
#endif
+
};
-static struct audio_para_conf spk_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- {"Mic PGA Capture Volume", {"20"}},
+
+
+static struct audio_para_conf headset_inoutpath_para_voice[] = { //对应于Hp输出通道 Mic1rp输入通道
+
+ {"Mic PGA Capture Volume", {"40"}},
+
{"ADC Mute", {"0"}},
- {"DAC Mute", {"0","0"}},
+
+ {"DAC Mute", {"0","0"}},
+
//{"ADC Fine Capture Volume", {"0"}},
- {"Speaker Analog Playback Volume", {"116"}},
- {"Speaker Driver Playback Switch", {"1"}},
+
{"DAC Left Input", {"Mono"}},
+
{"DAC Right Input", {"Mono"}},
+
{"Output Right From Right DAC", {"1"}},
+
{"Output Left From Left DAC", {"1"}},
- {"DAC Playback Volume", {"130", "130"}}, //
- {"Speaker Switch", {"1"}},
- {"Speaker Driver Playback Volume", {"1"}}, //12dB //0~3 is 6dB~24dB(6-dB Steps)
- {"HP Left Switch", {"0"}},
- {"HP Right Switch", {"0"}},
+
+ {"HP Analog Playback Volume", {"127", "127"}},
+
+ {"HP Driver Playback Switch", {"1", "1"}}, //7dB
+
+ {"Speaker Switch", {"0"}},
+
+ {"DAC Playback Volume ", {"129", "129"}},
+
+ {"HP Left Switch", {"1"}},
+
+ {"HP Right Switch", {"1"}},
+
+ {"HP Driver Playback Switch", {"7", "7"}}, //7dB
+
{"MIC1LM P-Terminal", {"Off"}},
- {"MIC1RP P-Terminal", {"Off"}},
- {"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
- {"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
+
+ {"MIC1RP P-Terminal", {"FFR 10 Ohm"}},
+
+ {"MIC1LP P-Terminal", {"Off"}},
+
+ {"MIC1LM M-Terminal", {"Off"}},
+
{"ADC Capture Volume", {"24"}},
+
#ifndef USE_CAP_SUPPORT
-
- {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
+
+ {"voice processing select", {"headset"}}, // handset speak headset bluetooth
+
#endif
+
};
+
+
+static struct audio_para_conf spk_inoutpath_para_voice[] = { //对应于Spk输出通道Mic1lp_Mic1lm输入通道
+
+ {"Mic PGA Capture Volume", {"20"}},
+
+ {"ADC Mute", {"0"}},
+
+ {"DAC Mute", {"0","0"}},
+
+ //{"ADC Fine Capture Volume", {"0"}},
+
+ {"Speaker Analog Playback Volume", {"127"}},
+
+ {"Speaker Driver Playback Switch", {"1"}},
+
+ {"DAC Left Input", {"Mono"}},
+
+ {"DAC Right Input", {"Mono"}},
+
+ {"Output Right From Right DAC", {"1"}},
+
+ {"Output Left From Left DAC", {"1"}},
+
+ {"DAC Playback Volume", {"124", "124"}}, //-1.5dB
+
+ {"Speaker Switch", {"1"}},
+
+ {"Speaker Driver Playback Volume", {"2"}}, //18dB
+
+ {"HP Left Switch", {"0"}},
+
+ {"HP Right Switch", {"0"}},
+
+ {"MIC1LM P-Terminal", {"Off"}},
+
+ {"MIC1RP P-Terminal", {"Off"}},
+
+ {"MIC1LP P-Terminal", {"FFR 10 Ohm"}},
+
+ {"MIC1LM M-Terminal", {"FFR 10 Ohm"}},
+
+ {"ADC Capture Volume", {"24"}},
+
+#ifndef USE_CAP_SUPPORT
+
+
+
+ {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+
+
#endif
+
static struct audio_para_conf output_dac_vol = {"DAC Playback Volume", {"129","129"}};
+
+
static struct audio_para_conf input_adc_vol = {"ADC Capture Volume", {"24"}};
+
+
static struct audio_para_conf dac_mute = {"DAC Mute", {"1", "1"}};
+
static struct audio_para_conf adc_mute = {"ADC Mute", {"1"}};
+
+
static struct audio_para_conf spk_path_onoff[] = {
+
{"Speaker Switch", {"0"}},
+
};
+
static struct audio_para_conf rcv_path_onoff[] = {
+
{"HP Left Switch", {"0"}},
+
{"HP Right Switch", {"0"}},
+
};
+
static struct audio_para_conf earp_path_onoff[] = {
+
{"HP Left Switch", {"0"}},
+
{"HP Right Switch", {"0"}},
+
};
+
static int output_vol_conversion(int vol)
+
{
+
switch(vol){
+
case T_AUDIO_OUTPUT_VOL_LEVEL_0:
+
return T_OUTPUT_VOL_MINUS_63_5DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_1:
+
return T_OUTPUT_VOL_MINUS_27DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_2:
+
return T_OUTPUT_VOL_MINUS_24DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_3:
+
return T_OUTPUT_VOL_MINUS_21DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_4:
+
return T_OUTPUT_VOL_MINUS_18DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_5:
+
return T_OUTPUT_VOL_MINUS_15DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_6:
+
return T_OUTPUT_VOL_MINUS_12DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_7:
+
return T_OUTPUT_VOL_MINUS_9DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_8:
+
return T_OUTPUT_VOL_MINUS_6DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_9:
+
return T_OUTPUT_VOL_MINUS_3DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_10:
+
return T_OUTPUT_VOL_0DB;
+
case T_AUDIO_OUTPUT_VOL_LEVEL_11:
+
return T_OUTPUT_VOL_3DB;
+
default:
+
return T_OUTPUT_VOL_0DB;
+
}
+
}
+
+
static int input_vol_conversion(int vol)
+
{
+
switch(vol) {
+
case T_AUDIO_INPUT_VOL_LEVEL_0:
+
return T_INPUT_VOL_MINUS_12DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_1:
+
return T_INPUT_VOL_MINUS_7DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_2:
+
return T_INPUT_VOL_MINUS_6DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_3:
+
return T_INPUT_VOL_MINUS_5DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_4:
+
return T_INPUT_VOL_MINUS_4DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_5:
+
return T_INPUT_VOL_MINUS_3DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_6:
+
return T_INPUT_VOL_MINUS_2DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_7:
+
return T_INPUT_VOL_MINUS_1DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_8:
+
return T_INPUT_VOL_0DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_9:
+
return T_INPUT_VOL_1DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_10:
+
return T_INPUT_VOL_2DB;
+
case T_AUDIO_INPUT_VOL_LEVEL_11:
+
return T_INPUT_VOL_3DB;
+
default:
+
return T_INPUT_VOL_0DB;
+
}
+
}
-
-#elif defined _USE_CODEC_ES8374
+#elif defined _USE_CODEC_ES8311
+
+static struct audio_para_conf init_default_para[] = { //开机初始化调用
-enum t_output_vol {
- T_OUTPUT_VOL_MINUS_96DB = 0,
- T_OUTPUT_VOL_MINUS_95DB = 2,
- T_OUTPUT_VOL_MINUS_90DB = 12,
- T_OUTPUT_VOL_MINUS_85DB = 22,
- T_OUTPUT_VOL_MINUS_80DB = 32,
- T_OUTPUT_VOL_MINUS_75DB = 42,
- T_OUTPUT_VOL_MINUS_70DB = 52,
- T_OUTPUT_VOL_MINUS_65DB = 62,
- T_OUTPUT_VOL_MINUS_60DB = 72,
- T_OUTPUT_VOL_MINUS_55DB = 82,
- T_OUTPUT_VOL_MINUS_50DB = 92,
- T_OUTPUT_VOL_MINUS_45DB = 102,
- T_OUTPUT_VOL_MINUS_40DB = 112,
- T_OUTPUT_VOL_MINUS_35DB = 122,
- T_OUTPUT_VOL_MINUS_30DB = 132,
- T_OUTPUT_VOL_MINUS_25DB = 142,
- T_OUTPUT_VOL_MINUS_20DB = 152,
- T_OUTPUT_VOL_MINUS_15DB = 162,
- T_OUTPUT_VOL_MINUS_10DB = 172,
- T_OUTPUT_VOL_MINUS_7DB = 178,
- T_OUTPUT_VOL_MINUS_6DB = 180,
- T_OUTPUT_VOL_MINUS_5DB = 182,
- T_OUTPUT_VOL_MINUS_4DB = 184,
- T_OUTPUT_VOL_MINUS_3DB = 186,
- T_OUTPUT_VOL_MINUS_2DB = 188,
- T_OUTPUT_VOL_MINUS_1DB = 190,
- T_OUTPUT_VOL_0DB = 192
-};
-enum t_input_vol {
- T_INPUT_VOL_MINUS_96DB = 0,
- T_INPUT_VOL_MINUS_95DB = 2,
- T_INPUT_VOL_MINUS_90DB = 12,
- T_INPUT_VOL_MINUS_85DB = 22,
- T_INPUT_VOL_MINUS_80DB = 32,
- T_INPUT_VOL_MINUS_75DB = 42,
- T_INPUT_VOL_MINUS_70DB = 52,
- T_INPUT_VOL_MINUS_65DB = 62,
- T_INPUT_VOL_MINUS_60DB = 72,
- T_INPUT_VOL_MINUS_55DB = 82,
- T_INPUT_VOL_MINUS_50DB = 92,
- T_INPUT_VOL_MINUS_45DB = 102,
- T_INPUT_VOL_MINUS_40DB = 112,
- T_INPUT_VOL_MINUS_35DB = 122,
- T_INPUT_VOL_MINUS_30DB = 132,
- T_INPUT_VOL_MINUS_25DB = 142,
- T_INPUT_VOL_MINUS_20DB = 152,
- T_INPUT_VOL_MINUS_15DB = 162,
- T_INPUT_VOL_MINUS_10DB = 172,
- T_INPUT_VOL_MINUS_7DB = 178,
- T_INPUT_VOL_MINUS_6DB = 180,
- T_INPUT_VOL_MINUS_5DB = 182,
- T_INPUT_VOL_MINUS_4DB = 184,
- T_INPUT_VOL_MINUS_3DB = 186,
- T_INPUT_VOL_MINUS_2DB = 188,
- T_INPUT_VOL_MINUS_1DB = 190,
- T_INPUT_VOL_0DB = 192
};
-static struct audio_para_conf init_default_para[] = { //¿ª»ú³õʼ»¯µ÷ÓÃ
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ALC MUX", {"0"}},
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"6"}},
- {"ADC Capture Volume", {"192"}},
- {"ALC Capture Max PGA", {"15"}},
- {"DAC MUTE", {"0"}},
- {"DAC Playback Volume", {"120"}},
- {"DAC SDP SRC MUX", {"0"}},
- {"DAC SRC MUX", {"0"}}
-};
-//#ifdef _USE_7520V3_PHONE_TYPE_C31F
-#if ( defined _USE_7520V3_PHONE_TYPE_C31F || defined _USE_7520V3_PHONE_TYPE_WTWD )
-
-static struct audio_para_conf common_out_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
- {"DAC MUTE", {"0"}},
- //{"DAC Playback Volume", {"120"}},
- {"DAC SDP SRC MUX", {"0"}},
- {"DAC SRC MUX", {"0"}}
-};
-
-static struct audio_para_conf common_in_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-#if 0
- {"ALC MUX", {"1"}},
- {"ALC Capture Target Volume", {"5"}},
- {"ALC Capture Max PGA", {"11"}},
- {"ALC Capture Min PGA", {"2"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"0"}},
- {"ALC Capture Attack Time", {"0"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"6"}},
- {"ADC Capture Volume", {"192"}},
-};
-
-#ifdef _USE_7520V3_PHONE_TYPE_WTWD
-static struct audio_para_conf hp_outpath_para_audio[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ
- {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}},
- {"SPEAKER MIXER GAIN", {"41"}}, //1d
- {"SPEAKER OUTPUT Volume", {"0"}}, //1e
- {"DAC Playback Volume", {"192"}}, //38
-};
-#else
-static struct audio_para_conf hp_outpath_para_audio[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"4"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
- {"audio path select",{"handset"}},
-};
-
-#endif
-/*
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
- {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
- {"SPEAKER MIXER GAIN", {"4"}},
- {"SPEAKER OUTPUT Volume", {"4"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}}
-};
-*/
-
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"11"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
- {"audio path select",{"speak"}},
-};
-
-static struct audio_para_conf main_mic_inpath_para_audio[] = { //¶ÔÓ¦ÓÚLin1-Rin1ÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
-};
-
-static struct audio_para_conf aux_mic_inpath_para_audio[] = {//¶ÔÓ¦ÓÚLin2-Rin2ÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"2"}},
-};
-
-#ifdef _USE_7520V3_PHONE_TYPE_WTWD
-
-static struct audio_para_conf handset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
-#ifndef USE_CAP_SUPPORT
-
- //{"voice processing path select", {"headset"}}, // handset speak headset bluetooth
- {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
-#endif
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"6"}},
- {"ADC Capture Volume", {"192"}},
-
- {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}},
- {"SPEAKER MIXER GAIN", {"32"}}, //old 41
- {"SPEAKER OUTPUT Volume", {"0"}}, //1
- {"DAC Playback Volume", {"192"}}, //38
-};
-
-#else
-static struct audio_para_conf handset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
-#ifndef USE_CAP_SUPPORT
-
- {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
-#endif
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
-#if 0
- {"ALC Capture Target Volume", {"7"}},
- {"ALC Capture Max PGA", {"13"}},
- {"ALC Capture Min PGA", {"8"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"1"}},
- {"ALC Capture Attack Time", {"2"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"6"}},
- {"ADC Capture Volume", {"192"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"11"}},
- {"DAC Playback Volume", {"192"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
-};
-#endif
-static struct audio_para_conf headset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ Mic1rpÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
-#if 0
- {"ALC Capture Target Volume", {"7"}},
- {"ALC Capture Max PGA", {"13"}},
- {"ALC Capture Min PGA", {"8"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"1"}},
- {"ALC Capture Attack Time", {"2"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"7"}},
- {"ADC Capture Volume", {"192"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"4"}},
- {"DAC Playback Volume", {"190"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing select", {"headset"}}, // handset speak headset bluetooth
-#endif
-};
-#ifdef _USE_7520V3_PHONE_TYPE_WTWD //class-d -->receiver
-static struct audio_para_conf spk_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
-#if 0
- {"ALC Capture Target Volume", {"7"}},
- {"ALC Capture Max PGA", {"13"}},
- {"ALC Capture Min PGA", {"8"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"1"}},
- {"ALC Capture Attack Time", {"2"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"6"}},
- {"ADC Capture Volume", {"192"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"4"}},
- {"DAC Playback Volume", {"186"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
-#endif
-};
-#else//momo out -> speaker
-static struct audio_para_conf spk_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
-#if 0
- {"ALC Capture Target Volume", {"7"}},
- {"ALC Capture Max PGA", {"13"}},
- {"ALC Capture Min PGA", {"8"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"1"}},
- {"ALC Capture Attack Time", {"2"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"6"}},
- {"ADC Capture Volume", {"192"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"0"}},
- {"DAC Playback Volume", {"186"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
-#endif
-};
-
-#endif
-
-
-
-#else
-static struct audio_para_conf common_out_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
- {"DAC MUTE", {"0"}},
- //{"DAC Playback Volume", {"120"}},
- {"DAC SDP SRC MUX", {"0"}},
- {"DAC SRC MUX", {"0"}}
-};
-
-static struct audio_para_conf common_in_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-#if 1
- {"ALC MUX", {"1"}},
- {"ALC Capture Target Volume", {"5"}},
- {"ALC Capture Max PGA", {"11"}},
- {"ALC Capture Min PGA", {"2"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"0"}},
- {"ALC Capture Attack Time", {"0"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"3"}},
- {"ADC Capture Volume", {"180"}},
-};
-
-static struct audio_para_conf hp_outpath_para_audio[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"4"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}}
-};
-
-/*
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
- {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
- {"SPEAKER MIXER GAIN", {"4"}},
- {"SPEAKER OUTPUT Volume", {"4"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}}
-};
-*/
-
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"3"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}}
-};
-
-static struct audio_para_conf main_mic_inpath_para_audio[] = { //¶ÔÓ¦ÓÚLin1-Rin1ÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
-};
-
-static struct audio_para_conf aux_mic_inpath_para_audio[] = {//¶ÔÓ¦ÓÚLin2-Rin2ÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"2"}},
-};
-
-static struct audio_para_conf handset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
-#if 0
- {"ALC Capture Target Volume", {"7"}},
- {"ALC Capture Max PGA", {"13"}},
- {"ALC Capture Min PGA", {"8"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"1"}},
- {"ALC Capture Attack Time", {"2"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"7"}},
- {"ADC Capture Volume", {"192"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"4"}},
- {"DAC Playback Volume", {"190"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
-#endif
-};
-
-static struct audio_para_conf headset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ Mic1rpÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
-#if 0
- {"ALC Capture Target Volume", {"7"}},
- {"ALC Capture Max PGA", {"13"}},
- {"ALC Capture Min PGA", {"8"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"1"}},
- {"ALC Capture Attack Time", {"2"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"7"}},
- {"ADC Capture Volume", {"192"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"4"}},
- {"DAC Playback Volume", {"190"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing select", {"headset"}}, // handset speak headset bluetooth
-#endif
-};
-
-static struct audio_para_conf spk_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- {"DIFFERENTIAL MUX", {"1"}},
- {"DMIC MUX", {"0"}},
- {"SDP OUT MUX", {"0"}},
- {"ADC Soft Ramp", {"0"}},
- {"ADC HPF COEFFICIENT", {"5"}},
-
- {"ALC MUX", {"0"}},
-#if 0
- {"ALC Capture Target Volume", {"7"}},
- {"ALC Capture Max PGA", {"13"}},
- {"ALC Capture Min PGA", {"8"}},
- {"ALC Capture Hold Time", {"0"}},
- {"ALC Capture Decay Time", {"1"}},
- {"ALC Capture Attack Time", {"2"}},
- {"ALC WIN SIZE", {"6"}},
- {"ALC Capture NG Threshold", {"14"}},
- {"ALC Capture NG Type", {"0"}},
- {"ALC Capture NG Switch", {"0"}},
-#endif
- {"D2SE MIC BOOST GAIN", {"1"}},
- {"LIN PGA GAIN", {"7"}},
- {"ADC Capture Volume", {"192"}},
- {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
- {"MONO OUT GAIN", {"4"}},
- {"DAC Playback Volume", {"190"}},
- {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
-#ifndef USE_CAP_SUPPORT
- {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
-#endif
-};
-
-#endif
-
-static struct audio_para_conf output_dac_vol = {"DAC Playback Volume", {"120"}};
-
-static struct audio_para_conf input_adc_vol = {"ADC Capture Volume", {"192"}};
-
-static struct audio_para_conf dac_mute = {"DAC MUTE", {"1"}};
-static struct audio_para_conf adc_mute = {"ADC MUTE", {"1"}};
-
-static struct audio_para_conf spk_path_onoff[] = {
- {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
-};
-
-static struct audio_para_conf rcv_path_onoff[] = {
- {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
-};
-
-static struct audio_para_conf earp_path_onoff[] = {
- {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
-};
-
-
-static int output_vol_conversion(int vol)
-{
- switch(vol){
- case T_AUDIO_OUTPUT_VOL_LEVEL_0:
- return T_OUTPUT_VOL_MINUS_96DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_1:
- return T_OUTPUT_VOL_MINUS_45DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_2:
- return T_OUTPUT_VOL_MINUS_40DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_3:
- return T_OUTPUT_VOL_MINUS_35DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_4:
- return T_OUTPUT_VOL_MINUS_30DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_5:
- return T_OUTPUT_VOL_MINUS_25DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_6:
- return T_OUTPUT_VOL_MINUS_20DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_7:
- return T_OUTPUT_VOL_MINUS_15DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_8:
- return T_OUTPUT_VOL_MINUS_10DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_9:
- return T_OUTPUT_VOL_MINUS_6DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_10:
- return T_OUTPUT_VOL_MINUS_3DB;
- case T_AUDIO_OUTPUT_VOL_LEVEL_11:
- return T_OUTPUT_VOL_0DB;
- default:
- return T_OUTPUT_VOL_0DB;
- }
-}
-
-static int input_vol_conversion(int vol)
-{
- switch(vol) {
- case T_AUDIO_INPUT_VOL_LEVEL_0:
- return T_INPUT_VOL_MINUS_96DB;
- case T_AUDIO_INPUT_VOL_LEVEL_1:
- return T_INPUT_VOL_MINUS_30DB;
- case T_AUDIO_INPUT_VOL_LEVEL_2:
- return T_INPUT_VOL_MINUS_25DB;
- case T_AUDIO_INPUT_VOL_LEVEL_3:
- return T_INPUT_VOL_MINUS_20DB;
- case T_AUDIO_INPUT_VOL_LEVEL_4:
- return T_INPUT_VOL_MINUS_15DB;
- case T_AUDIO_INPUT_VOL_LEVEL_5:
- return T_INPUT_VOL_MINUS_10DB;
- case T_AUDIO_INPUT_VOL_LEVEL_6:
- return T_INPUT_VOL_MINUS_7DB;
- case T_AUDIO_INPUT_VOL_LEVEL_7:
- return T_INPUT_VOL_MINUS_4DB;
- case T_AUDIO_INPUT_VOL_LEVEL_8:
- return T_INPUT_VOL_MINUS_3DB;
- case T_AUDIO_INPUT_VOL_LEVEL_9:
- return T_INPUT_VOL_MINUS_2DB;
- case T_AUDIO_INPUT_VOL_LEVEL_10:
- return T_INPUT_VOL_MINUS_1DB;
- case T_AUDIO_INPUT_VOL_LEVEL_11:
- return T_INPUT_VOL_0DB;
- default:
- return T_INPUT_VOL_MINUS_30DB;
- }
-}
-
-#elif defined _USE_CODEC_AK4940
-
-static struct audio_para_conf common_out_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
- {"DAC Soft Mute Control", {"0"}},
- //{"BICK Frequency", {"32fs"}},
- {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
-
-};
-
-
-static struct audio_para_conf common_in_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
-
- {"Mic Gain Control", {"0"}},
- {"ADC Digital Volume (VOLAD)", {"195"}},
- {"ADC Soft Mute Control", {"0"}},
-
-
-};
-
-static struct audio_para_conf hp_outpath_para_audio[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ
- {"OUT2 MUX", {"DAC"}},
- {"Lineout Type", {"Single-end"}},
-
-};
-
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
- {"OUT1 MUX", {"DAC"}},
- {"Lineout Type", {"Differential"}},
-
-};
-
-static struct audio_para_conf main_mic_inpath_para_audio[] = { //¶ÔÓ¦ÓÚMic1lp_Mic1lmÊäÈëͨµÀ
-
- {"ADC Input Type", {"Single-end"}},
- {"AIN MUX", {"AIN1"}},
-
-};
-
-static struct audio_para_conf aux_mic_inpath_para_audio[] = {//¶ÔÓ¦ÓÚMic1rpÊäÈëͨµÀ
-
- {"ADC Input Type", {"Single-end"}},
- {"AIN MUX", {"AIN2"}},
-};
-
-static struct audio_para_conf handset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- // common in
-
- {"Mic Gain Control", {"0"}},
- {"ADC Digital Volume (VOLAD)", {"195"}},
- {"ADC Soft Mute Control", {"0"}},
- //diff in
- {"ADC Input Type", {"Single-end"}},
- {"AIN MUX", {"AIN1"}},
-
- // common out
-
- {"DAC Soft Mute Control", {"0"}},
- //{"BICK Frequency", {"32fs"}},
- {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
- //diff out
-
- //voice
-#ifndef USE_CAP_SUPPORT
-
- {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
-#endif
-};
-
-static struct audio_para_conf headset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ Mic1rpÊäÈëͨµÀ
- // common in
-
- {"Mic Gain Control", {"0"}},
- {"ADC Digital Volume (VOLAD)", {"195"}},
- {"ADC Soft Mute Control", {"0"}},
- //diff in
- {"ADC Input Type", {"Single-end"}},
- {"AIN MUX", {"AIN2"}},
- // common out
-
- {"DAC Soft Mute Control", {"0"}},
- //{"BICK Frequency", {"32fs"}},
- {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
- //diff out
-
- {"OUT2 MUX", {"DAC"}},
- {"Lineout Type", {"Single-end"}},
- //voice
-#ifndef USE_CAP_SUPPORT
-
- {"voice processing select", {"headset"}}, // handset speak headset bluetooth
-#endif
-};
-
-static struct audio_para_conf spk_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
-
- // common in
- {"Mic Gain Control", {"0"}},
- {"ADC Digital Volume (VOLAD)", {"195"}},
- {"ADC Soft Mute Control", {"0"}},
- //diff in
- {"ADC Input Type", {"Single-end"}},
- {"AIN MUX", {"AIN1"}},
- // common out
- {"DAC Soft Mute Control", {"0"}},
- //{"BICK Frequency", {"32fs"}},
- {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
- //diff out
- {"OUT1 MUX", {"DAC"}},
- {"Lineout Type", {"Differential"}},
- //voice
-#ifndef USE_CAP_SUPPORT
-
- {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
-#endif
-};
-
-#elif defined _USE_CODEC_NAU8810
-static struct audio_para_conf init_default_para[] = { //¿ª»ú³õʼ»¯µ÷ÓÃ
-
-};
+static struct audio_para_conf common_out_para_audio[] = { //对应公共部分
-static struct audio_para_conf common_out_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
//{"DAC Soft Mute Control", {"0"}},
+
+
+
};
-static struct audio_para_conf common_in_para_audio[] = { //¶ÔÓ¦¹«¹²²¿·Ö
+
+
+
+static struct audio_para_conf common_in_para_audio[] = { //对应公共部分
+
+
//{"Mic Gain Control", {"0"}},
-};
-
-static struct audio_para_conf hp_outpath_para_audio[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ
- {"Speaker Mute Switch", {"1"}},
- {"Mono Mute Switch", {"0"}},
- {"Mono Mixer PCM Playback Switch", {"1"}},
};
-static struct audio_para_conf spk_outpath_para_audio[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀ
- {"Mono Mute Switch", {"1"}},
- {"Speaker Volume", {"57"}},
- {"Speaker Mute Switch", {"0"}},
- {"Speaker Mixer PCM Playback Switch", {"1"}},
-};
+static struct audio_para_conf hp_outpath_para_audio[] = { //对应于Hp输出通道
-static struct audio_para_conf main_mic_inpath_para_audio[] = { //¶ÔÓ¦ÓÚMic1lp_Mic1lmÊäÈëͨµÀ
+ {"MIC PGA GAIN", {"10"}},
- //#0x2d b6 pga mute
- {"Input Boost Stage PGA Mute Switch", {"1"}},
- {"Capture Volume", {"255"}},
- {"PGA Volume", {"32"}},
- {"Input PGA MicN Switch", {"1"}},
- {"Input PGA MicP Switch", {"1"}},
+ {"ADC SCALE", {"1"}},
- //#0x2f b4~b6
- {"Input Boost Stage PMIC PGA Switch", {"0"}},
+ {"DMIC TYPE", {"dmic at high level"}},
-};
+ {"ADC RAMP RATE", {"4"}},
-static struct audio_para_conf aux_mic_inpath_para_audio[] = {//¶ÔÓ¦ÓÚMic1rpÊäÈëͨµÀ
+ {"ADC SDP MUTE", {"0"}},
- //#0x2d b6 pga mute
- {"Input Boost Stage PGA Mute Switch", {"1"}},
- {"Capture Volume", {"255"}},
- {"PGA Volume", {"32"}},
- {"Input PGA MicN Switch", {"1"}},
- {"Input PGA MicP Switch", {"1"}},
+ {"ADC INVERTED", {"0"}},
- //#0x2f b4~b6
- {"Input Boost Stage PMIC PGA Switch", {"0"}},
+ {"ADC SYNC", {"0"}},
+
+ {"ADC RAM CLR", {"0"}},
+
+ {"ADC VOLUME", {"191"}},
+
+ {"ALC ENABLE", {"0"}},
+
+ {"ALC AUTOMUTE TYPE", {"automute disabled"}},
+
+ {"ALC WIN SIZE", {"0"}},
+
+ {"ALC MAX LEVEL", {"0"}},
+
+ {"ALC MIN LEVEL", {"0"}},
+
+ {"ALC AUTOMUTE WINSIZE", {"0"}},
+
+ {"ALC AUTOMUTE GATE THRESHOLD", {"0"}},
+
+ {"ALC AUTOMUTE VOLUME", {"0"}},
+
+ {"ADC FS MODE", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+ {"DAC INVERT", {"0"}},
+
+ {"DAC RAM CLR", {"0"}},
+
+ {"DAC DSM MUTE", {"mute to 8"}},
+
+ {"DAC OFFSET", {"0"}},
+
+ {"DAC VOLUME", {"191"}},
+
+ {"DRC ENABLE", {"0"}},
+
+ {"DRC WIN SIZE", {"0"}},
+
+ {"DRC MAX LEVEL", {"0"}},
+
+ {"DRC MIN LEVEL", {"0"}},
+
+ {"DAC RAMP RATE", {"4"}},
+
+ {"AEC MODE", {"adc left, adc right"}},
+
+ {"ADC DATA TO DAC TEST MODE", {"disable"}},
+
+ {"MCLK INVERT", {"0"}},
+
+ {"BCLK INVERT", {"0"}},
+
+ {"MCLK SOURCE", {"from mclk pin"}},
+
+ {"DMIC MUX", {"DMIC DISABLE"}},
+
+ {"SDP OUT MUX", {"FROM ADC OUT"}},
+
+ {"DAC SDP SRC MUX", {"SELECT SDP LEFT DATA"}},
+
+
+
+
+
+
+
};
-static struct audio_para_conf handset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
- //in
- //#0x2d b6 pga mute
- {"Input Boost Stage PGA Mute Switch", {"1"}},
- {"Capture Volume", {"255"}},
- {"PGA Volume", {"32"}},
- {"Input PGA MicN Switch", {"1"}},
- {"Input PGA MicP Switch", {"1"}},
- //#0x2f b4~b6
- {"Input Boost Stage PMIC PGA Switch", {"0"}},
- //out
- {"Playback Volume", {"255"}},
- {"Speaker Mute Switch", {"1"}},
- {"Mono Mute Switch", {"0"}},
- {"Mono Mixer PCM Playback Switch", {"1"}},
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
+ {"MIC PGA GAIN", {"10"}},
+
+ {"ADC SCALE", {"1"}},
+
+ {"DMIC TYPE", {"dmic at high level"}},
+
+ {"ADC RAMP RATE", {"4"}},
+
+ {"ADC SDP MUTE", {"0"}},
+
+ {"ADC INVERTED", {"0"}},
+
+ {"ADC SYNC", {"0"}},
+
+ {"ADC RAM CLR", {"0"}},
+
+ {"ADC VOLUME", {"191"}},
+
+ {"ALC ENABLE", {"0"}},
+
+ {"ALC AUTOMUTE TYPE", {"automute disabled"}},
+
+ {"ALC WIN SIZE", {"0"}},
+
+ {"ALC MAX LEVEL", {"0"}},
+
+ {"ALC MIN LEVEL", {"0"}},
+
+ {"ALC AUTOMUTE WINSIZE", {"0"}},
+
+ {"ALC AUTOMUTE GATE THRESHOLD", {"0"}},
+
+ {"ALC AUTOMUTE VOLUME", {"0"}},
+
+ {"ADC FS MODE", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+ {"DAC INVERT", {"0"}},
+
+ {"DAC RAM CLR", {"0"}},
+
+ {"DAC DSM MUTE", {"mute to 8"}},
+
+ {"DAC OFFSET", {"0"}},
+
+ {"DAC VOLUME", {"191"}},
+
+ {"DRC ENABLE", {"0"}},
+
+ {"DRC WIN SIZE", {"0"}},
+
+ {"DRC MAX LEVEL", {"0"}},
+
+ {"DRC MIN LEVEL", {"0"}},
+
+ {"DAC RAMP RATE", {"4"}},
+
+ {"AEC MODE", {"adc left, adc right"}},
+
+ {"ADC DATA TO DAC TEST MODE", {"disable"}},
+
+ {"MCLK INVERT", {"0"}},
+
+ {"BCLK INVERT", {"0"}},
+
+ {"MCLK SOURCE", {"from mclk pin"}},
+
+
+
+ {"DMIC MUX", {"DMIC DISABLE"}},
+
+ {"SDP OUT MUX", {"FROM ADC OUT"}},
+
+ {"DAC SDP SRC MUX", {"SELECT SDP LEFT DATA"}},
- //voice
-#ifndef USE_CAP_SUPPORT
- {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
-#endif
+
};
-static struct audio_para_conf headset_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚHpÊä³öͨµÀ Mic1rpÊäÈëͨµÀ
- //in
- //#0x2d b6 pga mute
- {"Input Boost Stage PGA Mute Switch", {"1"}},
- {"Capture Volume", {"255"}},
- {"PGA Volume", {"32"}},
- {"Input PGA MicN Switch", {"1"}},
- {"Input PGA MicP Switch", {"1"}},
- //#0x2f b4~b6
- {"Input Boost Stage PMIC PGA Switch", {"0"}},
- //out
- {"Playback Volume", {"255"}},
- {"Speaker Mute Switch", {"1"}},
- {"Mono Mute Switch", {"0"}},
- {"Mono Mixer PCM Playback Switch", {"1"}},
+static struct audio_para_conf main_mic_inpath_para_audio[] = { //对应于Mic1lp_Mic1lm输入通道
- //voice
-#ifndef USE_CAP_SUPPORT
- {"voice processing select", {"headset"}}, // handset speak headset bluetooth
-#endif
+
+ {"MIC PGA GAIN", {"10"}},
+
+ {"ADC SCALE", {"1"}},
+
+ {"DMIC TYPE", {"dmic at high level"}},
+
+ {"ADC RAMP RATE", {"4"}},
+
+ {"ADC SDP MUTE", {"0"}},
+
+ {"ADC INVERTED", {"0"}},
+
+ {"ADC SYNC", {"0"}},
+
+ {"ADC RAM CLR", {"0"}},
+
+ {"ADC VOLUME", {"191"}},
+
+ {"ALC ENABLE", {"0"}},
+
+ {"ALC AUTOMUTE TYPE", {"automute disabled"}},
+
+ {"ALC WIN SIZE", {"0"}},
+
+ {"ALC MAX LEVEL", {"0"}},
+
+ {"ALC MIN LEVEL", {"0"}},
+
+ {"ALC AUTOMUTE WINSIZE", {"0"}},
+
+ {"ALC AUTOMUTE GATE THRESHOLD", {"0"}},
+
+ {"ALC AUTOMUTE VOLUME", {"0"}},
+
+ {"ADC FS MODE", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+ {"DAC INVERT", {"0"}},
+
+ {"DAC RAM CLR", {"0"}},
+
+ {"DAC DSM MUTE", {"mute to 8"}},
+
+ {"DAC OFFSET", {"0"}},
+
+ {"DAC VOLUME", {"191"}},
+
+ {"DRC ENABLE", {"0"}},
+
+ {"DRC WIN SIZE", {"0"}},
+
+ {"DRC MAX LEVEL", {"0"}},
+
+ {"DRC MIN LEVEL", {"0"}},
+
+ {"DAC RAMP RATE", {"4"}},
+
+ {"AEC MODE", {"adc left, adc right"}},
+
+ {"ADC DATA TO DAC TEST MODE", {"disable"}},
+
+ {"MCLK INVERT", {"0"}},
+
+ {"BCLK INVERT", {"0"}},
+
+ {"MCLK SOURCE", {"from mclk pin"}},
+
+
+
+ {"DMIC MUX", {"DMIC DISABLE"}},
+
+ {"SDP OUT MUX", {"FROM ADC OUT"}},
+
+ {"DAC SDP SRC MUX", {"SELECT SDP LEFT DATA"}},
+
+
+
};
-static struct audio_para_conf spk_inoutpath_para_voice[] = { //¶ÔÓ¦ÓÚSpkÊä³öͨµÀMic1lp_Mic1lmÊäÈëͨµÀ
-
- //in
- //#0x2d b6 pga mute
- {"Input Boost Stage PGA Mute Switch", {"1"}},
- {"Capture Volume", {"255"}},
- {"PGA Volume", {"32"}},
- {"Input PGA MicN Switch", {"1"}},
- {"Input PGA MicP Switch", {"1"}},
-
- //#0x2f b4~b6
- {"Input Boost Stage PMIC PGA Switch", {"0"}},
-
- //out
- {"Playback Volume", {"255"}},
- {"Mono Mute Switch", {"1"}},
- {"Speaker Volume", {"57"}},
- {"Speaker Mute Switch", {"0"}},
- {"Speaker Mixer PCM Playback Switch", {"1"}},
- //voice
-#ifndef USE_CAP_SUPPORT
+static struct audio_para_conf aux_mic_inpath_para_audio[] = {//对应于Mic1rp输入通道
- {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
-#endif
+
+
+ {"MIC PGA GAIN", {"10"}},
+
+ {"ADC SCALE", {"1"}},
+
+ {"DMIC TYPE", {"dmic at high level"}},
+
+ {"ADC RAMP RATE", {"4"}},
+
+ {"ADC SDP MUTE", {"0"}},
+
+ {"ADC INVERTED", {"0"}},
+
+ {"ADC SYNC", {"0"}},
+
+ {"ADC RAM CLR", {"0"}},
+
+ {"ADC VOLUME", {"191"}},
+
+ {"ALC ENABLE", {"0"}},
+
+ {"ALC AUTOMUTE TYPE", {"automute disabled"}},
+
+ {"ALC WIN SIZE", {"0"}},
+
+ {"ALC MAX LEVEL", {"0"}},
+
+ {"ALC MIN LEVEL", {"0"}},
+
+ {"ALC AUTOMUTE WINSIZE", {"0"}},
+
+ {"ALC AUTOMUTE GATE THRESHOLD", {"0"}},
+
+ {"ALC AUTOMUTE VOLUME", {"0"}},
+
+ {"ADC FS MODE", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+ {"DAC INVERT", {"0"}},
+
+ {"DAC RAM CLR", {"0"}},
+
+ {"DAC DSM MUTE", {"mute to 8"}},
+
+ {"DAC OFFSET", {"0"}},
+
+ {"DAC VOLUME", {"191"}},
+
+ {"DRC ENABLE", {"0"}},
+
+ {"DRC WIN SIZE", {"0"}},
+
+ {"DRC MAX LEVEL", {"0"}},
+
+ {"DRC MIN LEVEL", {"0"}},
+
+ {"DAC RAMP RATE", {"4"}},
+
+ {"AEC MODE", {"adc left, adc right"}},
+
+ {"ADC DATA TO DAC TEST MODE", {"disable"}},
+
+ {"MCLK INVERT", {"0"}},
+
+ {"BCLK INVERT", {"0"}},
+
+ {"MCLK SOURCE", {"from mclk pin"}},
+
+
+
+ {"DMIC MUX", {"DMIC DISABLE"}},
+
+ {"SDP OUT MUX", {"FROM ADC OUT"}},
+
+ {"DAC SDP SRC MUX", {"SELECT SDP LEFT DATA"}},
+
+
+
+
+
+
+
};
+
+static struct audio_para_conf handset_inoutpath_para_voice[] = { //对应于Hp输出通道Mic1lp_Mic1lm输入通道
+
+ {"MIC PGA GAIN", {"10"}},
+
+ {"ADC SCALE", {"1"}},
+
+ {"DMIC TYPE", {"dmic at high level"}},
+
+ {"ADC RAMP RATE", {"4"}},
+
+ {"ADC SDP MUTE", {"0"}},
+
+ {"ADC INVERTED", {"0"}},
+
+ {"ADC SYNC", {"0"}},
+
+ {"ADC RAM CLR", {"0"}},
+
+ {"ADC VOLUME", {"191"}},
+
+ {"ALC ENABLE", {"0"}},
+
+ {"ALC AUTOMUTE TYPE", {"automute disabled"}},
+
+ {"ALC WIN SIZE", {"0"}},
+
+ {"ALC MAX LEVEL", {"0"}},
+
+ {"ALC MIN LEVEL", {"0"}},
+
+ {"ALC AUTOMUTE WINSIZE", {"0"}},
+
+ {"ALC AUTOMUTE GATE THRESHOLD", {"0"}},
+
+ {"ALC AUTOMUTE VOLUME", {"0"}},
+
+ {"ADC FS MODE", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+ {"DAC INVERT", {"0"}},
+
+ {"DAC RAM CLR", {"0"}},
+
+ {"DAC DSM MUTE", {"mute to 8"}},
+
+ {"DAC OFFSET", {"0"}},
+
+ {"DAC VOLUME", {"191"}},
+
+ {"DRC ENABLE", {"0"}},
+
+ {"DRC WIN SIZE", {"0"}},
+
+ {"DRC MAX LEVEL", {"0"}},
+
+ {"DRC MIN LEVEL", {"0"}},
+
+ {"DAC RAMP RATE", {"4"}},
+
+ {"AEC MODE", {"adc left, adc right"}},
+
+ {"ADC DATA TO DAC TEST MODE", {"disable"}},
+
+ {"MCLK INVERT", {"0"}},
+
+ {"BCLK INVERT", {"0"}},
+
+ {"MCLK SOURCE", {"from mclk pin"}},
+
+
+
+ {"DMIC MUX", {"DMIC DISABLE"}},
+
+ {"SDP OUT MUX", {"FROM ADC OUT"}},
+
+ {"DAC SDP SRC MUX", {"SELECT SDP LEFT DATA"}},
+
+
+
+
+
+
+
+};
+
+
+
+static struct audio_para_conf headset_inoutpath_para_voice[] = { //对应于Hp输出通道 Mic1rp输入通道
+
+ {"MIC PGA GAIN", {"10"}},
+
+ {"ADC SCALE", {"1"}},
+
+ {"DMIC TYPE", {"dmic at high level"}},
+
+ {"ADC RAMP RATE", {"4"}},
+
+ {"ADC SDP MUTE", {"0"}},
+
+ {"ADC INVERTED", {"0"}},
+
+ {"ADC SYNC", {"0"}},
+
+ {"ADC RAM CLR", {"0"}},
+
+ {"ADC VOLUME", {"191"}},
+
+ {"ALC ENABLE", {"0"}},
+
+ {"ALC AUTOMUTE TYPE", {"automute disabled"}},
+
+ {"ALC WIN SIZE", {"0"}},
+
+ {"ALC MAX LEVEL", {"0"}},
+
+ {"ALC MIN LEVEL", {"0"}},
+
+ {"ALC AUTOMUTE WINSIZE", {"0"}},
+
+ {"ALC AUTOMUTE GATE THRESHOLD", {"0"}},
+
+ {"ALC AUTOMUTE VOLUME", {"0"}},
+
+ {"ADC FS MODE", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+ {"DAC INVERT", {"0"}},
+
+ {"DAC RAM CLR", {"0"}},
+
+ {"DAC DSM MUTE", {"mute to 8"}},
+
+ {"DAC OFFSET", {"0"}},
+
+ {"DAC VOLUME", {"191"}},
+
+ {"DRC ENABLE", {"0"}},
+
+ {"DRC WIN SIZE", {"0"}},
+
+ {"DRC MAX LEVEL", {"0"}},
+
+ {"DRC MIN LEVEL", {"0"}},
+
+ {"DAC RAMP RATE", {"4"}},
+
+ {"AEC MODE", {"adc left, adc right"}},
+
+ {"ADC DATA TO DAC TEST MODE", {"disable"}},
+
+ {"MCLK INVERT", {"0"}},
+
+ {"BCLK INVERT", {"0"}},
+
+ {"MCLK SOURCE", {"from mclk pin"}},
+
+
+
+ {"DMIC MUX", {"DMIC DISABLE"}},
+
+ {"SDP OUT MUX", {"FROM ADC OUT"}},
+
+ {"DAC SDP SRC MUX", {"SELECT SDP LEFT DATA"}},
+
+};
+
+
+
+static struct audio_para_conf spk_inoutpath_para_voice[] = { //对应于Spk输出通道Mic1lp_Mic1lm输入通道
+
+
+
+ {"MIC PGA GAIN", {"10"}},
+
+ {"ADC SCALE", {"1"}},
+
+ {"DMIC TYPE", {"dmic at high level"}},
+
+ {"ADC RAMP RATE", {"4"}},
+
+ {"ADC SDP MUTE", {"0"}},
+
+ {"ADC INVERTED", {"0"}},
+
+ {"ADC SYNC", {"0"}},
+
+ {"ADC RAM CLR", {"0"}},
+
+ {"ADC VOLUME", {"191"}},
+
+ {"ALC ENABLE", {"0"}},
+
+ {"ALC AUTOMUTE TYPE", {"automute disabled"}},
+
+ {"ALC WIN SIZE", {"0"}},
+
+ {"ALC MAX LEVEL", {"0"}},
+
+ {"ALC MIN LEVEL", {"0"}},
+
+ {"ALC AUTOMUTE WINSIZE", {"0"}},
+
+ {"ALC AUTOMUTE GATE THRESHOLD", {"0"}},
+
+ {"ALC AUTOMUTE VOLUME", {"0"}},
+
+ {"ADC FS MODE", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+ {"DAC INVERT", {"0"}},
+
+ {"DAC RAM CLR", {"0"}},
+
+ {"DAC DSM MUTE", {"mute to 8"}},
+
+ {"DAC OFFSET", {"0"}},
+
+ {"DAC VOLUME", {"191"}},
+
+ {"DRC ENABLE", {"0"}},
+
+ {"DRC WIN SIZE", {"0"}},
+
+ {"DRC MAX LEVEL", {"0"}},
+
+ {"DRC MIN LEVEL", {"0"}},
+
+ {"DAC RAMP RATE", {"4"}},
+
+ {"AEC MODE", {"adc left, adc right"}},
+
+ {"ADC DATA TO DAC TEST MODE", {"disable"}},
+
+ {"MCLK INVERT", {"0"}},
+
+ {"BCLK INVERT", {"0"}},
+
+ {"MCLK SOURCE", {"from mclk pin"}},
+
+
+
+ {"DMIC MUX", {"DMIC DISABLE"}},
+
+ {"SDP OUT MUX", {"FROM ADC OUT"}},
+
+ {"DAC SDP SRC MUX", {"SELECT SDP LEFT DATA"}},
+
+};
+
+
+
+
+
static struct audio_para_conf output_dac_vol = {
- "Playback Volume", {"255"}
+
+ //"Playback Volume", {"255"}
+
+ {"DAC VOLUME", {"191"}},
+
+
+
+
};
+
+
static struct audio_para_conf input_adc_vol = {
- "Capture Volume", {"255"}
+
+ //"Capture Volume", {"255"}
+
+ {"ADC VOLUME", {"191"}},
+
+
+
};
+
+
static struct audio_para_conf dac_mute = {
- "DAC MUTE", {"1"}
+
+ //"DAC MUTE", {"1"}
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+
+
+
+
};
+
static struct audio_para_conf adc_mute = {
- "Input Boost Stage PGA Mute Switch", {"0"}
+
+ //"Input Boost Stage PGA Mute Switch", {"0"}
+
+ {"ADC SDP MUTE", {"0"}},
+
+
+
+
+
};
+
+
static struct audio_para_conf spk_path_onoff[] = {
- {"Mono Mixer PCM Playback Switch", {"0"}},
+
+ //{"Mono Mixer PCM Playback Switch", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
+
+
+
+
};
+
+
static struct audio_para_conf rcv_path_onoff[] = {
- {"Mono Mixer PCM Playback Switch", {"0"}},
+
+ //{"Mono Mixer PCM Playback Switch", {"0"}},
+
+ {"ADC SDP MUTE", {"0"}},
+
+
+
};
+
+
static struct audio_para_conf earp_path_onoff[] = {
- {"Speaker Mixer PCM Playback Switch", {"0"}},
+
+ //{"Speaker Mixer PCM Playback Switch", {"0"}},
+
+ {"DAC SDP MUTE", {"0"}},
+
+ {"DAC DEM MUTE", {"0"}},
+
};
+
+
+
static int output_vol_conversion(int vol)
+
{
+
return 255;
+
+
}
+
static int input_vol_conversion(int vol)
+
{
+
return 255;
+
+
+}
+
+
+
+#elif defined _USE_CODEC_ES8374
+
+
+
+
+
+enum t_output_vol {
+
+ T_OUTPUT_VOL_MINUS_96DB = 0,
+
+ T_OUTPUT_VOL_MINUS_95DB = 2,
+
+ T_OUTPUT_VOL_MINUS_90DB = 12,
+
+ T_OUTPUT_VOL_MINUS_85DB = 22,
+
+ T_OUTPUT_VOL_MINUS_80DB = 32,
+
+ T_OUTPUT_VOL_MINUS_75DB = 42,
+
+ T_OUTPUT_VOL_MINUS_70DB = 52,
+
+ T_OUTPUT_VOL_MINUS_65DB = 62,
+
+ T_OUTPUT_VOL_MINUS_60DB = 72,
+
+ T_OUTPUT_VOL_MINUS_55DB = 82,
+
+ T_OUTPUT_VOL_MINUS_50DB = 92,
+
+ T_OUTPUT_VOL_MINUS_45DB = 102,
+
+ T_OUTPUT_VOL_MINUS_40DB = 112,
+
+ T_OUTPUT_VOL_MINUS_35DB = 122,
+
+ T_OUTPUT_VOL_MINUS_30DB = 132,
+
+ T_OUTPUT_VOL_MINUS_25DB = 142,
+
+ T_OUTPUT_VOL_MINUS_20DB = 152,
+
+ T_OUTPUT_VOL_MINUS_15DB = 162,
+
+ T_OUTPUT_VOL_MINUS_10DB = 172,
+
+ T_OUTPUT_VOL_MINUS_7DB = 178,
+
+ T_OUTPUT_VOL_MINUS_6DB = 180,
+
+ T_OUTPUT_VOL_MINUS_5DB = 182,
+
+ T_OUTPUT_VOL_MINUS_4DB = 184,
+
+ T_OUTPUT_VOL_MINUS_3DB = 186,
+
+ T_OUTPUT_VOL_MINUS_2DB = 188,
+
+ T_OUTPUT_VOL_MINUS_1DB = 190,
+
+ T_OUTPUT_VOL_0DB = 192
+
+};
+
+
+
+enum t_input_vol {
+
+ T_INPUT_VOL_MINUS_96DB = 0,
+
+ T_INPUT_VOL_MINUS_95DB = 2,
+
+ T_INPUT_VOL_MINUS_90DB = 12,
+
+ T_INPUT_VOL_MINUS_85DB = 22,
+
+ T_INPUT_VOL_MINUS_80DB = 32,
+
+ T_INPUT_VOL_MINUS_75DB = 42,
+
+ T_INPUT_VOL_MINUS_70DB = 52,
+
+ T_INPUT_VOL_MINUS_65DB = 62,
+
+ T_INPUT_VOL_MINUS_60DB = 72,
+
+ T_INPUT_VOL_MINUS_55DB = 82,
+
+ T_INPUT_VOL_MINUS_50DB = 92,
+
+ T_INPUT_VOL_MINUS_45DB = 102,
+
+ T_INPUT_VOL_MINUS_40DB = 112,
+
+ T_INPUT_VOL_MINUS_35DB = 122,
+
+ T_INPUT_VOL_MINUS_30DB = 132,
+
+ T_INPUT_VOL_MINUS_25DB = 142,
+
+ T_INPUT_VOL_MINUS_20DB = 152,
+
+ T_INPUT_VOL_MINUS_15DB = 162,
+
+ T_INPUT_VOL_MINUS_10DB = 172,
+
+ T_INPUT_VOL_MINUS_7DB = 178,
+
+ T_INPUT_VOL_MINUS_6DB = 180,
+
+ T_INPUT_VOL_MINUS_5DB = 182,
+
+ T_INPUT_VOL_MINUS_4DB = 184,
+
+ T_INPUT_VOL_MINUS_3DB = 186,
+
+ T_INPUT_VOL_MINUS_2DB = 188,
+
+ T_INPUT_VOL_MINUS_1DB = 190,
+
+ T_INPUT_VOL_0DB = 192
+
+};
+
+
+
+
+
+static struct audio_para_conf init_default_para[] = { //开机初始化调用
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ALC MUX", {"0"}},
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"6"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"ALC Capture Max PGA", {"15"}},
+
+ {"DAC MUTE", {"0"}},
+
+ {"DAC Playback Volume", {"120"}},
+
+ {"DAC SDP SRC MUX", {"0"}},
+
+ {"DAC SRC MUX", {"0"}}
+
+};
+
+
+
+//#ifdef _USE_7520V3_PHONE_TYPE_C31F
+
+#if ( defined _USE_7520V3_PHONE_TYPE_C31F || defined _USE_7520V3_PHONE_TYPE_WTWD )
+
+
+
+static struct audio_para_conf common_out_para_audio[] = { //对应公共部分
+
+ {"DAC MUTE", {"0"}},
+
+ //{"DAC Playback Volume", {"120"}},
+
+ {"DAC SDP SRC MUX", {"0"}},
+
+ {"DAC SRC MUX", {"0"}}
+
+};
+
+
+
+static struct audio_para_conf common_in_para_audio[] = { //对应公共部分
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+#if 0
+
+ {"ALC MUX", {"1"}},
+
+ {"ALC Capture Target Volume", {"5"}},
+
+ {"ALC Capture Max PGA", {"11"}},
+
+ {"ALC Capture Min PGA", {"2"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"0"}},
+
+ {"ALC Capture Attack Time", {"0"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"6"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+};
+
+
+
+#ifdef _USE_7520V3_PHONE_TYPE_WTWD
+
+static struct audio_para_conf hp_outpath_para_audio[] = { //对应于Hp输出通道
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}},
+
+ {"SPEAKER MIXER GAIN", {"41"}}, //1d
+
+ {"SPEAKER OUTPUT Volume", {"0"}}, //1e
+
+ {"DAC Playback Volume", {"192"}}, //38
+
+};
+
+#else
+
+static struct audio_para_conf hp_outpath_para_audio[] = { //对应于Hp输出通道
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"4"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+ {"audio path select",{"handset"}},
+
+};
+
+
+
+#endif
+
+/*
+
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
+
+ {"SPEAKER MIXER GAIN", {"4"}},
+
+ {"SPEAKER OUTPUT Volume", {"4"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}}
+
+};
+
+*/
+
+
+
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"11"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+ {"audio path select",{"speak"}},
+
+};
+
+
+
+static struct audio_para_conf main_mic_inpath_para_audio[] = { //对应于Lin1-Rin1输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+};
+
+
+
+static struct audio_para_conf aux_mic_inpath_para_audio[] = {//对应于Lin2-Rin2输入通道
+
+ {"DIFFERENTIAL MUX", {"2"}},
+
+};
+
+
+
+#ifdef _USE_7520V3_PHONE_TYPE_WTWD
+
+
+
+static struct audio_para_conf handset_inoutpath_para_voice[] = { //对应于Hp输出通道Mic1lp_Mic1lm输入通道
+
+#ifndef USE_CAP_SUPPORT
+
+
+
+ //{"voice processing path select", {"headset"}}, // handset speak headset bluetooth
+
+ {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
+
+#endif
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"6"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}},
+
+ {"SPEAKER MIXER GAIN", {"32"}}, //old 41
+
+ {"SPEAKER OUTPUT Volume", {"0"}}, //1
+
+ {"DAC Playback Volume", {"192"}}, //38
+
+};
+
+
+
+#else
+
+static struct audio_para_conf handset_inoutpath_para_voice[] = { //对应于Hp输出通道Mic1lp_Mic1lm输入通道
+
+#ifndef USE_CAP_SUPPORT
+
+
+
+ {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
+
+#endif
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+#if 0
+
+ {"ALC Capture Target Volume", {"7"}},
+
+ {"ALC Capture Max PGA", {"13"}},
+
+ {"ALC Capture Min PGA", {"8"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"1"}},
+
+ {"ALC Capture Attack Time", {"2"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"6"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"11"}},
+
+ {"DAC Playback Volume", {"192"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+};
+
+#endif
+
+static struct audio_para_conf headset_inoutpath_para_voice[] = { //对应于Hp输出通道 Mic1rp输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+#if 0
+
+ {"ALC Capture Target Volume", {"7"}},
+
+ {"ALC Capture Max PGA", {"13"}},
+
+ {"ALC Capture Min PGA", {"8"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"1"}},
+
+ {"ALC Capture Attack Time", {"2"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"7"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"4"}},
+
+ {"DAC Playback Volume", {"190"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+#ifndef USE_CAP_SUPPORT
+
+ {"voice processing select", {"headset"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+#ifdef _USE_7520V3_PHONE_TYPE_WTWD //class-d -->receiver
+
+static struct audio_para_conf spk_inoutpath_para_voice[] = { //对应于Spk输出通道Mic1lp_Mic1lm输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+#if 0
+
+ {"ALC Capture Target Volume", {"7"}},
+
+ {"ALC Capture Max PGA", {"13"}},
+
+ {"ALC Capture Min PGA", {"8"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"1"}},
+
+ {"ALC Capture Attack Time", {"2"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"6"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"4"}},
+
+ {"DAC Playback Volume", {"186"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+#ifndef USE_CAP_SUPPORT
+
+ {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+#else//momo out -> speaker
+
+static struct audio_para_conf spk_inoutpath_para_voice[] = { //对应于Spk输出通道Mic1lp_Mic1lm输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+#if 0
+
+ {"ALC Capture Target Volume", {"7"}},
+
+ {"ALC Capture Max PGA", {"13"}},
+
+ {"ALC Capture Min PGA", {"8"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"1"}},
+
+ {"ALC Capture Attack Time", {"2"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"6"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"0"}},
+
+ {"DAC Playback Volume", {"186"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+#ifndef USE_CAP_SUPPORT
+
+ {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+
+
+#endif
+
+
+
+
+
+
+
+#else
+
+static struct audio_para_conf common_out_para_audio[] = { //对应公共部分
+
+ {"DAC MUTE", {"0"}},
+
+ //{"DAC Playback Volume", {"120"}},
+
+ {"DAC SDP SRC MUX", {"0"}},
+
+ {"DAC SRC MUX", {"0"}}
+
+};
+
+
+
+static struct audio_para_conf common_in_para_audio[] = { //对应公共部分
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+#if 1
+
+ {"ALC MUX", {"1"}},
+
+ {"ALC Capture Target Volume", {"5"}},
+
+ {"ALC Capture Max PGA", {"11"}},
+
+ {"ALC Capture Min PGA", {"2"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"0"}},
+
+ {"ALC Capture Attack Time", {"0"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"3"}},
+
+ {"ADC Capture Volume", {"180"}},
+
+};
+
+
+
+static struct audio_para_conf hp_outpath_para_audio[] = { //对应于Hp输出通道
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"4"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}}
+
+};
+
+
+
+/*
+
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
+
+ {"SPEAKER MIXER GAIN", {"4"}},
+
+ {"SPEAKER OUTPUT Volume", {"4"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"1"}}
+
+};
+
+*/
+
+
+
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"3"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}}
+
+};
+
+
+
+static struct audio_para_conf main_mic_inpath_para_audio[] = { //对应于Lin1-Rin1输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+};
+
+
+
+static struct audio_para_conf aux_mic_inpath_para_audio[] = {//对应于Lin2-Rin2输入通道
+
+ {"DIFFERENTIAL MUX", {"2"}},
+
+};
+
+
+
+static struct audio_para_conf handset_inoutpath_para_voice[] = { //对应于Hp输出通道Mic1lp_Mic1lm输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+#if 0
+
+ {"ALC Capture Target Volume", {"7"}},
+
+ {"ALC Capture Max PGA", {"13"}},
+
+ {"ALC Capture Min PGA", {"8"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"1"}},
+
+ {"ALC Capture Attack Time", {"2"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"7"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"4"}},
+
+ {"DAC Playback Volume", {"190"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+#ifndef USE_CAP_SUPPORT
+
+ {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+
+
+static struct audio_para_conf headset_inoutpath_para_voice[] = { //对应于Hp输出通道 Mic1rp输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+#if 0
+
+ {"ALC Capture Target Volume", {"7"}},
+
+ {"ALC Capture Max PGA", {"13"}},
+
+ {"ALC Capture Min PGA", {"8"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"1"}},
+
+ {"ALC Capture Attack Time", {"2"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"7"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"4"}},
+
+ {"DAC Playback Volume", {"190"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+#ifndef USE_CAP_SUPPORT
+
+ {"voice processing select", {"headset"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+
+
+static struct audio_para_conf spk_inoutpath_para_voice[] = { //对应于Spk输出通道Mic1lp_Mic1lm输入通道
+
+ {"DIFFERENTIAL MUX", {"1"}},
+
+ {"DMIC MUX", {"0"}},
+
+ {"SDP OUT MUX", {"0"}},
+
+ {"ADC Soft Ramp", {"0"}},
+
+ {"ADC HPF COEFFICIENT", {"5"}},
+
+
+
+ {"ALC MUX", {"0"}},
+
+#if 0
+
+ {"ALC Capture Target Volume", {"7"}},
+
+ {"ALC Capture Max PGA", {"13"}},
+
+ {"ALC Capture Min PGA", {"8"}},
+
+ {"ALC Capture Hold Time", {"0"}},
+
+ {"ALC Capture Decay Time", {"1"}},
+
+ {"ALC Capture Attack Time", {"2"}},
+
+ {"ALC WIN SIZE", {"6"}},
+
+ {"ALC Capture NG Threshold", {"14"}},
+
+ {"ALC Capture NG Type", {"0"}},
+
+ {"ALC Capture NG Switch", {"0"}},
+
+#endif
+
+ {"D2SE MIC BOOST GAIN", {"1"}},
+
+ {"LIN PGA GAIN", {"7"}},
+
+ {"ADC Capture Volume", {"192"}},
+
+ {"SPEAKER MIXER DAC TO SPEAKER OUT Switch", {"0"}},
+
+ {"MONO OUT GAIN", {"4"}},
+
+ {"DAC Playback Volume", {"190"}},
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"1"}},
+
+#ifndef USE_CAP_SUPPORT
+
+ {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+
+
+#endif
+
+
+
+static struct audio_para_conf output_dac_vol = {"DAC Playback Volume", {"120"}};
+
+
+
+static struct audio_para_conf input_adc_vol = {"ADC Capture Volume", {"192"}};
+
+
+
+static struct audio_para_conf dac_mute = {"DAC MUTE", {"1"}};
+
+static struct audio_para_conf adc_mute = {"ADC MUTE", {"1"}};
+
+
+
+static struct audio_para_conf spk_path_onoff[] = {
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
+
+};
+
+
+
+static struct audio_para_conf rcv_path_onoff[] = {
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
+
+};
+
+
+
+static struct audio_para_conf earp_path_onoff[] = {
+
+ {"MONO MIXER DAC TO MONO OUT Switch", {"0"}},
+
+};
+
+
+
+
+
+static int output_vol_conversion(int vol)
+
+{
+
+ switch(vol){
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_0:
+
+ return T_OUTPUT_VOL_MINUS_96DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_1:
+
+ return T_OUTPUT_VOL_MINUS_45DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_2:
+
+ return T_OUTPUT_VOL_MINUS_40DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_3:
+
+ return T_OUTPUT_VOL_MINUS_35DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_4:
+
+ return T_OUTPUT_VOL_MINUS_30DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_5:
+
+ return T_OUTPUT_VOL_MINUS_25DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_6:
+
+ return T_OUTPUT_VOL_MINUS_20DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_7:
+
+ return T_OUTPUT_VOL_MINUS_15DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_8:
+
+ return T_OUTPUT_VOL_MINUS_10DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_9:
+
+ return T_OUTPUT_VOL_MINUS_6DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_10:
+
+ return T_OUTPUT_VOL_MINUS_3DB;
+
+ case T_AUDIO_OUTPUT_VOL_LEVEL_11:
+
+ return T_OUTPUT_VOL_0DB;
+
+ default:
+
+ return T_OUTPUT_VOL_0DB;
+
+ }
+
}
+static int input_vol_conversion(int vol)
-#else //default
+{
+
+ switch(vol) {
+
+ case T_AUDIO_INPUT_VOL_LEVEL_0:
+
+ return T_INPUT_VOL_MINUS_96DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_1:
+
+ return T_INPUT_VOL_MINUS_30DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_2:
+
+ return T_INPUT_VOL_MINUS_25DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_3:
+
+ return T_INPUT_VOL_MINUS_20DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_4:
+
+ return T_INPUT_VOL_MINUS_15DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_5:
+
+ return T_INPUT_VOL_MINUS_10DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_6:
+
+ return T_INPUT_VOL_MINUS_7DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_7:
+
+ return T_INPUT_VOL_MINUS_4DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_8:
+
+ return T_INPUT_VOL_MINUS_3DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_9:
+
+ return T_INPUT_VOL_MINUS_2DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_10:
+
+ return T_INPUT_VOL_MINUS_1DB;
+
+ case T_AUDIO_INPUT_VOL_LEVEL_11:
+
+ return T_INPUT_VOL_0DB;
+
+ default:
+
+ return T_INPUT_VOL_MINUS_30DB;
+
+ }
+
+}
+
+
+
+#elif defined _USE_CODEC_AK4940
+
+
+
+static struct audio_para_conf common_out_para_audio[] = { //对应公共部分
+
+ {"DAC Soft Mute Control", {"0"}},
+
+ //{"BICK Frequency", {"32fs"}},
+
+ {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
+
+
+
+};
+
+
+
+
+
+static struct audio_para_conf common_in_para_audio[] = { //对应公共部分
+
+
+
+ {"Mic Gain Control", {"0"}},
+
+ {"ADC Digital Volume (VOLAD)", {"195"}},
+
+ {"ADC Soft Mute Control", {"0"}},
+
+
+
+
+
+};
+
+
+
+static struct audio_para_conf hp_outpath_para_audio[] = { //对应于Hp输出通道
+
+ {"OUT2 MUX", {"DAC"}},
+
+ {"Lineout Type", {"Single-end"}},
+
+
+
+};
+
+
+
+static struct audio_para_conf spk_outpath_para_audio[] = { //对应于Spk输出通道
+
+ {"OUT1 MUX", {"DAC"}},
+
+ {"Lineout Type", {"Differential"}},
+
+
+
+};
+
+
+
+static struct audio_para_conf main_mic_inpath_para_audio[] = { //对应于Mic1lp_Mic1lm输入通道
+
+
+
+ {"ADC Input Type", {"Single-end"}},
+
+ {"AIN MUX", {"AIN1"}},
+
+
+
+};
+
+
+
+static struct audio_para_conf aux_mic_inpath_para_audio[] = {//对应于Mic1rp输入通道
+
+
+
+ {"ADC Input Type", {"Single-end"}},
+
+ {"AIN MUX", {"AIN2"}},
+
+};
+
+
+
+static struct audio_para_conf handset_inoutpath_para_voice[] = { //对应于Hp输出通道Mic1lp_Mic1lm输入通道
+
+ // common in
+
+
+
+ {"Mic Gain Control", {"0"}},
+
+ {"ADC Digital Volume (VOLAD)", {"195"}},
+
+ {"ADC Soft Mute Control", {"0"}},
+
+ //diff in
+
+ {"ADC Input Type", {"Single-end"}},
+
+ {"AIN MUX", {"AIN1"}},
+
+
+
+ // common out
+
+
+
+ {"DAC Soft Mute Control", {"0"}},
+
+ //{"BICK Frequency", {"32fs"}},
+
+ {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
+
+ //diff out
+
+
+
+ //voice
+
+#ifndef USE_CAP_SUPPORT
+
+
+
+ {"voice processing path select", {"handset"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+
+
+static struct audio_para_conf headset_inoutpath_para_voice[] = { //对应于Hp输出通道 Mic1rp输入通道
+
+ // common in
+
+
+
+ {"Mic Gain Control", {"0"}},
+
+ {"ADC Digital Volume (VOLAD)", {"195"}},
+
+ {"ADC Soft Mute Control", {"0"}},
+
+ //diff in
+
+ {"ADC Input Type", {"Single-end"}},
+
+ {"AIN MUX", {"AIN2"}},
+
+ // common out
+
+
+
+ {"DAC Soft Mute Control", {"0"}},
+
+ //{"BICK Frequency", {"32fs"}},
+
+ {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
+
+ //diff out
+
+
+
+ {"OUT2 MUX", {"DAC"}},
+
+ {"Lineout Type", {"Single-end"}},
+
+ //voice
+
+#ifndef USE_CAP_SUPPORT
+
+
+
+ {"voice processing select", {"headset"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+
+
+static struct audio_para_conf spk_inoutpath_para_voice[] = { //对应于Spk输出通道Mic1lp_Mic1lm输入通道
+
+
+
+ // common in
+
+ {"Mic Gain Control", {"0"}},
+
+ {"ADC Digital Volume (VOLAD)", {"195"}},
+
+ {"ADC Soft Mute Control", {"0"}},
+
+ //diff in
+
+ {"ADC Input Type", {"Single-end"}},
+
+ {"AIN MUX", {"AIN1"}},
+
+ // common out
+
+ {"DAC Soft Mute Control", {"0"}},
+
+ //{"BICK Frequency", {"32fs"}},
+
+ {"BICK Frequency", {"2"}},//0 64fs,1 48fs,2 32fs
+
+ //diff out
+
+ {"OUT1 MUX", {"DAC"}},
+
+ {"Lineout Type", {"Differential"}},
+
+ //voice
+
+#ifndef USE_CAP_SUPPORT
+
+
+
+ {"voice processing path select", {"speak"}}, // handset speak headset bluetooth
+
+#endif
+
+};
+
+#else
+
+
static struct audio_para_conf init_default_para[] = {
+
};
+
+
static struct audio_para_conf common_out_para_audio[] = {
+
+
};
+
+
+
+
static struct audio_para_conf common_in_para_audio[] = {
+
};
+
+
static struct audio_para_conf hp_outpath_para_audio[] = {
+
};
+
+
+
static struct audio_para_conf spk_outpath_para_audio[] = {
+
};
+
+
static struct audio_para_conf main_mic_inpath_para_audio[] = {
+
};
+
+
static struct audio_para_conf aux_mic_inpath_para_audio[] = {
+
};
+
+
static struct audio_para_conf handset_inoutpath_para_voice[] = {
+
+
};
+
+
static struct audio_para_conf headset_inoutpath_para_voice[] = {
+
};
+
+
static struct audio_para_conf spk_inoutpath_para_voice[] = {
+
};
+
+
static struct audio_para_conf output_dac_vol = {};
+
+
static struct audio_para_conf input_adc_vol = {};
+
+
static struct audio_para_conf dac_mute = {};
+
static struct audio_para_conf adc_mute = {};
+
+
static struct audio_para_conf spk_path_onoff[] = {
+
+
};
+
static struct audio_para_conf rcv_path_onoff[] = {
+
+
};
+
static struct audio_para_conf earp_path_onoff[] = {
+
+
};
+
static int output_vol_conversion(int vol)
+
{
+
+
return 24;
+
}
+
+
static int input_vol_conversion(int vol)
+
{
+
+
return 24;
+
+
}
+
+
+
#endif
+
+
static void mix_set_value_wrap(struct mixer *mixer, const char *control, char **values)
+
{
+
struct mixer_ctl *ctl;
+
enum mixer_ctl_type type;
+
unsigned int num_ctl_values;
+
unsigned int i;
+
+
if (isdigit(control[0]))
+
ctl = mixer_get_ctl(mixer, atoi(control));
+
else
+
ctl = mixer_get_ctl_by_name(mixer, control);
+
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control(%s)\n",control);
+
return;
+
}
+
+
type = mixer_ctl_get_type(ctl);
+
num_ctl_values = mixer_ctl_get_num_values(ctl);
+
+
if (isdigit(values[0][0])) {
+
+
for (i = 0; i < num_ctl_values; i++) {
+
if (mixer_ctl_set_value(ctl, i, atoi(values[i]))) {
+
fprintf(stderr, "Error: invalid value for index %d\n", i);
+
return;
+
}
+
}
+
+
} else {
+
if (type == MIXER_CTL_TYPE_ENUM) {
+
/*if (num_values != 1) {
+
fprintf(stderr, "Enclose strings in quotes and try again\n");
+
return;
+
}*/
+
if (mixer_ctl_set_enum_by_string(ctl, values[0]))
+
fprintf(stderr, "Error: invalid enum value\n");
+
} else {
+
fprintf(stderr, "Error: only enum types can be set with strings\n");
+
}
+
}
+
}
+
+
static void mix_get_value_wrap(struct mixer *mixer, const char *control, int *values)
+
{
+
struct mixer_ctl *ctl;
+
enum mixer_ctl_type type;
+
unsigned int num_ctl_values;
+
unsigned int i;
+
int val;
+
+
if (isdigit(control[0]))
+
ctl = mixer_get_ctl(mixer, atoi(control));
+
else
+
ctl = mixer_get_ctl_by_name(mixer, control);
+
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control(%s)\n",control);
+
return;
+
}
+
+
type = mixer_ctl_get_type(ctl);
+
num_ctl_values = mixer_ctl_get_num_values(ctl);
+
+
+
for (i = 0; i < num_ctl_values; i++) {
+
val = mixer_ctl_get_value(ctl, i);
+
if (val == -EINVAL) {
+
fprintf(stderr, "Error: invalid value for index %d\n", i);
+
return;
+
}
+
*(values+i) = val;
+
}
+
+
}
-#if (defined _USE_CODEC_TI3100)||(defined _USE_CODEC_AK4940)||(defined _USE_CODEC_NAU8810)
+
+
+
+#if (defined _USE_CODEC_TI3100)||(defined _USE_CODEC_AK4940)||(defined _USE_CODEC_ES8311)
+
/*
+
int mix_set_input_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char *name = input_adc_vol.control;
+
int num_values, i;
+
int vol = input_vol_conversion(volume);
+
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, vol);
+
}
+
+
return 0;
+
}
+
+
int mix_set_output_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char *name = output_dac_vol.control;
+
int num_values, i;
+
+
int vol = output_vol_conversion(volume);
+
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, vol);
+
}
+
+
return 0;
+
}
+
+
int mix_set_output_mute(struct mixer *mixer, bool enable)
+
{
+
struct mixer_ctl *ctl;
+
char *name = dac_mute.control;
+
int num_values, i;
+
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, enable);
+
}
+
+
return 0;
+
}
+
+
int mix_set_input_mute(struct mixer *mixer, bool enable)
+
{
+
struct mixer_ctl *ctl;
+
char *name = adc_mute.control;
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
int num_values, i;
+
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, 0, enable);
+
}
+
+
return 0;
+
}
+
+
int mix_set_outputpath_onoff(struct mixer *mixer, int path ,bool onoff)
+
{
+
struct mixer_ctl *ctl;
+
struct audio_para_conf *path_para;
+
int i, j, num_values, size;
+
switch(path) {
+
case T_OUTPUT_RECEIVER:
+
size = ARRAY_SIZE(rcv_path_onoff);
+
path_para = rcv_path_onoff;
+
break;
+
case T_OUTPUT_SPEAKER:
+
size = ARRAY_SIZE(spk_path_onoff);
+
path_para = spk_path_onoff;
+
break;
+
case T_OUTPUT_HEADSET:
+
size = ARRAY_SIZE(earp_path_onoff);
+
path_para = earp_path_onoff;
+
break;
+
default:
+
return -1;
+
}
+
+
for (i = 0; i < size; i++) {
+
ctl = mixer_get_ctl_by_name(mixer, path_para[i].control);
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (j = 0; j < num_values; j++) {
+
mixer_ctl_set_value(ctl, j, onoff);
+
}
+
+
// mix_set_value_wrap(mixer, spk_path_onoff[i].control, spk_path_onoff[i].values);
+
}
+
+
return 0;
+
}
+
*/
+
+
/*
+
+
int mix_set_in_call_tone(struct mixer *mixer, int tontype)
+
{
+
struct mixer_ctl *ctl;
+
char name[] = "voice tone sel";
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
mixer_ctl_set_value(ctl, 0, tontype);
+
+
return 0;
+
}
+
+
int mix_set_default_param(struct mixer *mixer)
+
{
+
int i;
+
for (i = 0; i < ARRAY_SIZE(init_default_para); i++) {
+
mix_set_value_wrap(mixer, init_default_para[i].control, init_default_para[i].values);
+
}
+
+
return 0;
+
}
+
+
*/
+
+
#define VOCIE_SND_CARD_NUM 0
+
+
int mix_set_input_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char *name = input_adc_vol.control;
+
int num_values, i;
+
int vol = input_vol_conversion(volume);
- if(name == NULL){
- printf("%s: name is null,return!\n",__func__);
- return 0;
+
+
+
+ ctl = mixer_get_ctl_by_name(mixer, name);
+
+ if (!ctl) {
+
+ fprintf(stderr, "Invalid mixer control\n");
+
+ return -1;
}
- ctl = mixer_get_ctl_by_name(mixer, name);
- if (!ctl) {
- fprintf(stderr, "Invalid mixer control\n");
- return -1;
- }
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, vol);
+
}
+
+
return 0;
+
}
+
+
int mix_set_output_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char *name = output_dac_vol.control;
+
int num_values, i;
+
+
int vol = output_vol_conversion(volume);
- if(name == NULL){
- printf("%s: name is null,return!\n",__func__);
- return 0;
- }
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, vol);
+
}
+
+
return 0;
+
}
+
+
int mix_set_output_mute(struct mixer *mixer, bool enable)
-{
- struct mixer_ctl *ctl;
- char *name = dac_mute.control;
- int num_values, i;
- if(name == NULL){
- printf("%s: name is null,return!\n",__func__);
- return 0;
- }
+{
+
+ struct mixer_ctl *ctl;
+
+ char *name = dac_mute.control;
+
+ int num_values, i;
+
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, enable);
+
}
+
+
return 0;
+
}
+
+
int mix_set_input_mute(struct mixer *mixer, bool enable)
-{
- struct mixer_ctl *ctl;
- char *name = adc_mute.control;
- int num_values, i;
- if(name == NULL){
- printf("%s: name is null,return!\n",__func__);
- return 0;
- }
+{
+
+ struct mixer_ctl *ctl;
+
+ char *name = adc_mute.control;
+
ctl = mixer_get_ctl_by_name(mixer, name);
+ int num_values, i;
+
+
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, 0, enable);
+
}
+
+
return 0;
+
}
+
+
int mix_set_outputpath_onoff(struct mixer *mixer, int path ,bool onoff)
+
{
+
struct mixer_ctl *ctl;
+
struct audio_para_conf *path_para;
+
int i, j, num_values, size;
+
switch(path) {
+
case T_OUTPUT_RECEIVER:
+
size = ARRAY_SIZE(rcv_path_onoff);
+
path_para = rcv_path_onoff;
+
break;
+
case T_OUTPUT_SPEAKER:
+
size = ARRAY_SIZE(spk_path_onoff);
+
path_para = spk_path_onoff;
+
break;
+
case T_OUTPUT_HEADSET:
+
size = ARRAY_SIZE(earp_path_onoff);
+
path_para = earp_path_onoff;
+
break;
+
default:
+
return -1;
+
}
- if(size == 0){
- printf("%s: array size is 0,return!\n",__func__);
- return 0;
- }
+
+
+
for (i = 0; i < size; i++) {
+
ctl = mixer_get_ctl_by_name(mixer, path_para[i].control);
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (j = 0; j < num_values; j++) {
+
mixer_ctl_set_value(ctl, j, onoff);
+
}
+
+
// mix_set_value_wrap(mixer, spk_path_onoff[i].control, spk_path_onoff[i].values);
+
}
+
+
return 0;
+
}
+
+
int mix_set_in_call_tone(struct mixer *mixer, int tontype)
+
{
+
struct mixer_ctl *ctl;
+
char name[] = "voice tone sel";
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
mixer_ctl_set_value(ctl, 0, tontype);
+
+
return 0;
+
}
+
+
int mix_set_default_param(struct mixer *mixer)
+
{
+
int i;
+
for (i = 0; i < ARRAY_SIZE(init_default_para); i++) {
+
mix_set_value_wrap(mixer, init_default_para[i].control, init_default_para[i].values);
+
}
+
+
return 0;
+
}
+
+
int mix_set_voice_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char name[] = "voice processing path Volume";
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
mixer_ctl_set_value(ctl, 0, volume);
+
+
return 0;
+
}
+
int mix_get_voice_vol(struct mixer *mixer, int *volume)
+
{
+
+
mix_get_value_wrap(mixer, "voice processing path Volume", volume);
+
+
return 0;
+
+
}
+
+
int mix_set_tx_voice_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char name[] = "voice processing tx path Volume";
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
mixer_ctl_set_value(ctl, 0, volume);
+
+
return 0;
+
}
+
int mix_get_tx_voice_vol(struct mixer *mixer, int *volume)
+
{
+
+
mix_get_value_wrap(mixer, "voice processing tx path Volume", volume);
+
+
return 0;
+
+
}
+
+
+
int mix_set_voice_mute(struct mixer *mixer, bool enable)
+
{
+
struct mixer_ctl *ctl;
+
char name[] = "voice uplink mute";
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
mixer_ctl_set_value(ctl, 0, enable);
+
+
return 0;
+
}
+
int mix_get_voice_mute(struct mixer *mixer, int *enable)
+
{
+
+
mix_get_value_wrap(mixer, "voice uplink mute", enable);
+
+
return 0;
+
+
}
+
+
//voice downlink mute
+
+
int mix_set_rx_voice_mute(struct mixer *mixer, bool enable)
+
{
+
struct mixer_ctl *ctl;
+
char name[] = "voice downlink mute";
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
mixer_ctl_set_value(ctl, 0, enable);
+
+
return 0;
+
}
+
int mix_get_rx_voice_mute(struct mixer *mixer, int *enable)
+
{
+
+
mix_get_value_wrap(mixer, "voice downlink mute", enable);
+
+
return 0;
+
+
}
@@ -1843,197 +4029,397 @@
+
+
+
+
+
+
+
int mix_set_output_path(struct mixer *mixer, int path)
+
{
+
int i;
+
for (i = 0; i < ARRAY_SIZE(common_out_para_audio); i++) {
+
mix_set_value_wrap(mixer, common_out_para_audio[i].control, common_out_para_audio[i].values);
+
}
+
+ printf("yanming mix_set_output_path:%d\n",path);
+
switch (path) {
+
case T_OUTPUT_RECEIVER:
+
for (i = 0; i < ARRAY_SIZE(hp_outpath_para_audio); i++) {
+
mix_set_value_wrap(mixer, hp_outpath_para_audio[i].control, hp_outpath_para_audio[i].values);
+
}
+
break;
+
case T_OUTPUT_SPEAKER:
+
for (i = 0; i < ARRAY_SIZE(spk_outpath_para_audio); i++) {
+
mix_set_value_wrap(mixer, spk_outpath_para_audio[i].control, spk_outpath_para_audio[i].values);
+
}
+
break;
+
default:
+
break;
+
}
+
+
return 0;
+
}
+
+
int mix_set_input_path(struct mixer *mixer, int path)
+
{
+
int i;
+
for (i = 0; i < ARRAY_SIZE(common_in_para_audio); i++) {
+
mix_set_value_wrap(mixer, common_in_para_audio[i].control, common_in_para_audio[i].values);
+
}
- #if (defined _USE_CODEC_TI3100)
+
+
+ #if (defined _USE_CODEC_TI3100)||(defined _USE_CODEC_ES8311)
+
switch (path) {
+
case T_INPUT_MICLP:
+
for (i = 0; i < ARRAY_SIZE(main_mic_inpath_para_audio); i++) {
+
mix_set_value_wrap(mixer, main_mic_inpath_para_audio[i].control, main_mic_inpath_para_audio[i].values);
+
}
+
break;
+
case T_INPUT_MICRP:
+
for (i = 0; i < ARRAY_SIZE(aux_mic_inpath_para_audio); i++) {
+
mix_set_value_wrap(mixer, aux_mic_inpath_para_audio[i].control, aux_mic_inpath_para_audio[i].values);
+
}
+
break;
+
default:
+
break;
+
}
+
#else
+
switch (path) {
- case T_INPUT_HANDSET:
- case T_INPUT_SPEAKER:
+
+ case CODEC_INPUT_MICPHONE:
+
+ case CODEC_INPUT_BLUETOOTH:
+
+ case CODEC_INPUT_HANDSFREE:
+
for (i = 0; i < ARRAY_SIZE(main_mic_inpath_para_audio); i++) {
+
mix_set_value_wrap(mixer, main_mic_inpath_para_audio[i].control, main_mic_inpath_para_audio[i].values);
+
}
+
break;
- case T_INPUT_HEADSET:
+
+ case CODEC_INPUT_HEADSET:
+
for (i = 0; i < ARRAY_SIZE(aux_mic_inpath_para_audio); i++) {
+
mix_set_value_wrap(mixer, aux_mic_inpath_para_audio[i].control, aux_mic_inpath_para_audio[i].values);
+
}
+
break;
+
default:
+
break;
+
}
+
#endif
+
+
return 0;
+
}
+
/*
+
int mix_set_input_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char *name = input_adc_vol.control;
+
int num_values, i;
+
int vol = input_vol_conversion(volume);
+
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, vol);
+
}
+
+
return 0;
+
}
+
+
int mix_set_output_vol(struct mixer *mixer, int volume)
+
{
+
struct mixer_ctl *ctl;
+
char *name = output_dac_vol.control;
+
int num_values, i;
+
+
int vol = output_vol_conversion(volume);
+
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, vol);
+
}
+
+
return 0;
+
}
+
+
int mix_set_output_mute(struct mixer *mixer, bool enable)
+
{
+
struct mixer_ctl *ctl;
+
char *name = dac_mute.control;
+
int num_values, i;
+
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, i, enable);
+
}
+
+
return 0;
+
}
+
+
int mix_set_input_mute(struct mixer *mixer, bool enable)
+
{
+
struct mixer_ctl *ctl;
+
char *name = adc_mute.control;
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
int num_values, i;
+
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (i = 0; i < num_values; i++) {
+
mixer_ctl_set_value(ctl, 0, enable);
+
}
+
+
return 0;
+
}
+
+
int mix_set_outputpath_onoff(struct mixer *mixer, int path ,bool onoff)
+
{
+
struct mixer_ctl *ctl;
+
struct audio_para_conf *path_para;
+
int i, j, num_values, size;
+
switch(path) {
+
case T_OUTPUT_RECEIVER:
+
size = ARRAY_SIZE(rcv_path_onoff);
+
path_para = rcv_path_onoff;
+
break;
+
case T_OUTPUT_SPEAKER:
+
size = ARRAY_SIZE(spk_path_onoff);
+
path_para = spk_path_onoff;
+
break;
+
case T_OUTPUT_HEADSET:
+
size = ARRAY_SIZE(earp_path_onoff);
+
path_para = earp_path_onoff;
+
break;
+
default:
+
return -1;
+
}
+
+
for (i = 0; i < size; i++) {
+
ctl = mixer_get_ctl_by_name(mixer, path_para[i].control);
+
num_values = mixer_ctl_get_num_values(ctl);
+
+
for (j = 0; j < num_values; j++) {
+
mixer_ctl_set_value(ctl, j, onoff);
+
}
+
+
// mix_set_value_wrap(mixer, spk_path_onoff[i].control, spk_path_onoff[i].values);
+
}
+
+
return 0;
+
}
+
*/
@@ -2041,248 +4427,505 @@
+
+
+
+
+
+
+
int mix_set_voice_path(struct mixer *mixer, int path)
+
{
+
int i;
+
/*
+
for (i = 0; i < ARRAY_SIZE(common_in_para_audio); i++) {
+
tinymix_set_value_test(mixer, common_in_para_audio[i].control, common_in_para_audio[i].values);
- }
-
- for(i = 0;i<ARRAY_SIZE(common_out_para_audio);i++)
- {
- tinymix_set_value_test(mixer,common_out_para_audio[i].control,common_out_para_audio[i].values);
- }
-*/
- switch (path) {
- case T_OUTPUT_RECEIVER:
- for (i = 0; i < ARRAY_SIZE(handset_inoutpath_para_voice); i++) {
- mix_set_value_wrap(mixer, handset_inoutpath_para_voice[i].control, handset_inoutpath_para_voice[i].values);
- }
- break;
- case T_OUTPUT_SPEAKER:
- for (i = 0; i < ARRAY_SIZE(spk_inoutpath_para_voice); i++) {
- mix_set_value_wrap(mixer, spk_inoutpath_para_voice[i].control, spk_inoutpath_para_voice[i].values);
- }
- break;
- case T_OUTPUT_HEADSET:
- for (i = 0; i < ARRAY_SIZE(headset_inoutpath_para_voice); i++) {
- mix_set_value_wrap(mixer, headset_inoutpath_para_voice[i].control, headset_inoutpath_para_voice[i].values);
- }
- default:
- break;
+
}
+
+
+ for(i = 0;i<ARRAY_SIZE(common_out_para_audio);i++)
+
+ {
+
+ tinymix_set_value_test(mixer,common_out_para_audio[i].control,common_out_para_audio[i].values);
+
+ }
+
+*/
+
+ switch (path) {
+
+ case T_OUTPUT_RECEIVER:
+
+ printf("yanming mix_set_voice_path receiver\n");
+
+
+
+ for (i = 0; i < ARRAY_SIZE(handset_inoutpath_para_voice); i++) {
+
+ mix_set_value_wrap(mixer, handset_inoutpath_para_voice[i].control, handset_inoutpath_para_voice[i].values);
+
+ }
+
+ break;
+
+ case T_OUTPUT_SPEAKER:
+
+ for (i = 0; i < ARRAY_SIZE(spk_inoutpath_para_voice); i++) {
+
+ mix_set_value_wrap(mixer, spk_inoutpath_para_voice[i].control, spk_inoutpath_para_voice[i].values);
+
+ }
+
+ break;
+
+ case T_OUTPUT_HEADSET:
+
+ printf("yanming mix_set_voice_path headset\n");
+
+ for (i = 0; i < ARRAY_SIZE(headset_inoutpath_para_voice); i++) {
+
+ mix_set_value_wrap(mixer, headset_inoutpath_para_voice[i].control, headset_inoutpath_para_voice[i].values);
+
+ }
+
+ default:
+
+ break;
+
+ }
+
+
+
return 0;
+
}
+
+
+
int mix_get_voice_path(struct mixer *mixer, int *path)
+
{
+
+
mix_get_value_wrap(mixer, "audio path select", path);
+
+
return 0;
+
+
}
+
/*
+
+
int mix_set_in_call_tone(struct mixer *mixer, int tontype)
+
{
+
struct mixer_ctl *ctl;
+
char name[] = "voice tone sel";
+
ctl = mixer_get_ctl_by_name(mixer, name);
+
if (!ctl) {
+
fprintf(stderr, "Invalid mixer control\n");
+
return -1;
+
}
+
+
mixer_ctl_set_value(ctl, 0, tontype);
+
+
return 0;
+
}
+
+
int mix_set_default_param(struct mixer *mixer)
+
{
+
int i;
+
for (i = 0; i < ARRAY_SIZE(init_default_para); i++) {
+
mix_set_value_wrap(mixer, init_default_para[i].control, init_default_para[i].values);
+
}
+
+
return 0;
+
}
+
+
*/
+
+
+
+
-//����voice��Ƶ�豸ģʽ dev_mode��handset,speaker,headset 0 ��ʾ�ɹ��� ������ʾ�д���
+
+//锟斤拷锟斤拷voice锟斤拷频锟借备模式 dev_mode锟斤拷handset,speaker,headset 0 锟斤拷示锟缴癸拷锟斤拷 锟斤拷锟斤拷锟斤拷示锟叫达拷锟斤拷
+
int set_voice_device_mode(int dev_mode)
+
{
+
+
struct mixer *voice_mixer = NULL;
+
printf("%s: start dev_mode=%d!\n",__func__, dev_mode);
+
+
if ((dev_mode < T_OUTPUT_HANDSET ) ||(dev_mode >= T_OUTPUT_MAX)){
+
printf("%s: dev_mode not support, dev_mode=%d!\n",__func__, dev_mode);
+
return -1;
+
}
+
+
//open mixer dev for control
+
voice_mixer = mixer_open(VOCIE_SND_CARD_NUM);
+
if (!voice_mixer) {
+
printf("voice_mixer open failed!\n");
+
return -1;
+
}
+
+
//config mixer dev
+
mix_set_voice_path(voice_mixer, dev_mode);
+
+
//close mixer
+
mixer_close(voice_mixer);
+
voice_mixer = NULL;
+
+
+
return 0;
+
+
+
}
+
+
//#ifdef _CPE_AUDIO_PRJ
+
#else
+
int mix_set_output_path(struct mixer *mixer, int path)
+
{
+
+
return 0;
+
}
+
+
int mix_set_input_path(struct mixer *mixer, int path)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_input_vol(struct mixer *mixer, int volume)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_output_vol(struct mixer *mixer, int volume)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_output_mute(struct mixer *mixer, bool enable)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_input_mute(struct mixer *mixer, bool enable)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_outputpath_onoff(struct mixer *mixer, int path ,bool onoff)
+
{
+
+
return 0;
+
}
+
+
+
int mix_set_voice_vol(struct mixer *mixer, int volume)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_voice_mute(struct mixer *mixer, bool enable)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_voice_path(struct mixer *mixer, int path)
+
{
+
int i;
+
+
+
return 0;
+
}
+
+
+
int mix_set_in_call_tone(struct mixer *mixer, int tontype)
+
{
+
+
+
return 0;
+
}
+
+
int mix_set_default_param(struct mixer *mixer)
+
{
+
+
return 0;
+
}
+
+
int mix_get_voice_vol(struct mixer *mixer, int *volume)
+
{
+
+
return 0;
+
}
+
+
int mix_set_tx_voice_vol(struct mixer *mixer, int volume)
+
{
+
return 0;
+
}
+
+
int mix_get_tx_voice_vol(struct mixer *mixer, int *volume)
+
{
+
+
return 0;
+
+
}
+
+
int mix_get_voice_mute(struct mixer *mixer, int *enable)
+
{
+
+
return 0;
+
+
}
+
+
//voice downlink mute
+
+
int mix_set_rx_voice_mute(struct mixer *mixer, bool enable)
+
{
+
return 0;
+
}
+
int mix_get_rx_voice_mute(struct mixer *mixer, int *enable)
+
{
+
+
return 0;
+
+
}
+
+
int mix_get_voice_path(struct mixer *mixer, int *path)
+
{
+
+
return 0;
+
+
}
+
+
int set_voice_device_mode(int dev_mode)
+
{
+
return 0;
+
}
+
+
#endif