public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: David Lechner <dlechner@baylibre.com>
Cc: "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>,
	"Andy Shevchenko" <andy@kernel.org>,
	"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
Subject: Re: [PATCH v2 0/6] spi: add multi-bus support
Date: Sun, 9 Nov 2025 17:05:45 +0000	[thread overview]
Message-ID: <20251109170545.7e07ab41@jic23-huawei> (raw)
In-Reply-To: <20251107-spi-add-multi-bus-support-v2-0-8a92693314d9@baylibre.com>

On Fri, 07 Nov 2025 14:52:46 -0600
David Lechner <dlechner@baylibre.com> wrote:

> This series is adding support for SPI controllers and peripherals that
> have multiple SPI data buses (data buses being independent sets of
> SDI/SDO lines, each with their own serializer/deserializer).
> 
> This series covers this specific use case:
> 
> +--------------+    +---------+
> | SPI          |    | SPI     |
> | Controller   |    | ADC     |
> |              |    |         |
> |          CS0 |--->| CS      |
> |         SCLK |--->| SCLK    |
> |          SDO |--->| SDI     |
> |         SDI0 |<---| SDOA    |
> |         SDI1 |<---| SDOB    |
> |         SDI2 |<---| SDOC    |
> |         SDI3 |<---| SDOD    |
> +--------------+     +--------+
> 
> The ADC is a simultaneous sampling ADC that can convert 4 samples at the
> same time. It has 4 data output lines (SDOA-D) that each contain the
> data of one of the 4 channels. So it requires a SPI controller with 4
> separate deserializers in order to receive all of the information at the
> same time.
> 
> This should also work for the use case in [1] as well. (Some of the
> patches in this series were already submitted there). In that case the
> SPI controller is used kind of like it is two separate SPI controllers,
> each with its own chip select, clock, and data lines.
> 
> [1]: https://lore.kernel.org/linux-spi/20250616220054.3968946-1-sean.anderson@linux.dev/
> 
> The DT bindings are a fairly straight-forward mapping of which pins on
> the peripheral are connected to which pins on the controller. The SPI
> core code parses this and makes the information available to drivers.
> When a peripheral driver sees that multiple data buses are wired up, it
> can chose to use them when sending messages.
> 
> The SPI message API is a bit higher-level than just specifying the
> number of data lines for a SPI transfer though. I did some research on
> other SPI controllers that have this feature. They tend to be the kind
> meant for connecting to two flash memory chips at the same time but can
> be used more generically as well. They generally have the option to
> either use one bus at a time (Sean's use case), or can mirror the same
> data on multiple buses (no users of this yet) or can perform striping
> of a single data FIFO/DMA stream to/from the two buses (our use case).
> 
> For now, the API assumes that if you want to do mirror/striping, then
> you want to use all available data buses. Otherwise, it just uses the
> first data bus for "normal" SPI transfers.
> 
> Signed-off-by: David Lechner <dlechner@baylibre.com>

Series looks good to me. If the SPI and DT folk are fine with it, then
I guess time to ask Mark for another immutable branch so the SPI stuff
can be in the SPI tree and IIO tree.

J
> ---
> Changes in v2:
> - Renamed devicetree property spi-buses to spi-data-buses. (Driver code
>   was already using spi->data_buses, so it matches).
> - Fixed a small bug in the AXI ADC driver changes.
> - Moved one line of code in the ADC driver changes.
> - Link to v1: https://lore.kernel.org/r/20251014-spi-add-multi-bus-support-v1-0-2098c12d6f5f@baylibre.com
> 
> ---
> David Lechner (6):
>       spi: dt-bindings: Add spi-data-buses property
>       spi: Support multi-bus controllers
>       spi: add multi_bus_mode field to struct spi_transfer
>       spi: axi-spi-engine: support SPI_MULTI_BUS_MODE_STRIPE
>       dt-bindings: iio: adc: adi,ad7380: add spi-buses property
>       iio: adc: ad7380: Add support for multiple SPI buses
> 
>  .../devicetree/bindings/iio/adc/adi,ad7380.yaml    |  22 ++++
>  .../bindings/spi/spi-peripheral-props.yaml         |  12 ++
>  drivers/iio/adc/ad7380.c                           |  42 ++++---
>  drivers/spi/spi-axi-spi-engine.c                   | 128 ++++++++++++++++++++-
>  drivers/spi/spi.c                                  |  28 ++++-
>  include/linux/spi/spi.h                            |  23 ++++
>  6 files changed, 237 insertions(+), 18 deletions(-)
> ---
> base-commit: 1a26618e7466b8d825989201086c235e76aa999a
> change-id: 20250815-spi-add-multi-bus-support-1b35d05c54f6
> 
> Best regards,


      parent reply	other threads:[~2025-11-09 17:05 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-07 20:52 [PATCH v2 0/6] spi: add multi-bus support David Lechner
2025-11-07 20:52 ` [PATCH v2 1/6] spi: dt-bindings: Add spi-data-buses property David Lechner
2025-11-18 15:57   ` Rob Herring
2025-11-07 20:52 ` [PATCH v2 2/6] spi: Support multi-bus controllers David Lechner
2025-11-07 20:52 ` [PATCH v2 3/6] spi: add multi_bus_mode field to struct spi_transfer David Lechner
2025-11-07 20:52 ` [PATCH v2 4/6] spi: axi-spi-engine: support SPI_MULTI_BUS_MODE_STRIPE David Lechner
2025-11-11 15:12   ` Marcelo Schmitt
2025-11-12 16:59     ` David Lechner
2025-11-15 14:16       ` Marcelo Schmitt
2025-11-15 14:17   ` Marcelo Schmitt
2025-11-07 20:52 ` [PATCH v2 5/6] dt-bindings: iio: adc: adi,ad7380: add spi-buses property David Lechner
2025-11-18 15:59   ` Rob Herring
2025-11-18 17:46     ` David Lechner
2025-11-19 13:18       ` Rob Herring
2025-11-19 14:45         ` David Lechner
2025-12-04 14:28           ` Rob Herring
2025-12-04 16:01             ` David Lechner
2025-11-07 20:52 ` [PATCH v2 6/6] iio: adc: ad7380: Add support for multiple SPI buses David Lechner
2025-11-09 17:05 ` Jonathan Cameron [this message]

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=20251109170545.7e07ab41@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=andy@kernel.org \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --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