summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDragos Bogdan <dragos.bogdan@analog.com>2015-11-18 10:35:34 (GMT)
committerJonathan Cameron <jic23@kernel.org>2015-11-18 18:58:29 (GMT)
commit52555a5d1058eec96c6bac2928bc965b0077c60e (patch)
tree2adcc2aa926b4d3dad747eeca3fa5ae0c000d1a0 /drivers
parent7d173f26353df0e90ea1223b80f6834845f27435 (diff)
downloadlinux-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.c27
-rw-r--r--drivers/staging/iio/adc/ad7780.h1
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_ */