lkml.org 
[lkml]   [2018]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v14 1/8] ASoC: sun4i-codec: Add MIC2 Pre-Amplifier, Mic2, Mic Playback Volume
    Date
    Add MIC2 Pre-Amplifier, Mic2 input and Mic Playback Volume for Allwinner A10
    and Allwinner A20.

    Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
    ---
    sound/soc/sunxi/sun4i-codec.c | 15 +++++++++++++++
    1 file changed, 15 insertions(+)

    diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
    index 9a3cb7704810..060a40b45ab0 100644
    --- a/sound/soc/sunxi/sun4i-codec.c
    +++ b/sound/soc/sunxi/sun4i-codec.c
    @@ -64,6 +64,7 @@
    #define SUN4I_CODEC_DAC_ACTL_DACAENR (31)
    #define SUN4I_CODEC_DAC_ACTL_DACAENL (30)
    #define SUN4I_CODEC_DAC_ACTL_MIXEN (29)
    +#define SUN4I_CODEC_DAC_ACTL_MICG (20)
    #define SUN4I_CODEC_DAC_ACTL_LDACLMIXS (15)
    #define SUN4I_CODEC_DAC_ACTL_RDACRMIXS (14)
    #define SUN4I_CODEC_DAC_ACTL_LDACRMIXS (13)
    @@ -673,11 +674,16 @@ static const struct snd_kcontrol_new sun4i_codec_pa_mute =
    SUN4I_CODEC_DAC_ACTL_PA_MUTE, 1, 0);

    static DECLARE_TLV_DB_SCALE(sun4i_codec_pa_volume_scale, -6300, 100, 1);
    +static DECLARE_TLV_DB_SCALE(sun4i_codec_micin_loopback_gain_scale, -450, 150,
    + 0);

    static const struct snd_kcontrol_new sun4i_codec_controls[] = {
    SOC_SINGLE_TLV("Power Amplifier Volume", SUN4I_CODEC_DAC_ACTL,
    SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0,
    sun4i_codec_pa_volume_scale),
    + SOC_SINGLE_TLV("Mic Playback Volume", SUN4I_CODEC_DAC_ACTL,
    + SUN4I_CODEC_DAC_ACTL_MICG, 7, 0,
    + sun4i_codec_micin_loopback_gain_scale),
    };

    static const struct snd_kcontrol_new sun4i_codec_left_mixer_controls[] = {
    @@ -741,6 +747,8 @@ static const struct snd_soc_dapm_widget sun4i_codec_codec_dapm_widgets[] = {
    /* Mic Pre-Amplifiers */
    SND_SOC_DAPM_PGA("MIC1 Pre-Amplifier", SUN4I_CODEC_ADC_ACTL,
    SUN4I_CODEC_ADC_ACTL_PREG1EN, 0, NULL, 0),
    + SND_SOC_DAPM_PGA("MIC2 Pre-Amplifier", SUN4I_CODEC_ADC_ACTL,
    + SUN4I_CODEC_ADC_ACTL_PREG2EN, 0, NULL, 0),

    /* Power Amplifier */
    SND_SOC_DAPM_MIXER("Power Amplifier", SUN4I_CODEC_ADC_ACTL,
    @@ -751,6 +759,7 @@ static const struct snd_soc_dapm_widget sun4i_codec_codec_dapm_widgets[] = {
    &sun4i_codec_pa_mute),

    SND_SOC_DAPM_INPUT("Mic1"),
    + SND_SOC_DAPM_INPUT("Mic2"),

    SND_SOC_DAPM_OUTPUT("HP Right"),
    SND_SOC_DAPM_OUTPUT("HP Left"),
    @@ -790,6 +799,12 @@ static const struct snd_soc_dapm_route sun4i_codec_codec_dapm_routes[] = {
    { "Right ADC", NULL, "MIC1 Pre-Amplifier" },
    { "MIC1 Pre-Amplifier", NULL, "Mic1"},
    { "Mic1", NULL, "VMIC" },
    +
    + /* Mic2 Routes */
    + { "Left ADC", NULL, "MIC2 Pre-Amplifier" },
    + { "Right ADC", NULL, "MIC2 Pre-Amplifier" },
    + { "MIC2 Pre-Amplifier", NULL, "Mic2"},
    + { "Mic2", NULL, "VMIC" },
    };

    static const struct snd_soc_component_driver sun4i_codec_codec = {
    \
     
     \ /
      Last update: 2018-05-03 09:44    [W:4.220 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site