ASoC: max98090: read micbias from device property
This patch reads max98090 micbias from acpi or dt Signed-off-by: Fang, Yang A <yang.a.fang@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
b787f68c36
commit
bb13f0e08d
2 changed files with 18 additions and 1 deletions
|
@ -18,6 +18,12 @@ Optional properties:
|
||||||
|
|
||||||
- maxim,dmic-freq: Frequency at which to clock DMIC
|
- maxim,dmic-freq: Frequency at which to clock DMIC
|
||||||
|
|
||||||
|
- maxim,micbias: Micbias voltage applies to the analog mic, valid voltages value are:
|
||||||
|
0 - 2.2v
|
||||||
|
1 - 2.55v
|
||||||
|
2 - 2.4v
|
||||||
|
3 - 2.8v
|
||||||
|
|
||||||
Pins on the device (for linking into audio routes):
|
Pins on the device (for linking into audio routes):
|
||||||
|
|
||||||
* MIC1
|
* MIC1
|
||||||
|
|
|
@ -2422,6 +2422,8 @@ static int max98090_probe(struct snd_soc_codec *codec)
|
||||||
struct max98090_cdata *cdata;
|
struct max98090_cdata *cdata;
|
||||||
enum max98090_type devtype;
|
enum max98090_type devtype;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
int err;
|
||||||
|
unsigned int micbias;
|
||||||
|
|
||||||
dev_dbg(codec->dev, "max98090_probe\n");
|
dev_dbg(codec->dev, "max98090_probe\n");
|
||||||
|
|
||||||
|
@ -2506,8 +2508,17 @@ static int max98090_probe(struct snd_soc_codec *codec)
|
||||||
snd_soc_write(codec, M98090_REG_BIAS_CONTROL,
|
snd_soc_write(codec, M98090_REG_BIAS_CONTROL,
|
||||||
M98090_VCM_MODE_MASK);
|
M98090_VCM_MODE_MASK);
|
||||||
|
|
||||||
|
err = device_property_read_u32(codec->dev, "maxim,micbias", &micbias);
|
||||||
|
if (err) {
|
||||||
|
micbias = M98090_MBVSEL_2V8;
|
||||||
|
dev_info(codec->dev, "use default 2.8v micbias\n");
|
||||||
|
} else if (micbias < M98090_MBVSEL_2V2 || micbias > M98090_MBVSEL_2V8) {
|
||||||
|
dev_err(codec->dev, "micbias out of range 0x%x\n", micbias);
|
||||||
|
micbias = M98090_MBVSEL_2V8;
|
||||||
|
}
|
||||||
|
|
||||||
snd_soc_update_bits(codec, M98090_REG_MIC_BIAS_VOLTAGE,
|
snd_soc_update_bits(codec, M98090_REG_MIC_BIAS_VOLTAGE,
|
||||||
M98090_MBVSEL_MASK, M98090_MBVSEL_2V8);
|
M98090_MBVSEL_MASK, micbias);
|
||||||
|
|
||||||
max98090_add_widgets(codec);
|
max98090_add_widgets(codec);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue