On Mon, 25 Nov 2019 07:55:39 +0000 "Ardelean, Alexandru" <alexandru.Ardelean@xxxxxxxxxx> 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@xxxxxxxxx> > > --- > > 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;