Loading Documentation/devicetree/bindings/sound/max98090.txt +6 −0 Original line number Diff line number Diff line Loading @@ -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 Loading sound/soc/codecs/max98090.c +12 −1 Original line number Diff line number Diff line Loading @@ -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"); Loading Loading @@ -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 Loading
Documentation/devicetree/bindings/sound/max98090.txt +6 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
sound/soc/codecs/max98090.c +12 −1 Original line number Diff line number Diff line Loading @@ -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"); Loading Loading @@ -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