On Fri, 18 May 2018 20:21:56 +0200
David Veenstra <davidjulianveens...@gmail.com> wrote:

> The legacy, integer based gpio API is replaced with the modern
> descriptor based API.
> 
> Signed-off-by: David Veenstra <davidjulianveens...@gmail.com>
Hmm This is more complex than it needed to be because it
has to do some massaging of the two different methods only
to clean them up in the next patch.

I would have been tempted to combine the two patches or at
the very least add some comments in here that the nastier
corners are about to go away.

Anyhow, not to worry I figured it out slightly before sending
you an email saying not to do it this way ;)

Applied to the togreg branch of iio.git and pushed out as
testing for the autobuilders to play with it.

Thanks,

Jonathan

> ---
>  drivers/staging/iio/resolver/ad2s1200.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/staging/iio/resolver/ad2s1200.c 
> b/drivers/staging/iio/resolver/ad2s1200.c
> index 430cc62591fe..b2c46a8c6b77 100644
> --- a/drivers/staging/iio/resolver/ad2s1200.c
> +++ b/drivers/staging/iio/resolver/ad2s1200.c
> @@ -13,6 +13,7 @@
>  #include <linux/delay.h>
>  #include <linux/device.h>
>  #include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
>  #include <linux/module.h>
>  #include <linux/mutex.h>
>  #include <linux/spi/spi.h>
> @@ -43,8 +44,8 @@
>  struct ad2s1200_state {
>       struct mutex lock;
>       struct spi_device *sdev;
> -     int sample;
> -     int rdvel;
> +     struct gpio_desc *sample;
> +     struct gpio_desc *rdvel;
>       __be16 rx ____cacheline_aligned;
>  };
>  
> @@ -58,12 +59,12 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev,
>       int ret;
>  
>       mutex_lock(&st->lock);
> -     gpio_set_value(st->sample, 0);
> +     gpiod_set_value(st->sample, 0);
>  
>       /* delay (6 * AD2S1200_TSCLK + 20) nano seconds */
>       udelay(1);
> -     gpio_set_value(st->sample, 1);
> -     gpio_set_value(st->rdvel, !!(chan->type == IIO_ANGL));
> +     gpiod_set_value(st->sample, 1);
> +     gpiod_set_value(st->rdvel, !!(chan->type == IIO_ANGL));
>  
>       ret = spi_read(st->sdev, &st->rx, 2);
>       if (ret < 0) {
> @@ -133,8 +134,8 @@ static int ad2s1200_probe(struct spi_device *spi)
>       st = iio_priv(indio_dev);
>       mutex_init(&st->lock);
>       st->sdev = spi;
> -     st->sample = pins[0];
> -     st->rdvel = pins[1];
> +     st->sample = gpio_to_desc(pins[0]);
> +     st->rdvel = gpio_to_desc(pins[1]);
>  
>       indio_dev->dev.parent = &spi->dev;
>       indio_dev->info = &ad2s1200_info;

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to