Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1635935 > unrolled thread
| Started by | Geert Uytterhoeven <geert+renesas@glider.be> |
|---|---|
| First post | 2017-05-04 19:50 +0200 |
| Last post | 2017-05-08 22:50 +0200 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v3 1/6] spi: Document DT bindings for SPI controllers in slave mode Geert Uytterhoeven <geert+renesas@glider.be> - 2017-05-04 19:50 +0200
Re: [PATCH v3 1/6] spi: Document DT bindings for SPI controllers in slave mode Rob Herring <robh@kernel.org> - 2017-05-08 19:00 +0200
Re: [PATCH v3 1/6] spi: Document DT bindings for SPI controllers in slave mode Geert Uytterhoeven <geert@linux-m68k.org> - 2017-05-08 22:50 +0200
| From | Geert Uytterhoeven <geert+renesas@glider.be> |
|---|---|
| Date | 2017-05-04 19:50 +0200 |
| Subject | [PATCH v3 1/6] spi: Document DT bindings for SPI controllers in slave mode |
| Message-ID | <tDt34-6JH-21@gated-at.bofh.it> |
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3:
- In SPI slave mode, represent the (single) slave device again as a
child of the controller node, which is now optional, and must be
named "slave" if present,
- Split slave node properties in master mode, slave mode, and common
properties,
v2:
- Do not create a child node in SPI slave mode. Instead, add an
"spi-slave" property, and put the mode properties in the controller
node.
---
Documentation/devicetree/bindings/spi/spi-bus.txt | 76 ++++++++++++++---------
1 file changed, 45 insertions(+), 31 deletions(-)
diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt
index 4b1d6e74c744fe96..1f6e86f787efd229 100644
--- a/Documentation/devicetree/bindings/spi/spi-bus.txt
+++ b/Documentation/devicetree/bindings/spi/spi-bus.txt
@@ -1,17 +1,23 @@
SPI (Serial Peripheral Interface) busses
-SPI busses can be described with a node for the SPI master device
-and a set of child nodes for each SPI slave on the bus. For this
-discussion, it is assumed that the system's SPI controller is in
-SPI master mode. This binding does not describe SPI controllers
-in slave mode.
+SPI busses can be described with a node for the SPI controller device
+and a set of child nodes for each SPI slave on the bus. The system's SPI
+controller may be described for use in SPI master mode or in SPI slave mode,
+but not for both at the same time.
-The SPI master node requires the following properties:
+The SPI controller node requires the following properties:
+- compatible - Name of SPI bus controller following generic names
+ recommended practice.
+
+In master mode, the SPI controller node requires the following additional
+properties:
- #address-cells - number of cells required to define a chip select
address on the SPI bus.
- #size-cells - should be zero.
-- compatible - name of SPI bus controller following generic names
- recommended practice.
+
+In slave mode, the SPI controller node requires one additional property:
+- spi-slave - Empty property.
+
No other properties are required in the SPI bus node. It is assumed
that a driver for an SPI bus device will understand that it is an SPI bus.
However, the binding does not attempt to define the specific method for
@@ -21,7 +27,7 @@ assumption that board specific platform code will be used to manage
chip selects. Individual drivers can define additional properties to
support describing the chip select layout.
-Optional properties:
+Optional properties (master mode only):
- cs-gpios - gpios chip select.
- num-cs - total number of chipselects.
@@ -41,28 +47,36 @@ cs1 : native
cs2 : &gpio1 1 0
cs3 : &gpio1 2 0
-SPI slave nodes must be children of the SPI master node and can
-contain the following properties.
-- reg - (required) chip select address of device.
-- compatible - (required) name of SPI device following generic names
- recommended practice.
-- spi-max-frequency - (required) Maximum SPI clocking speed of device in Hz.
-- spi-cpol - (optional) Empty property indicating device requires
- inverse clock polarity (CPOL) mode.
-- spi-cpha - (optional) Empty property indicating device requires
- shifted clock phase (CPHA) mode.
-- spi-cs-high - (optional) Empty property indicating device requires
- chip select active high.
-- spi-3wire - (optional) Empty property indicating device requires
- 3-wire mode.
-- spi-lsb-first - (optional) Empty property indicating device requires
- LSB first mode.
-- spi-tx-bus-width - (optional) The bus width (number of data wires) that is
- used for MOSI. Defaults to 1 if not present.
-- spi-rx-bus-width - (optional) The bus width (number of data wires) that is
- used for MISO. Defaults to 1 if not present.
-- spi-rx-delay-us - (optional) Microsecond delay after a read transfer.
-- spi-tx-delay-us - (optional) Microsecond delay after a write transfer.
+
+SPI slave nodes must be children of the SPI controller node.
+
+In master mode, one or more slave nodes (up to the number of chip selects) can
+be present. Required properties are:
+- compatible - Name of SPI device following generic names recommended
+ practice.
+- reg - Chip select address of device.
+- spi-max-frequency - Maximum SPI clocking speed of device in Hz.
+
+In slave mode, the (single) slave node is optional.
+If present, it must be called "slave". Required properties are:
+- compatible - Name of SPI device following generic names recommended
+ practice.
+
+All slave nodes can contain the following optional properties:
+- spi-cpol - Empty property indicating device requires inverse clock
+ polarity (CPOL) mode.
+- spi-cpha - Empty property indicating device requires shifted clock
+ phase (CPHA) mode.
+- spi-cs-high - Empty property indicating device requires chip select
+ active high.
+- spi-3wire - Empty property indicating device requires 3-wire mode.
+- spi-lsb-first - Empty property indicating device requires LSB first mode.
+- spi-tx-bus-width - The bus width (number of data wires) that is used for MOSI.
+ Defaults to 1 if not present.
+- spi-rx-bus-width - The bus width (number of data wires) that is used for MISO.
+ Defaults to 1 if not present.
+- spi-rx-delay-us - Microsecond delay after a read transfer.
+- spi-tx-delay-us - Microsecond delay after a write transfer.
Some SPI controllers and devices support Dual and Quad SPI transfer mode.
It allows data in the SPI system to be transferred using 2 wires (DUAL) or 4
--
2.7.4
[toc] | [next] | [standalone]
| From | Rob Herring <robh@kernel.org> |
|---|---|
| Date | 2017-05-08 19:00 +0200 |
| Subject | Re: [PATCH v3 1/6] spi: Document DT bindings for SPI controllers in slave mode |
| Message-ID | <tEUaS-6rk-5@gated-at.bofh.it> |
| In reply to | #1635935 |
On Thu, May 04, 2017 at 07:45:46PM +0200, Geert Uytterhoeven wrote: > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> > --- > v3: > - In SPI slave mode, represent the (single) slave device again as a > child of the controller node, which is now optional, and must be > named "slave" if present, > - Split slave node properties in master mode, slave mode, and common > properties, > > v2: > - Do not create a child node in SPI slave mode. Instead, add an > "spi-slave" property, and put the mode properties in the controller > node. > --- > Documentation/devicetree/bindings/spi/spi-bus.txt | 76 ++++++++++++++--------- > 1 file changed, 45 insertions(+), 31 deletions(-) > > diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt > index 4b1d6e74c744fe96..1f6e86f787efd229 100644 > --- a/Documentation/devicetree/bindings/spi/spi-bus.txt > +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt > @@ -1,17 +1,23 @@ > SPI (Serial Peripheral Interface) busses > > -SPI busses can be described with a node for the SPI master device > -and a set of child nodes for each SPI slave on the bus. For this > -discussion, it is assumed that the system's SPI controller is in > -SPI master mode. This binding does not describe SPI controllers > -in slave mode. > +SPI busses can be described with a node for the SPI controller device > +and a set of child nodes for each SPI slave on the bus. The system's SPI > +controller may be described for use in SPI master mode or in SPI slave mode, > +but not for both at the same time. > > -The SPI master node requires the following properties: > +The SPI controller node requires the following properties: > +- compatible - Name of SPI bus controller following generic names > + recommended practice. > + > +In master mode, the SPI controller node requires the following additional > +properties: > - #address-cells - number of cells required to define a chip select > address on the SPI bus. > - #size-cells - should be zero. > -- compatible - name of SPI bus controller following generic names > - recommended practice. > + > +In slave mode, the SPI controller node requires one additional property: > +- spi-slave - Empty property. Do we still need this if we have a child node called "slave". Otherwise, Reviewed-by: Rob Herring <robh@kernel.org>
[toc] | [prev] | [next] | [standalone]
| From | Geert Uytterhoeven <geert@linux-m68k.org> |
|---|---|
| Date | 2017-05-08 22:50 +0200 |
| Subject | Re: [PATCH v3 1/6] spi: Document DT bindings for SPI controllers in slave mode |
| Message-ID | <tEXLr-ls-3@gated-at.bofh.it> |
| In reply to | #1637589 |
Hi Rob,
On Mon, May 8, 2017 at 6:55 PM, Rob Herring <robh@kernel.org> wrote:
> On Thu, May 04, 2017 at 07:45:46PM +0200, Geert Uytterhoeven wrote:
>> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
>> ---
>> v3:
>> - In SPI slave mode, represent the (single) slave device again as a
>> child of the controller node, which is now optional, and must be
>> named "slave" if present,
>> - Split slave node properties in master mode, slave mode, and common
>> properties,
>>
>> v2:
>> - Do not create a child node in SPI slave mode. Instead, add an
>> "spi-slave" property, and put the mode properties in the controller
>> node.
>> --- a/Documentation/devicetree/bindings/spi/spi-bus.txt
>> +++ b/Documentation/devicetree/bindings/spi/spi-bus.txt
>> +In slave mode, the SPI controller node requires one additional property:
>> +- spi-slave - Empty property.
>
> Do we still need this if we have a child node called "slave".
Yes, as the child node called "slave" is optional.
In that case, configuration of the slave protocol is done through sysfs, but
that is Linux-specific and thus doesn't belong in the DT bindings.
> Otherwise,
>
> Reviewed-by: Rob Herring <robh@kernel.org>
Thank you!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web