Il 31/10/22 13:22, Ajye Huang ha scritto:
> Having two DMICs, a front DMIC and a Rear DMIC,
> but only host audio input AUX port0 is used for these two Dmics.
> A "dmic-gpios" property is used for a mixer control to switch
> the dmic signal source between the Front and Rear Dmic.
>
> Refer to this one as an example,
> commit 3cfbf07c6d27
> ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
>
> Signed-off-by: Ajye Huang <[email protected]>
> ---
> .../mt8186/mt8186-mt6366-rt1019-rt5682s.c | 102 +++++++++++++++++-
> 1 file changed, 101 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> index 2414c5b77233..75351734464c 100644
> --- a/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> +++ b/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c
> @@ -7,6 +7,8 @@
> // Author: Jiaxin Yu <[email protected]>
> //
>
> +#include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
> #include <linux/input.h>
> #include <linux/module.h>
> #include <linux/of_device.h>
> @@ -39,6 +41,8 @@
>
> struct mt8186_mt6366_rt1019_rt5682s_priv {
> struct snd_soc_jack headset_jack, hdmi_jack;
> + struct gpio_desc *dmic_sel;
> + int dmic_switch;
> };
>
> /* Headset jack detection DAPM pins */
> @@ -68,6 +72,94 @@ static struct snd_soc_codec_conf mt8186_mt6366_rt1019_rt5682s_codec_conf[] = {
> },
> };
>
> +static int dmic_get(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + ucontrol->value.integer.value[0] = priv->dmic_switch;
> + return 0;
> +}
> +
> +static int dmic_set(struct snd_kcontrol *kcontrol,
> + struct snd_ctl_elem_value *ucontrol)
> +{
> + struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
> + struct mtk_soc_card_data *soc_card_data =
> + snd_soc_card_get_drvdata(dapm->card);
> + struct mt8186_mt6366_rt1019_rt5682s_priv *priv = soc_card_data->mach_priv;
> +
> + priv->dmic_switch = ucontrol->value.integer.value[0];
> + if (priv->dmic_sel) {
> + gpiod_set_value(priv->dmic_sel, priv->dmic_switch);
> + dev_info(dapm->card->dev, "dmic_set_value %d\n",
> + priv->dmic_switch);
> + }
> + return 0;
> +}
> +
> +static const char * const dmic_mux_text[] = {
> + "FrontMic",
> + "RearMic",
Why are the two words joined?
s/FrontMic/Front Mic/g
s/RearMic/Rear Mic/g
Like that, we keep it consistent with the naming that was given in the commit
that you mentioned in the commit description.
Regards,
Angelo
Hi AngeloGioacchino,
On Wed, Nov 2, 2022 at 6:44 PM AngeloGioacchino Del Regno
<[email protected]> wrote:
>
> > A "dmic-gpios" property is used for a mixer control to switch
> > the dmic signal source between the Front and Rear Dmic.
> >
> > Refer to this one as an example,
> > commit 3cfbf07c6d27
> > ("ASoC: qcom: sc7180: Modify machine driver for 2mic")
> >
> > +static const char * const dmic_mux_text[] = {
> > + "FrontMic",
> > + "RearMic",
>
> Why are the two words joined?
> s/FrontMic/Front Mic/g
> s/RearMic/Rear Mic/g
>
> Like that, we keep it consistent with the naming that was given in the commit
> that you mentioned in the commit description.
>
> Regards,
> Angelo
Thank you for your review.
Yes, you are correct, I should keep the string format consistent with
the commit I mentioned in descriptions to avoid confusion.
I will submit the next. Thanks. Regards.