调试部分
1.当接AP端的时候,R24 R23 R26 R27 要断开,I2S信号不能接两端
2.sc66当从设备时候:master 为0 ;为主设备的时候 为1;
3.数据格式和模式:飞利浦标准模式 16KHZ采样 16bit
4.播放
sdm660_64:/ # tinymix "SEC_MI2S_RX Audio Mixer MultiMedia1" 1
sdm660_64:/ #
sdm660_64:/ #
sdm660_64:/ #
sdm660_64:/ # tinymix "SEC_MI2S_RX Channels" "Two"
sdm660_64:/ # tinymix "RX1 MIX1 INP1" "RX1"
sdm660_64:/ # tinymix "RX2 MIX1 INP1" "RX2"
sdm660_64:/ # tinymix "RDAC2 MUX" "RX2"
sdm660_64:/ # tinymix "HPHL" "Switch"
sdm660_64:/ # tinymix "HPHR" "Switch"
sdm660_64:/ # tinyplay /data/1K.wav
Playing sample: 2 ch, 44100 hz, 16 bit
5.录音
sdm660_64:/ # tinymix "MultiMedia1 Mixer SEC_MI2S_TX" 1
sdm660_64:/ #
sdm660_64:/ # tinycap /data/test3.wav
Capturing sample: 2 ch, 44100 hz, 16 bit
^CCaptured 708608 frames
sdm660_64:/ # tinycap /data/test4.wav -r 16000 -b 16
代码修改
1.修改hardware/qcom/audio/configs/sdm660/mixer_paths.xml
--- a/hardware/qcom/audio/configs/sdm660/mixer_paths.xml
+++ b/hardware/qcom/audio/configs/sdm660/mixer_paths.xml
@@ -1221,7 +1221,8 @@
</path>
<path name="audio-record">
- <ctl name="MultiMedia1 Mixer INT3_MI2S_TX" value="1" />
+ <ctl name="MultiMedia1 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer SEC_MI2S_TX" value="1" />
</path>
<path name="audio-record usb-headset-mic">
@@ -1610,8 +1611,8 @@
<!-- These are actual sound device specific mixer settings -->
<path name="adc1">
<ctl name="ADC1 Volume" value="6" />
- <ctl name="DEC1 MUX" value="ADC1" />
- <ctl name="ADC1_INP1 Switch" value="1" />
+ <!-- <ctl name="DEC1 MUX" value="ADC1" />-->
+ <!--<ctl name="ADC1_INP1 Switch" value="1" /> -->
</path>
<path name="adc2">
@@ -1765,7 +1766,7 @@
<path name="handset-mic">
<path name="adc1" />
- <ctl name="IIR1 INP1 MUX" value="DEC1" />
+ <!--<ctl name="IIR1 INP1 MUX" value="DEC1" />-->
</path>
2.hardware/qcom/audio/hal/msm8916/platform.c
--- a/hardware/qcom/audio/hal/msm8916/platform.c
+++ b/hardware/qcom/audio/hal/msm8916/platform.c
@@ -6268,7 +6268,6 @@ static bool platform_check_codec_backend_cfg(struct audio_device* adev,
bit_width = backend_cfg->bit_width;
sample_rate = backend_cfg->sample_rate;
channels = backend_cfg->channels;
-
ALOGI("%s:becf: afe: Codec selected backend: %d current bit width: %d sample rate: %d channels: %d "
"usecase %d device (%s)", __func__, backend_idx, bit_width, sample_rate, channels,
usecase->id, platform_get_snd_device_name(snd_device));
@@ -6671,6 +6670,7 @@ bool platform_check_and_set_capture_codec_backend_cfg(struct audio_device* adev,
backend_cfg.channels = audio_channel_count_from_out_mask(
usecase->stream.inout->in_config.channel_mask);
} else if (usecase->type <