mirror of https://gitee.com/openkylin/linux.git
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:
parent
fb7a97456e
commit
65d257ee12
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue