diff options
author | Bogdan Togorean <bogdan.togorean@gmail.com> | 2019-02-19 15:11:39 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-02-19 16:23:47 +0100 |
commit | 65d257ee12860340947bbc336243b4a9a5d721df (patch) | |
tree | 1501da5168150675994ba08a15c525d4ddd88eb7 /sound | |
parent | ASoC: adau1977: Add MICBIAS example in DT bindings (diff) | |
download | linux-65d257ee12860340947bbc336243b4a9a5d721df.tar.xz linux-65d257ee12860340947bbc336243b4a9a5d721df.zip |
ASoC: adau1977: Add support for setting MICBIAS via DT
If platform_data is NULL add reading of optional adi,micbias
property from DT. If adi,micbias is not set keep the default
value for micbias.
Signed-off-by: Bogdan Togorean <bogdan.togorean@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/adau1977.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sound/soc/codecs/adau1977.c b/sound/soc/codecs/adau1977.c index 116af6a9ce3b..11c53bcb71dd 100644 --- a/sound/soc/codecs/adau1977.c +++ b/sound/soc/codecs/adau1977.c @@ -885,13 +885,15 @@ static int adau1977_setup_micbias(struct adau1977 *adau1977) struct adau1977_platform_data *pdata = adau1977->dev->platform_data; unsigned int micbias; - if (pdata) { + if (pdata) micbias = pdata->micbias; - if (micbias > ADAU1977_MICBIAS_9V0) - return -EINVAL; - - } else { + else if (device_property_read_u32(adau1977->dev, "adi,micbias", + &micbias)) micbias = ADAU1977_MICBIAS_8V5; + + if (micbias > ADAU1977_MICBIAS_9V0) { + dev_err(adau1977->dev, "Invalid value for 'adi,micbias'\n"); + return -EINVAL; } return regmap_update_bits(adau1977->regmap, ADAU1977_REG_MICBIAS, |