OSDN Git Service

ASoC: adau1977: Add support for setting MICBIAS via DT
authorBogdan Togorean <bogdan.togorean@gmail.com>
Tue, 19 Feb 2019 14:11:39 +0000 (16:11 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 19 Feb 2019 15:23:47 +0000 (15:23 +0000)
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>
sound/soc/codecs/adau1977.c

index 116af6a..11c53bc 100644 (file)
@@ -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,