All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] spi: dt-bindings: clarify CS behavior for spi-cs-high and gpio descriptors
@ 2020-12-09  9:57 H. Nikolaus Schaller
  2020-12-09 17:36 ` Sven Van Asbroeck
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: H. Nikolaus Schaller @ 2020-12-09  9:57 UTC (permalink / raw)
  To: Mark Brown, Rob Herring, linus.walleij
  Cc: linux-spi, linux-gpio, devicetree, linux-kernel, letux-kernel,
	kernel, Maxime Ripard, thesven73, lukas, laurent.pinchart,
	andreas, H. Nikolaus Schaller

Behavior of CS signal in combination of spi-cs-high and gpio descriptors
is not clearly defined and documented. So clarify the documentation

Cc: linus.walleij@linaro.org
Cc: linux-gpio@vger.kernel.org
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
 .../bindings/spi/spi-controller.yaml          | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/Documentation/devicetree/bindings/spi/spi-controller.yaml b/Documentation/devicetree/bindings/spi/spi-controller.yaml
index 1b56d5e40f1fc..5f505810104dd 100644
--- a/Documentation/devicetree/bindings/spi/spi-controller.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-controller.yaml
@@ -42,6 +42,33 @@ properties:
         cs2 : &gpio1 1 0
         cs3 : &gpio1 2 0
 
+      The second flag of a gpio descriptor can be GPIO_ACTIVE_HIGH (0)
+      or GPIO_ACTIVE_LOW(1). Legacy device trees often use 0.
+
+      There is a special rule set for combining the second flag of an
+      cs-gpio with the optional spi-cs-high flag for SPI slaves.
+
+      Each table entry defines how the CS pin is to be physically
+      driven (not considering potential gpio inversions by pinmux):
+
+      device node     | cs-gpio       | CS pin state active | Note
+      ================+===============+=====================+=====
+      spi-cs-high     | -             | H                   |
+      -               | -             | L                   |
+      spi-cs-high     | ACTIVE_HIGH   | H                   |
+      -               | ACTIVE_HIGH   | L                   | 1
+      spi-cs-high     | ACTIVE_LOW    | H                   | 2
+      -               | ACTIVE_LOW    | L                   |
+
+      Notes:
+      1) Should print a warning about polarity inversion.
+         Here it would be wise to avoid and define the gpio as
+         ACTIVE_LOW.
+      2) Should print a warning about polarity inversion
+         because ACTIVE_LOW is overridden by spi-cs-high.
+         Should be generally avoided and be replaced by
+         spi-cs-high + ACTIVE_HIGH.
+
   num-cs:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
-- 
2.26.2


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

end of thread, other threads:[~2020-12-11 19:32 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-09  9:57 [PATCH] spi: dt-bindings: clarify CS behavior for spi-cs-high and gpio descriptors H. Nikolaus Schaller
2020-12-09 17:36 ` Sven Van Asbroeck
2020-12-09 18:13   ` H. Nikolaus Schaller
2020-12-09 19:04     ` Sven Van Asbroeck
2020-12-09 19:31       ` H. Nikolaus Schaller
2020-12-09 20:01       ` Andreas Kemnade
2020-12-09 20:05         ` H. Nikolaus Schaller
2020-12-09 21:28           ` Sven Van Asbroeck
2020-12-09 22:04             ` H. Nikolaus Schaller
2020-12-11 13:18   ` Mark Brown
2020-12-11 13:26     ` Sven Van Asbroeck
2020-12-11  8:12 ` Linus Walleij
2020-12-11 17:51 ` Mark Brown

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.