Porting - Audio
Audio Path Diagram
Audio output/input paths on the 8550 platform:


WCD9385 HPH Playback and AMIC Recording
1. Modifying the Device Tree
Corresponding device tree file:
src/vendor/qcom/proprietary/audio-devicetree/kalama-audio-rb5-gen2.dtsiConfigure Routing: Set the audio paths and BIAS voltages required for playback and recording.
&kalama_snd {
qcom,audio-routing =
"AMIC1", "Analog Mic1",
"AMIC1", "MIC BIAS1",
...
"IN1_HPHL", "HPHL_OUT",
"IN2_HPHR", "HPHR_OUT",
"IN3_AUX", "AUX_OUT",
...
"RX_TX DEC0_INP", "TX DEC0 MUX",
"RX_TX DEC1_INP", "TX DEC1 MUX",
"RX_TX DEC2_INP", "TX DEC2 MUX",
"RX_TX DEC3_INP", "TX DEC3 MUX",
...
"TX SWR_INPUT", "WCD_TX_OUTPUT",
...
};Configure Codec:
&kalama_snd {
asoc-codec = , , ;
asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", "wcd938x_codec";
};Trim Dailink:
&kalama_snd {
qcom,wsa-max-devs = ;
qcom,wcn-bt = ;
};Modify MIC plug detection level:
&kalama_snd {
qcom,msm-mbhc-hphl-swh = ;
};Disable DP association:
&kalama_snd {
qcom,ext-disp-audio-rx = ;
};2. Recording Test
Use agmcap for recording test:
bash
qtitinymix 'TX DEC0 MUX' 'SWR_MIC'
qtitinymix 'ADC2 ChMap' 'SWRM_TX2_CH2'
qtitinymix 'TX SMIC MUX0' 'SWR_MIC5'
qtitinymix 'TX_AIF1_CAP Mixer DEC0' 1
qtitinymix 'ADC2_MIXER Switch' 1
qtitinymix 'HDR12 MUX' 'NO_HDR12'
qtitinymix 'ADC2 MUX' 'INP2'
qtitinymix 'ADC2 Volume' 12
qtitinymix 'TX1 MODE' 'ADC_LP'
qtitinymix 'DEC0 MODE' 'ADC_DEFAULT'
qtitinymix 'TX_DEC0 Volume' 68
qtitinymix 'AMIC2_MIXER Switch' 1
agmcap /data/test.wav -D 100 -d 101 -c 1 -r 48000 -b 16 -i CODEC_DMA-LPAIF_RXTX-TX-33. Playback Test
Use agmplay for playback test:
bash
qtitinymix 'RX_MACRO RX0 MUX' 'HPH_L'
qtitinymix 'RX_MACRO RX1 MUX' 'HPH_R'
qtitinymix 'RX INT0_1 MIX1 INP0' 'RX0'
qtitinymix 'RX INT1_1 MIX1 INP0' 'RX1'
qtitinymix 'HPH_L Volume' 20
qtitinymix 'HPH_R Volume' 20
qtitinymix 'HPHL_RX_PGA' 'HPHL'
qtitinymix 'HPHR_RX_PGA' 'HPHR'
agmplay /data/test.wav -D 100 -d 100 -i CODEC_DMA-LPAIF_RXTX-RX-0