| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * ADAU1977/ADAU1978/ADAU1979 driver |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright 2014 Analog Devices Inc. |
|---|
| 5 | 6 | * Author: Lars-Peter Clausen <lars@metafoo.de> |
|---|
| 6 | | - * |
|---|
| 7 | | - * Licensed under the GPL-2. |
|---|
| 8 | 7 | */ |
|---|
| 9 | 8 | |
|---|
| 10 | 9 | #include <linux/delay.h> |
|---|
| .. | .. |
|---|
| 885 | 884 | struct adau1977_platform_data *pdata = adau1977->dev->platform_data; |
|---|
| 886 | 885 | unsigned int micbias; |
|---|
| 887 | 886 | |
|---|
| 888 | | - if (pdata) { |
|---|
| 887 | + if (pdata) |
|---|
| 889 | 888 | micbias = pdata->micbias; |
|---|
| 890 | | - if (micbias > ADAU1977_MICBIAS_9V0) |
|---|
| 891 | | - return -EINVAL; |
|---|
| 892 | | - |
|---|
| 893 | | - } else { |
|---|
| 889 | + else if (device_property_read_u32(adau1977->dev, "adi,micbias", |
|---|
| 890 | + &micbias)) |
|---|
| 894 | 891 | micbias = ADAU1977_MICBIAS_8V5; |
|---|
| 892 | + |
|---|
| 893 | + if (micbias > ADAU1977_MICBIAS_9V0) { |
|---|
| 894 | + dev_err(adau1977->dev, "Invalid value for 'adi,micbias'\n"); |
|---|
| 895 | + return -EINVAL; |
|---|
| 895 | 896 | } |
|---|
| 896 | 897 | |
|---|
| 897 | 898 | return regmap_update_bits(adau1977->regmap, ADAU1977_REG_MICBIAS, |
|---|