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>
This commit is contained in:
Bogdan Togorean 2019-02-19 16:11:39 +02:00 committed by Mark Brown
parent fb7a97456e
commit 65d257ee12
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0
1 changed files with 7 additions and 5 deletions

View File

@ -885,13 +885,15 @@ static int adau1977_setup_micbias(struct adau1977 *adau1977)
struct adau1977_platform_data *pdata = adau1977->dev->platform_data; struct adau1977_platform_data *pdata = adau1977->dev->platform_data;
unsigned int micbias; unsigned int micbias;
if (pdata) { if (pdata)
micbias = pdata->micbias; micbias = pdata->micbias;
if (micbias > ADAU1977_MICBIAS_9V0) else if (device_property_read_u32(adau1977->dev, "adi,micbias",
return -EINVAL; &micbias))
} else {
micbias = ADAU1977_MICBIAS_8V5; 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, return regmap_update_bits(adau1977->regmap, ADAU1977_REG_MICBIAS,