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
|
@ -18,6 +18,12 @@ Optional properties:
|
|||
|
||||
- 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):
|
||||
|
||||
* MIC1
|
||||
|
|
|
@ -2422,6 +2422,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");
|
||||
|
||||
|
@ -2506,8 +2508,17 @@ 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, "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,
|
||||
M98090_MBVSEL_MASK, M98090_MBVSEL_2V8);
|
||||
M98090_MBVSEL_MASK, micbias);
|
||||
|
||||
max98090_add_widgets(codec);
|
||||
|
||||
|
|
Loading…
Reference in a new issue