devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Lechner <dlechner@baylibre.com>
To: "Mark Brown" <broonie@kernel.org>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Marcelo Schmitt" <marcelo.schmitt@analog.com>,
	"Michael Hennerich" <michael.hennerich@analog.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Andy Shevchenko" <andy@kernel.org>
Cc: Sean Anderson <sean.anderson@linux.dev>,
	linux-spi@vger.kernel.org,  devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,  linux-iio@vger.kernel.org,
	David Lechner <dlechner@baylibre.com>
Subject: [PATCH v3 7/7] dt-bindings: iio: adc: adi,ad4030: add data-lanes property
Date: Mon, 01 Dec 2025 20:20:45 -0600	[thread overview]
Message-ID: <20251201-spi-add-multi-bus-support-v3-7-34e05791de83@baylibre.com> (raw)
In-Reply-To: <20251201-spi-add-multi-bus-support-v3-0-34e05791de83@baylibre.com>

Add data-lanes property to specify the number of data lanes used on the
ad463x chips that support reading two samples at the same time using
two data lanes with a capable SPI controller.

Signed-off-by: David Lechner <dlechner@baylibre.com>
---
v3 changes: new patch

I added this one to give a real-world use case where spi-rx-bus-width
was not sufficient to fully describe the hardware configuration.

spi-rx-bus-width = <4>; alone could be be interpreted as either:

+--------------+    +----------+
| SPI          |    | AD4630   |
| Controller   |    | ADC      |
|              |    |          |
|        SDIA0 |<---| SDOA0    |
|        SDIA1 |<---| SDOA1    |
|        SDIA2 |<---| SDOA2    |
|        SDIA3 |<---| SDOA3    |
|              |    |          |
|        SDIB0 |x   | SDOB0    |
|        SDIB1 |x   | SDOB1    |
|        SDIB2 |x   | SDOB2    |
|        SDIB3 |x   | SDOB3    |
|              |    |          |
+--------------+     +---------+

or

+--------------+    +----------+
| SPI          |    | AD4630   |
| Controller   |    | ADC      |
|              |    |          |
|        SDIA0 |<---| SDOA0    |
|        SDIA1 |<---| SDOA1    |
|        SDIA2 |x   | SDOA2    |
|        SDIA3 |x   | SDOA3    |
|              |    |          |
|        SDIB0 |<---| SDOB0    |
|        SDIB1 |<---| SDOB1    |
|        SDIB2 |x   | SDOB2    |
|        SDIB3 |x   | SDOB3    |
|              |    |          |
+--------------+     +---------+

Now, with data-lanes having a default value of [0] (inherited from
spi-peripheral-props.yaml), specifying:

    spi-rx-bus-width = <4>;

is unambiguously the first case and the example given in the binding
documentation is the second case:

    spi-rx-bus-width = <2>;
    data-lanes = <0>, <1>;
---
 .../devicetree/bindings/iio/adc/adi,ad4030.yaml    | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad4030.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad4030.yaml
index 54e7349317b77f032ecafde0102bf3a09f140f03..315ebcfbfa28888a4518073c1b286f0993f83673 100644
--- a/Documentation/devicetree/bindings/iio/adc/adi,ad4030.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad4030.yaml
@@ -39,6 +39,10 @@ properties:
   spi-rx-bus-width:
     enum: [1, 2, 4]
 
+  data-lanes:
+    minItems: 1
+    maxItems: 2
+
   vdd-5v-supply: true
   vdd-1v8-supply: true
   vio-supply: true
@@ -88,6 +92,17 @@ oneOf:
 
 unevaluatedProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          enum:
+            - adi,ad4030-24
+            - adi,ad4032-24
+    then:
+      properties:
+        data-lanes: false
+
 examples:
   - |
     #include <dt-bindings/gpio/gpio.h>
@@ -108,3 +123,24 @@ examples:
             reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
         };
     };
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "adi,ad4630-24";
+            reg = <0>;
+            spi-max-frequency = <80000000>;
+            spi-rx-bus-width = <2>;
+            data-lanes = <0>, <1>;
+            vdd-5v-supply = <&supply_5V>;
+            vdd-1v8-supply = <&supply_1_8V>;
+            vio-supply = <&supply_1_8V>;
+            ref-supply = <&supply_5V>;
+            cnv-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+        };
+    };

-- 
2.43.0


  parent reply	other threads:[~2025-12-02  2:21 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-02  2:20 [PATCH v3 0/7] spi: add multi-lane support David Lechner
2025-12-02  2:20 ` [PATCH v3 1/7] spi: dt-bindings: Add data-lanes property David Lechner
2025-12-04 21:29   ` Rob Herring (Arm)
2025-12-02  2:20 ` [PATCH v3 2/7] spi: Support controllers with multiple data lanes David Lechner
2025-12-02 14:44   ` Andy Shevchenko
2025-12-02 14:47     ` David Lechner
2025-12-02  2:20 ` [PATCH v3 3/7] spi: add multi_lane_mode field to struct spi_transfer David Lechner
2025-12-02 14:48   ` Andy Shevchenko
2025-12-02  2:20 ` [PATCH v3 4/7] spi: axi-spi-engine: support SPI_MULTI_LANE_MODE_STRIPE David Lechner
2025-12-02 14:53   ` Andy Shevchenko
2025-12-02 16:36     ` Mark Brown
2025-12-10  0:02     ` David Lechner
2025-12-10 10:59       ` Andy Shevchenko
2025-12-02  2:20 ` [PATCH v3 5/7] dt-bindings: iio: adc: adi,ad7380: add spi-lanes property David Lechner
2025-12-04 21:29   ` Rob Herring (Arm)
2025-12-02  2:20 ` [PATCH v3 6/7] iio: adc: ad7380: Add support for multiple SPI lanes David Lechner
2025-12-02  2:20 ` David Lechner [this message]
2025-12-04 21:33   ` [PATCH v3 7/7] dt-bindings: iio: adc: adi,ad4030: add data-lanes property Rob Herring
2025-12-05 21:12     ` Marcelo Schmitt
2025-12-05 21:33       ` David Lechner
2025-12-05 23:43         ` David Lechner
2025-12-06  0:47           ` Rob Herring
2025-12-08 16:14             ` David Lechner
2025-12-08 18:32               ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251201-spi-add-multi-bus-support-v3-7-34e05791de83@baylibre.com \
    --to=dlechner@baylibre.com \
    --cc=andy@kernel.org \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jic23@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=marcelo.schmitt@analog.com \
    --cc=michael.hennerich@analog.com \
    --cc=nuno.sa@analog.com \
    --cc=robh@kernel.org \
    --cc=sean.anderson@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).