Linux-IIO Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function
@ 2019-11-23 23:35 Rodrigo Carvalho
  2019-11-23 23:35 ` [PATCH v5 2/2] dt-bindings: iio: accel: add binding documentation for ADIS16240 Rodrigo Carvalho
  2019-11-25  7:55 ` [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function Ardelean, Alexandru
  0 siblings, 2 replies; 7+ messages in thread
From: Rodrigo Carvalho @ 2019-11-23 23:35 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Stefan Popa,
	Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler,
	Greg Kroah-Hartman, alexandru.ardelean
  Cc: linux-iio, devel, linux-kernel, devicetree, kernel-usp, 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 <rodrigorsdc@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


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v5 2/2] dt-bindings: iio: accel: add binding documentation for ADIS16240
  2019-11-23 23:35 [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function Rodrigo Carvalho
@ 2019-11-23 23:35 ` Rodrigo Carvalho
  2019-12-05 15:21   ` Rob Herring
  2019-11-25  7:55 ` [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function Ardelean, Alexandru
  1 sibling, 1 reply; 7+ messages in thread
From: Rodrigo Carvalho @ 2019-11-23 23:35 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Stefan Popa,
	Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler,
	Greg Kroah-Hartman, alexandru.ardelean
  Cc: linux-iio, devel, linux-kernel, devicetree, kernel-usp, Rodrigo Carvalho

This patch add device tree binding documentation for ADIS16240.

Signed-off-by: Rodrigo Ribeiro Carvalho <rodrigorsdc@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.ardelean@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


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function
  2019-11-23 23:35 [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function Rodrigo Carvalho
  2019-11-23 23:35 ` [PATCH v5 2/2] dt-bindings: iio: accel: add binding documentation for ADIS16240 Rodrigo Carvalho
@ 2019-11-25  7:55 ` Ardelean, Alexandru
  2019-12-01 11:42   ` Jonathan Cameron
  1 sibling, 1 reply; 7+ messages in thread
From: Ardelean, Alexandru @ 2019-11-25  7:55 UTC (permalink / raw)
  To: Popa, Stefan Serban, gregkh, jic23, knaack.h, Hennerich, Michael,
	lars, rodrigorsdc, pmeerw
  Cc: kernel-usp, devel, devicetree, linux-kernel, linux-iio

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@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

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function
  2019-11-25  7:55 ` [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function Ardelean, Alexandru
@ 2019-12-01 11:42   ` Jonathan Cameron
  2019-12-04  7:25     ` Ardelean, Alexandru
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2019-12-01 11:42 UTC (permalink / raw)
  To: Ardelean, Alexandru
  Cc: Popa, Stefan Serban, gregkh, knaack.h, Hennerich, Michael, lars,
	rodrigorsdc, pmeerw, kernel-usp, devel, devicetree, linux-kernel,
	linux-iio

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


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function
  2019-12-01 11:42   ` Jonathan Cameron
@ 2019-12-04  7:25     ` Ardelean, Alexandru
  0 siblings, 0 replies; 7+ messages in thread
From: Ardelean, Alexandru @ 2019-12-04  7:25 UTC (permalink / raw)
  To: jic23
  Cc: kernel-usp, gregkh, devel, devicetree, pmeerw, knaack.h,
	Hennerich, Michael, lars, Popa, Stefan Serban, rodrigorsdc,
	linux-kernel, linux-iio

On Sun, 2019-12-01 at 11:42 +0000, Jonathan Cameron wrote:
> [External]
> 
> On Mon, 25 Nov 2019 07:55:39 +0000
> "Ardelean, Alexandru" <alexandru.Ardelean@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@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.
> 

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.


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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v5 2/2] dt-bindings: iio: accel: add binding documentation for ADIS16240
  2019-11-23 23:35 ` [PATCH v5 2/2] dt-bindings: iio: accel: add binding documentation for ADIS16240 Rodrigo Carvalho
@ 2019-12-05 15:21   ` Rob Herring
  2019-12-06 17:10     ` Jonathan Cameron
  0 siblings, 1 reply; 7+ messages in thread
From: Rob Herring @ 2019-12-05 15:21 UTC (permalink / raw)
  To: Rodrigo Carvalho
  Cc: Lars-Peter Clausen, Michael Hennerich, Stefan Popa,
	Jonathan Cameron, Hartmut Knaack, Peter Meerwald-Stadler,
	Greg Kroah-Hartman, alexandru.ardelean, linux-iio, devel,
	linux-kernel, devicetree, kernel-usp

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 <rodrigorsdc@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 <robh@kernel.org>

> +%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.ardelean@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
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v5 2/2] dt-bindings: iio: accel: add binding documentation for ADIS16240
  2019-12-05 15:21   ` Rob Herring
@ 2019-12-06 17:10     ` Jonathan Cameron
  0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2019-12-06 17:10 UTC (permalink / raw)
  To: Rob Herring
  Cc: Rodrigo Carvalho, Lars-Peter Clausen, Michael Hennerich,
	Stefan Popa, Hartmut Knaack, Peter Meerwald-Stadler,
	Greg Kroah-Hartman, alexandru.ardelean, linux-iio, devel,
	linux-kernel, devicetree, kernel-usp

On Thu, 5 Dec 2019 09:21:29 -0600
Rob Herring <robh@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 <rodrigorsdc@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

> 
> > ---
> > 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 <robh@kernel.org>
> 
> > +%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.ardelean@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
> >   


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-23 23:35 [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function Rodrigo Carvalho
2019-11-23 23:35 ` [PATCH v5 2/2] dt-bindings: iio: accel: add binding documentation for ADIS16240 Rodrigo Carvalho
2019-12-05 15:21   ` Rob Herring
2019-12-06 17:10     ` Jonathan Cameron
2019-11-25  7:55 ` [PATCH v5 1/2] staging: iio: accel: adis16240: enforce SPI mode on probe function Ardelean, Alexandru
2019-12-01 11:42   ` Jonathan Cameron
2019-12-04  7:25     ` Ardelean, Alexandru

Linux-IIO Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-iio/0 linux-iio/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-iio linux-iio/ https://lore.kernel.org/linux-iio \
		linux-iio@vger.kernel.org
	public-inbox-index linux-iio

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-iio


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git