[1/3] ASoC: max98090: read micbias from device property
diff mbox

Message ID 1432684686-14460-1-git-send-email-yang.a.fang@intel.com
State New
Headers show

Commit Message

yang.a.fang@intel.com May 26, 2015, 11:58 p.m. UTC
From: "Fang, Yang A" <yang.a.fang@intel.com>

This patch reads max98090 micbias from acpi or dt

Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
---
 sound/soc/codecs/max98090.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Dylan Reid May 27, 2015, 4:39 a.m. UTC | #1
On Tue, May 26, 2015 at 4:58 PM,  <yang.a.fang@intel.com> wrote:
> From: "Fang, Yang A" <yang.a.fang@intel.com>
>
> This patch reads max98090 micbias from acpi or dt
>
> Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
> ---
>  sound/soc/codecs/max98090.c |    9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
> index c230626..27df17e 100644
> --- a/sound/soc/codecs/max98090.c
> +++ b/sound/soc/codecs/max98090.c
> @@ -2419,6 +2419,8 @@ static int max98090_probe(struct snd_soc_codec *codec)
>         struct max98090_cdata *cdata;
>         enum max98090_type devtype;
>         int ret = 0;
> +       int err;
> +       unsigned int micbias;
>
>         dev_dbg(codec->dev, "max98090_probe\n");
>
> @@ -2503,8 +2505,13 @@ static int max98090_probe(struct snd_soc_codec *codec)
>         snd_soc_write(codec, M98090_REG_BIAS_CONTROL,
>                 M98090_VCM_MODE_MASK);
>
> +       err = device_property_read_u32(codec->dev, "max,micbias", &micbias);

Should this be "maxim,micbias" to be consistent with  "maxim,dmic-freq"?
It should also be added to the Documentation for the max98090, as an
optional parameter.

> +

Extra newline.

> +       if (err)
> +               micbias = M98090_MBVSEL_2V8;
> +
>         snd_soc_update_bits(codec, M98090_REG_MIC_BIAS_VOLTAGE,
> -               M98090_MBVSEL_MASK, M98090_MBVSEL_2V8);
> +               M98090_MBVSEL_MASK, micbias);
>
>         max98090_add_widgets(codec);
>
> --
> 1.7.9.5
>
yang.a.fang@intel.com May 27, 2015, 5:26 p.m. UTC | #2
On Tue, May 26, 2015 at 09:39:54PM -0700, Dylan Reid wrote:
> On Tue, May 26, 2015 at 4:58 PM,  <yang.a.fang@intel.com> wrote:
> > From: "Fang, Yang A" <yang.a.fang@intel.com>
> >
> > This patch reads max98090 micbias from acpi or dt
> >
> > Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
> > ---
> >  sound/soc/codecs/max98090.c |    9 ++++++++-
> >  1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
> > index c230626..27df17e 100644
> > --- a/sound/soc/codecs/max98090.c
> > +++ b/sound/soc/codecs/max98090.c
> > @@ -2419,6 +2419,8 @@ static int max98090_probe(struct snd_soc_codec *codec)
> >         struct max98090_cdata *cdata;
> >         enum max98090_type devtype;
> >         int ret = 0;
> > +       int err;
> > +       unsigned int micbias;
> >
> >         dev_dbg(codec->dev, "max98090_probe\n");
> >
> > @@ -2503,8 +2505,13 @@ static int max98090_probe(struct snd_soc_codec *codec)
> >         snd_soc_write(codec, M98090_REG_BIAS_CONTROL,
> >                 M98090_VCM_MODE_MASK);
> >
> > +       err = device_property_read_u32(codec->dev, "max,micbias", &micbias);
> 
> Should this be "maxim,micbias" to be consistent with  "maxim,dmic-freq"?
> It should also be added to the Documentation for the max98090, as an
> optional parameter.
Agreed . i will change it in v2 and update the Documentation
> 
> > +
> 
> Extra newline.
will fix in v2
> 
> > +       if (err)
> > +               micbias = M98090_MBVSEL_2V8;
> > +
> >         snd_soc_update_bits(codec, M98090_REG_MIC_BIAS_VOLTAGE,
> > -               M98090_MBVSEL_MASK, M98090_MBVSEL_2V8);
> > +               M98090_MBVSEL_MASK, micbias);
> >
> >         max98090_add_widgets(codec);
> >
> > --
> > 1.7.9.5
> >
Mark Brown May 28, 2015, 9:28 a.m. UTC | #3
On Tue, May 26, 2015 at 04:58:04PM -0700, yang.a.fang@intel.com wrote:
> From: "Fang, Yang A" <yang.a.fang@intel.com>
> 
> This patch reads max98090 micbias from acpi or dt

This is adding a new DT binding, the DT binding needs to be documented.

Patch
diff mbox

diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
index c230626..27df17e 100644
--- a/sound/soc/codecs/max98090.c
+++ b/sound/soc/codecs/max98090.c
@@ -2419,6 +2419,8 @@  static int max98090_probe(struct snd_soc_codec *codec)
 	struct max98090_cdata *cdata;
 	enum max98090_type devtype;
 	int ret = 0;
+	int err;
+	unsigned int micbias;
 
 	dev_dbg(codec->dev, "max98090_probe\n");
 
@@ -2503,8 +2505,13 @@  static int max98090_probe(struct snd_soc_codec *codec)
 	snd_soc_write(codec, M98090_REG_BIAS_CONTROL,
 		M98090_VCM_MODE_MASK);
 
+	err = device_property_read_u32(codec->dev, "max,micbias", &micbias);
+
+	if (err)
+		micbias = M98090_MBVSEL_2V8;
+
 	snd_soc_update_bits(codec, M98090_REG_MIC_BIAS_VOLTAGE,
-		M98090_MBVSEL_MASK, M98090_MBVSEL_2V8);
+		M98090_MBVSEL_MASK, micbias);
 
 	max98090_add_widgets(codec);