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

3 views
Skip to first unread message

Rodrigo Carvalho

unread,
Nov 23, 2019, 6:35:45 PM11/23/19
to Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, alexandru...@analog.com, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com, Rodrigo Carvalho
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 <rodri...@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;
+ 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;
--
2.24.0

Rodrigo Carvalho

unread,
Nov 23, 2019, 6:36:03 PM11/23/19
to Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, alexandru...@analog.com, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com, Rodrigo Carvalho
This patch add device tree binding documentation for ADIS16240.

Signed-off-by: Rodrigo Ribeiro Carvalho <rodri...@gmail.com>
---
V5:
- None

.../bindings/iio/accel/adi,adis16240.yaml | 49 +++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml

diff --git a/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml b/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
new file mode 100644
index 000000000000..8e902f7c49e6
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/accel/adi,adis16240.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ADIS16240 Programmable Impact Sensor and Recorder driver
+
+maintainers:
+ - Alexandru Ardelean <alexandru...@analog.com>
+
+description: |
+ ADIS16240 Programmable Impact Sensor and Recorder driver that supports
+ SPI interface.
+ https://www.analog.com/en/products/adis16240.html
+
+properties:
+ compatible:
+ enum:
+ - adi,adis16240
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ spi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Example for a SPI device node */
+ accelerometer@0 {
+ compatible = "adi,adis16240";
+ reg = <0>;
+ spi-max-frequency = <2500000>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+ };
+ };
--
2.24.0

Ardelean, Alexandru

unread,
Nov 25, 2019, 2:55:46 AM11/25/19
to Popa, Stefan Serban, gre...@linuxfoundation.org, ji...@kernel.org, knaa...@gmx.de, Hennerich, Michael, la...@metafoo.de, rodri...@gmail.com, pme...@pmeerw.net, kerne...@googlegroups.com, de...@driverdev.osuosl.org, devic...@vger.kernel.org, linux-...@vger.kernel.org, linu...@vger.kernel.org
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 <rodri...@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.

Thanks
Alex

Jonathan Cameron

unread,
Dec 1, 2019, 6:42:19 AM12/1/19
to Ardelean, Alexandru, Popa, Stefan Serban, gre...@linuxfoundation.org, knaa...@gmx.de, Hennerich, Michael, la...@metafoo.de, rodri...@gmail.com, pme...@pmeerw.net, kerne...@googlegroups.com, de...@driverdev.osuosl.org, devic...@vger.kernel.org, linux-...@vger.kernel.org, linu...@vger.kernel.org
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

Ardelean, Alexandru

unread,
Dec 4, 2019, 2:25:37 AM12/4/19
to ji...@kernel.org, kerne...@googlegroups.com, gre...@linuxfoundation.org, de...@driverdev.osuosl.org, devic...@vger.kernel.org, pme...@pmeerw.net, knaa...@gmx.de, Hennerich, Michael, la...@metafoo.de, Popa, Stefan Serban, rodri...@gmail.com, linux-...@vger.kernel.org, linu...@vger.kernel.org
On Sun, 2019-12-01 at 11:42 +0000, Jonathan Cameron wrote:
> [External]
Coming back here.
Apologies to Rodrigo. I do realize that I delayed this a bit too much.

Let's have this series as-is here, and then we can see about a more generic
SPI Mode Converter driver that rounds-up all these weird boards.
Or, if we don't do any SPI mode converter drivers, then we can handle this
on a case-by-case basis/driver.

Rob Herring

unread,
Dec 5, 2019, 10:21:32 AM12/5/19
to Rodrigo Carvalho, Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, alexandru...@analog.com, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com
On Sat, Nov 23, 2019 at 08:35:10PM -0300, Rodrigo Carvalho wrote:
> This patch add device tree binding documentation for ADIS16240.
>
> Signed-off-by: Rodrigo Ribeiro Carvalho <rodri...@gmail.com>

checkpatch.pl complains about a mismatch between the author and S-o-b.

> ---
> V5:
> - None
>
> .../bindings/iio/accel/adi,adis16240.yaml | 49 +++++++++++++++++++
> 1 file changed, 49 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml b/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
> new file mode 100644
> index 000000000000..8e902f7c49e6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
> @@ -0,0 +1,49 @@
> +# SPDX-License-Identifier: GPL-2.0

Dual license new bindings please: (GPL-2.0-only OR BSD-2-Clause)

With that,

Reviewed-by: Rob Herring <ro...@kernel.org>

Jonathan Cameron

unread,
Dec 6, 2019, 12:10:09 PM12/6/19
to Rob Herring, Rodrigo Carvalho, Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, alexandru...@analog.com, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com
On Thu, 5 Dec 2019 09:21:29 -0600
Rob Herring <ro...@kernel.org> wrote:

> On Sat, Nov 23, 2019 at 08:35:10PM -0300, Rodrigo Carvalho wrote:
> > This patch add device tree binding documentation for ADIS16240.
> >
> > Signed-off-by: Rodrigo Ribeiro Carvalho <rodri...@gmail.com>
>
> checkpatch.pl complains about a mismatch between the author and S-o-b.
The open question on patch 1 is resolved, so respin with the points Rob pointed
out her resolved and I'll pick up v6.

Thanks,

Jonathan

Rodrigo Carvalho

unread,
Dec 6, 2019, 11:54:11 PM12/6/19
to Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com, Rodrigo Carvalho
According to the datasheet, this driver supports only SPI mode 3,
so we should enforce it on probe function.

Signed-off-by: Rodrigo Carvalho <rodri...@gmail.com>
---
V6:
-none

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;
+ 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;
--
2.24.0

Rodrigo Carvalho

unread,
Dec 6, 2019, 11:54:15 PM12/6/19
to Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com, Rodrigo Carvalho
This patch add device tree binding documentation for ADIS16240.

Signed-off-by: Rodrigo Carvalho <rodri...@gmail.com>
---
V6:
- Update SPDX license identifier

.../bindings/iio/accel/adi,adis16240.yaml | 49 +++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml

diff --git a/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml b/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
new file mode 100644
index 000000000000..4147f02b5e3c
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

Rob Herring

unread,
Dec 13, 2019, 2:10:39 PM12/13/19
to Rodrigo Carvalho, Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com, Rodrigo Carvalho
On Sat, 7 Dec 2019 01:53:39 -0300, Rodrigo Carvalho wrote:
> This patch add device tree binding documentation for ADIS16240.
>
> Signed-off-by: Rodrigo Carvalho <rodri...@gmail.com>
> ---
> V6:
> - Update SPDX license identifier
>
> .../bindings/iio/accel/adi,adis16240.yaml | 49 +++++++++++++++++++
> 1 file changed, 49 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/accel/adi,adis16240.yaml
>

Please add Acked-by/Reviewed-by tags when posting new versions. However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for acks received on the version they apply.

If a tag was not added on purpose, please state why and what changed.

Jonathan Cameron

unread,
Dec 15, 2019, 7:20:21 AM12/15/19
to Rob Herring, Rodrigo Carvalho, Lars-Peter Clausen, Michael Hennerich, Stefan Popa, Hartmut Knaack, Peter Meerwald-Stadler, Greg Kroah-Hartman, linu...@vger.kernel.org, de...@driverdev.osuosl.org, linux-...@vger.kernel.org, devic...@vger.kernel.org, kerne...@googlegroups.com
Applied to the togreg branch of iio.git, picking up Rob's tag from v5.

Pushed out as testing for the autobuilders to poke at it.

Thanks,

Jonathan

Reply all
Reply to author
Forward
0 new messages