lkml.org 
[lkml]   [2021]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 9/9] ASoC: codecs: wcd938x: add audio routing
    Date
    This patch adds audio routing for both playback and capture.

    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    ---
    sound/soc/codecs/wcd938x.c | 94 ++++++++++++++++++++++++++++++++++++++
    1 file changed, 94 insertions(+)

    diff --git a/sound/soc/codecs/wcd938x.c b/sound/soc/codecs/wcd938x.c
    index 05e1b0fc4f5f..e0be916bad65 100644
    --- a/sound/soc/codecs/wcd938x.c
    +++ b/sound/soc/codecs/wcd938x.c
    @@ -3132,6 +3132,98 @@ static const struct snd_soc_dapm_widget wcd938x_dapm_widgets[] = {
    SND_SOC_DAPM_OUTPUT("AUX"),
    SND_SOC_DAPM_OUTPUT("HPHL"),
    SND_SOC_DAPM_OUTPUT("HPHR"),
    +
    +};
    +
    +static const struct snd_soc_dapm_route wcd938x_audio_map[] = {
    + {"ADC1_OUTPUT", NULL, "ADC1_MIXER"},
    + {"ADC1_MIXER", "Switch", "ADC1 REQ"},
    + {"ADC1 REQ", NULL, "ADC1"},
    + {"ADC1", NULL, "AMIC1"},
    +
    + {"ADC2_OUTPUT", NULL, "ADC2_MIXER"},
    + {"ADC2_MIXER", "Switch", "ADC2 REQ"},
    + {"ADC2 REQ", NULL, "ADC2"},
    + {"ADC2", NULL, "HDR12 MUX"},
    + {"HDR12 MUX", "NO_HDR12", "ADC2 MUX"},
    + {"HDR12 MUX", "HDR12", "AMIC1"},
    + {"ADC2 MUX", "INP3", "AMIC3"},
    + {"ADC2 MUX", "INP2", "AMIC2"},
    +
    + {"ADC3_OUTPUT", NULL, "ADC3_MIXER"},
    + {"ADC3_MIXER", "Switch", "ADC3 REQ"},
    + {"ADC3 REQ", NULL, "ADC3"},
    + {"ADC3", NULL, "HDR34 MUX"},
    + {"HDR34 MUX", "NO_HDR34", "ADC3 MUX"},
    + {"HDR34 MUX", "HDR34", "AMIC5"},
    + {"ADC3 MUX", "INP4", "AMIC4"},
    + {"ADC3 MUX", "INP6", "AMIC6"},
    +
    + {"ADC4_OUTPUT", NULL, "ADC4_MIXER"},
    + {"ADC4_MIXER", "Switch", "ADC4 REQ"},
    + {"ADC4 REQ", NULL, "ADC4"},
    + {"ADC4", NULL, "ADC4 MUX"},
    + {"ADC4 MUX", "INP5", "AMIC5"},
    + {"ADC4 MUX", "INP7", "AMIC7"},
    +
    + {"DMIC1_OUTPUT", NULL, "DMIC1_MIXER"},
    + {"DMIC1_MIXER", "Switch", "DMIC1"},
    +
    + {"DMIC2_OUTPUT", NULL, "DMIC2_MIXER"},
    + {"DMIC2_MIXER", "Switch", "DMIC2"},
    +
    + {"DMIC3_OUTPUT", NULL, "DMIC3_MIXER"},
    + {"DMIC3_MIXER", "Switch", "DMIC3"},
    +
    + {"DMIC4_OUTPUT", NULL, "DMIC4_MIXER"},
    + {"DMIC4_MIXER", "Switch", "DMIC4"},
    +
    + {"DMIC5_OUTPUT", NULL, "DMIC5_MIXER"},
    + {"DMIC5_MIXER", "Switch", "DMIC5"},
    +
    + {"DMIC6_OUTPUT", NULL, "DMIC6_MIXER"},
    + {"DMIC6_MIXER", "Switch", "DMIC6"},
    +
    + {"DMIC7_OUTPUT", NULL, "DMIC7_MIXER"},
    + {"DMIC7_MIXER", "Switch", "DMIC7"},
    +
    + {"DMIC8_OUTPUT", NULL, "DMIC8_MIXER"},
    + {"DMIC8_MIXER", "Switch", "DMIC8"},
    +
    + {"IN1_HPHL", NULL, "VDD_BUCK"},
    + {"IN1_HPHL", NULL, "CLS_H_PORT"},
    +
    + {"RX1", NULL, "IN1_HPHL"},
    + {"RX1", NULL, "RXCLK"},
    + {"RDAC1", NULL, "RX1"},
    + {"HPHL_RDAC", "Switch", "RDAC1"},
    + {"HPHL PGA", NULL, "HPHL_RDAC"},
    + {"HPHL", NULL, "HPHL PGA"},
    +
    + {"IN2_HPHR", NULL, "VDD_BUCK"},
    + {"IN2_HPHR", NULL, "CLS_H_PORT"},
    + {"RX2", NULL, "IN2_HPHR"},
    + {"RDAC2", NULL, "RX2"},
    + {"RX2", NULL, "RXCLK"},
    + {"HPHR_RDAC", "Switch", "RDAC2"},
    + {"HPHR PGA", NULL, "HPHR_RDAC"},
    + {"HPHR", NULL, "HPHR PGA"},
    +
    + {"IN3_AUX", NULL, "VDD_BUCK"},
    + {"IN3_AUX", NULL, "CLS_H_PORT"},
    + {"RX3", NULL, "IN3_AUX"},
    + {"RDAC4", NULL, "RX3"},
    + {"RX3", NULL, "RXCLK"},
    + {"AUX_RDAC", "Switch", "RDAC4"},
    + {"AUX PGA", NULL, "AUX_RDAC"},
    + {"AUX", NULL, "AUX PGA"},
    +
    + {"RDAC3_MUX", "RX3", "RX3"},
    + {"RDAC3_MUX", "RX1", "RX1"},
    + {"RDAC3", NULL, "RDAC3_MUX"},
    + {"EAR_RDAC", "Switch", "RDAC3"},
    + {"EAR PGA", NULL, "EAR_RDAC"},
    + {"EAR", NULL, "EAR PGA"},
    };

    static int wcd938x_get_micb_vout_ctl_val(u32 micb_mv)
    @@ -3299,6 +3391,8 @@ static const struct snd_soc_component_driver soc_codec_dev_wcd938x = {
    .num_controls = ARRAY_SIZE(wcd938x_snd_controls),
    .dapm_widgets = wcd938x_dapm_widgets,
    .num_dapm_widgets = ARRAY_SIZE(wcd938x_dapm_widgets),
    + .dapm_routes = wcd938x_audio_map,
    + .num_dapm_routes = ARRAY_SIZE(wcd938x_audio_map),
    };

    static void wcd938x_dt_parse_micbias_info(struct device *dev, struct wcd938x_priv *wcd)
    --
    2.21.0
    \
     
     \ /
      Last update: 2021-04-14 17:51    [W:4.534 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site