All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
To: "robh@kernel.org" <robh@kernel.org>
Cc: "linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"mark.rutland@arm.com" <mark.rutland@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"anthony.derosa@syscall7.com" <anthony.derosa@syscall7.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>
Subject: Re: [PATCH 1/3] dt-bindings: spi: Add spi-mux-gpio
Date: Mon, 13 Jan 2020 03:43:39 +0000	[thread overview]
Message-ID: <58e3dcf5cf69fa5fda6f887dc442fec4d9901ffd.camel@alliedtelesis.co.nz> (raw)
In-Reply-To: <20190429213740.GA29098@bogus>

Hi Rob,

On Mon, 2019-04-29 at 16:37 -0500, Rob Herring wrote:
> On Fri, Apr 12, 2019 at 05:02:11PM +1200, Chris Packham wrote:
> > Add binding documentation for spi-mux-gpio which is a slightly more
> > complicated hardware implementation of using gpios to steer SPI chip
> > selects.
> > 
> > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> > ---
> >  .../devicetree/bindings/spi/spi-mux-gpio.txt  | 45 +++++++++++++++++++
> >  1 file changed, 45 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/spi/spi-mux-gpio.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/spi/spi-mux-gpio.txt b/Documentation/devicetree/bindings/spi/spi-mux-gpio.txt
> > new file mode 100644
> > index 000000000000..a32f25321d37
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/spi/spi-mux-gpio.txt
> > @@ -0,0 +1,45 @@
> > +SPI bus gpio multiplexer
> > +
> > +The SPI bus gpio multiplexer can be used to implement more complicated access
> > +logic than can be supported with the cs-gpios property of a SPI bus.
> > +
> > +In the example below we have a SoC with a single SPI CS that is gated by the
> > +state of a gpio to select the desired SPI device.
> > +
> > +     +----------+  CS    +-----+ CS0  +----+
> > +     |          |--------|     |------|    |
> > +     |          |        | \ / |      +----+
> > +     |   SoC    |        |  +  |
> > +     |          |  GPIO  | / \ | CS1  +----+
> > +     |          |--------|     |------|    |
> > +     +----------+        +-----+      +----+
> > +
> > +Required properties:
> > +- compatible	- must be "spi-mux-gpio"
> > +- gpios		- gpios used to implement the multiplexing logic
> > +- spi-parent-bus - parent spi bus to use
> > +
> > +Optional properties:
> > +- spi-parent-cs - chip select on parent bus to use. Defaults to 0 if not
> > +                  specified.
> > +
> > +Example for a multiplexer with a single gpio:
> > +
> > +	spi-mux {
> > +		compatible = "spi-mux-gpio";
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +		gpios = <&gpio0 1 0>;
> > +		spi-parent-bus = <&spi0>;
> > +		spi-parent-cs = <0>;
> 
> Why is this out of band? We can do something similar to I2C and use the 
> mux-control binding:
> 
> spi {
> 	mux@0 {
> 		compatible = "spi-mux";
> 		reg "0"; 
> 		mux-controls = ...;
> 
> 		spi-dev@0 {};
> 		spi-dev@1 {};
> 	};
> 
> 	spi-dev@1 {};
> 
> };

I've been re-visiting this thread and an older one[1] with an eye on
implementing a solution with mux-controls.

One thing I'm confused about is your comment that the mux should be in-
band like i2c. Looking at the one user of i2c-mux (at91-natte.dtsi) it
also appears out of band and determine the parent bus with a i2c-parent 
property (similar to how I did it in my original submission). I also
can't see how the mux would work in-band since it lacks the correct
#address-cells etc for a spi device.

I'm wondering if I've missed something obvious.

--
[1] - https://patchwork.kernel.org/patch/2706151/

  reply	other threads:[~2020-01-13  3:43 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-12  5:02 [PATCH 0/3] spi: SPI bus multiplexer Chris Packham
2019-04-12  5:02 ` [PATCH 1/3] dt-bindings: spi: Add spi-mux-gpio Chris Packham
2019-04-29 21:37   ` Rob Herring
2020-01-13  3:43     ` Chris Packham [this message]
2019-04-12  5:02 ` [PATCH 2/3] spi: Make of_find_spi_controller_by_node visible Chris Packham
2019-04-12  5:02 ` [PATCH 3/3] spi: Add SPI bus gpio multiplexer Chris Packham
2019-04-12  8:29 ` [PATCH 0/3] spi: SPI bus multiplexer Mark Brown
2019-04-28 22:28   ` Chris Packham
2019-05-02  2:45     ` Mark Brown

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=58e3dcf5cf69fa5fda6f887dc442fec4d9901ffd.camel@alliedtelesis.co.nz \
    --to=chris.packham@alliedtelesis.co.nz \
    --cc=anthony.derosa@syscall7.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.