Skip to content

Porting - Audio

Audio Path Diagram

Audio output/input paths on the 8550 platform:

Audio output pathAudio input path

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.dtsi

Configure 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-3

3. 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