diff options
author | Dragos Bogdan <dragos.bogdan@analog.com> | 2015-11-18 10:35:34 (GMT) |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2015-11-18 18:58:29 (GMT) |
commit | 52555a5d1058eec96c6bac2928bc965b0077c60e (patch) | |
tree | 2adcc2aa926b4d3dad747eeca3fa5ae0c000d1a0 /drivers | |
parent | 7d173f26353df0e90ea1223b80f6834845f27435 (diff) | |
download | linux-52555a5d1058eec96c6bac2928bc965b0077c60e.tar.xz |
staging:iio:ad7780: Switch to the gpio descriptor interface
Use the gpiod interface for the powerdown_gpio instead of the deprecated
old non-descriptor interface.
The powerdown pin can be tied high, so the gpio is optional.
Remove the gpio_pdrst platform_data member since the new interface is
used.
Signed-off-by: Dragos Bogdan <dragos.bogdan@analog.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/iio/adc/ad7780.c | 27 | ||||
-rw-r--r-- | drivers/staging/iio/adc/ad7780.h | 1 |
2 files changed, 11 insertions, 17 deletions
diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c index 618b41f..98b5fc4 100644 --- a/drivers/staging/iio/adc/ad7780.c +++ b/drivers/staging/iio/adc/ad7780.c @@ -15,7 +15,7 @@ #include <linux/regulator/consumer.h> #include <linux/err.h> #include <linux/sched.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/module.h> #include <linux/iio/iio.h> @@ -42,7 +42,7 @@ struct ad7780_chip_info { struct ad7780_state { const struct ad7780_chip_info *chip_info; struct regulator *reg; - int powerdown_gpio; + struct gpio_desc *powerdown_gpio; unsigned int gain; u16 int_vref_mv; @@ -77,8 +77,7 @@ static int ad7780_set_mode(struct ad_sigma_delta *sigma_delta, break; } - if (gpio_is_valid(st->powerdown_gpio)) - gpio_set_value(st->powerdown_gpio, val); + gpiod_set_value(st->powerdown_gpio, val); return 0; } @@ -205,18 +204,14 @@ static int ad7780_probe(struct spi_device *spi) indio_dev->num_channels = 1; indio_dev->info = &ad7780_info; - if (pdata && gpio_is_valid(pdata->gpio_pdrst)) { - ret = devm_gpio_request_one(&spi->dev, - pdata->gpio_pdrst, - GPIOF_OUT_INIT_LOW, - "AD7780 /PDRST"); - if (ret) { - dev_err(&spi->dev, "failed to request GPIO PDRST\n"); - goto error_disable_reg; - } - st->powerdown_gpio = pdata->gpio_pdrst; - } else { - st->powerdown_gpio = -1; + st->powerdown_gpio = devm_gpiod_get_optional(&spi->dev, + "powerdown", + GPIOD_OUT_LOW); + if (IS_ERR(st->powerdown_gpio)) { + ret = PTR_ERR(st->powerdown_gpio); + dev_err(&spi->dev, "Failed to request powerdown GPIO: %d\n", + ret); + goto error_disable_reg; } ret = ad_sd_setup_buffer_and_trigger(indio_dev); diff --git a/drivers/staging/iio/adc/ad7780.h b/drivers/staging/iio/adc/ad7780.h index 67e511c..46f61c9 100644 --- a/drivers/staging/iio/adc/ad7780.h +++ b/drivers/staging/iio/adc/ad7780.h @@ -24,7 +24,6 @@ struct ad7780_platform_data { u16 vref_mv; - int gpio_pdrst; }; #endif /* IIO_ADC_AD7780_H_ */ |