Re: [PATCH v4 1/8] iio: adc: max1027: Add debugfs register read support

From: Jonathan Cameron
Date: Sat Oct 12 2019 - 07:34:48 EST


On Fri, 11 Oct 2019 16:43:40 +0200
Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote:

> Until now, only write operations were supported. Force two bytes read
> operation when reading, which should fit most of the development
> purposes. Of course, extended operations like buffered reads on
> multiple channels or even temperature + voltage reads will not be read
> entirely. Usually, just starting a new operation will work but in any
> case a software reset (done through the debufs interface too) will
> return the device in a usable state.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with it.

thanks,

Jonathan

> ---
> drivers/iio/adc/max1027.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
> index 214883458582..6cdfe9ef73fc 100644
> --- a/drivers/iio/adc/max1027.c
> +++ b/drivers/iio/adc/max1027.c
> @@ -309,8 +309,11 @@ static int max1027_debugfs_reg_access(struct iio_dev *indio_dev,
> struct max1027_state *st = iio_priv(indio_dev);
> u8 *val = (u8 *)st->buffer;
>
> - if (readval != NULL)
> - return -EINVAL;
> + if (readval) {
> + int ret = spi_read(st->spi, val, 2);
> + *readval = be16_to_cpu(st->buffer[0]);
> + return ret;
> + }
>
> *val = (u8)writeval;
> return spi_write(st->spi, val, 1);