[PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function

Jonathan Cameron jic23 at kernel.org
Sun Dec 1 11:42:12 UTC 2019


On Mon, 25 Nov 2019 07:55:39 +0000
"Ardelean, Alexandru" <alexandru.Ardelean at analog.com> wrote:

> On Sat, 2019-11-23 at 20:35 -0300, Rodrigo Carvalho wrote:
> > [External]
> > 
> > According to the datasheet, this driver supports only SPI mode 3,
> > so we should enforce it and call spi_setup() on probe function.
> > 
> > Signed-off-by: Rodrigo Ribeiro Carvalho <rodrigorsdc at gmail.com>
> > ---
> > V5:
> >   - Add this patch to the patchset
> > 
> >  drivers/staging/iio/accel/adis16240.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/drivers/staging/iio/accel/adis16240.c
> > b/drivers/staging/iio/accel/adis16240.c
> > index 82099db4bf0c..77b6b81767b9 100644
> > --- a/drivers/staging/iio/accel/adis16240.c
> > +++ b/drivers/staging/iio/accel/adis16240.c
> > @@ -400,6 +400,13 @@ static int adis16240_probe(struct spi_device *spi)
> >  	indio_dev->num_channels = ARRAY_SIZE(adis16240_channels);
> >  	indio_dev->modes = INDIO_DIRECT_MODE;
> >  
> > +	spi->mode = SPI_MODE_3;  
> 
> A generic question from me here, since I am not sure.
> 
> Would this limit the configurations of this chip on the board?
> In case there is some level-inverter [for various weird reasons] on the
> board, this may not work, because the SPI controller would need CPOL to be
> 0.
> 
> Not sure if this question is valid, or whether we need to care about such
> configurations.

It's a good question as this sort of trick is used sometimes. Let's see
what responses we get to the other branch of this thread before moving forwards
with this.

Jonathan


> 
> Thanks
> Alex
> 
> > +	ret = spi_setup(spi);
> > +	if (ret) {
> > +		dev_err(&spi->dev, "spi_setup failed!\n");
> > +		return ret;
> > +	}
> > +
> >  	ret = adis_init(st, indio_dev, spi, &adis16240_data);
> >  	if (ret)
> >  		return ret;  



More information about the devel mailing list