mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
iio: adc: ad7887: invert/rework external ref logic
This change inverts/reworks the logic to use an external reference via a provided regulator. Now the driver tries to obtain a regulator. If one is found, then it is used. The rest of the driver logic already checks if there is a non-NULL reference to a regulator, so it should be fine. Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Link: https://lore.kernel.org/r/20201002082723.184810-1-alexandru.ardelean@analog.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
ead1c9f376
commit
5483b8d501
@ -246,11 +246,15 @@ static int ad7887_probe(struct spi_device *spi)
|
||||
|
||||
st = iio_priv(indio_dev);
|
||||
|
||||
if (!pdata || !pdata->use_onchip_ref) {
|
||||
st->reg = devm_regulator_get(&spi->dev, "vref");
|
||||
if (IS_ERR(st->reg))
|
||||
st->reg = devm_regulator_get_optional(&spi->dev, "vref");
|
||||
if (IS_ERR(st->reg)) {
|
||||
if (PTR_ERR(st->reg) != -ENODEV)
|
||||
return PTR_ERR(st->reg);
|
||||
|
||||
st->reg = NULL;
|
||||
}
|
||||
|
||||
if (st->reg) {
|
||||
ret = regulator_enable(st->reg);
|
||||
if (ret)
|
||||
return ret;
|
||||
@ -269,7 +273,7 @@ static int ad7887_probe(struct spi_device *spi)
|
||||
/* Setup default message */
|
||||
|
||||
mode = AD7887_PM_MODE4;
|
||||
if (!pdata || !pdata->use_onchip_ref)
|
||||
if (!st->reg)
|
||||
mode |= AD7887_REF_DIS;
|
||||
if (pdata && pdata->en_dual)
|
||||
mode |= AD7887_DUAL;
|
||||
|
@ -13,13 +13,9 @@
|
||||
* second input channel, and Vref is internally connected to Vdd. If set to
|
||||
* false the device is used in single channel mode and AIN1/Vref is used as
|
||||
* VREF input.
|
||||
* @use_onchip_ref: Whether to use the onchip reference. If set to true the
|
||||
* internal 2.5V reference is used. If set to false a external reference is
|
||||
* used.
|
||||
*/
|
||||
struct ad7887_platform_data {
|
||||
bool en_dual;
|
||||
bool use_onchip_ref;
|
||||
};
|
||||
|
||||
#endif /* IIO_ADC_AD7887_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user