[PATCH v5 2/9] spi: dt-bindings: add spi-{tx,rx}-lane-map properties

David Lechner
2026-01-12T17:46:31Z

Add spi-tx-lane-map and spi-rx-lane-map properties to the SPI peripheral
device tree binding. These properties allow specifying the mapping of
peripheral data lanes to controller data lanes. This is needed e.g. when
some lanes are skipped on the controller side so that the controller
can correctly route data to/from the peripheral.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: David Lechner <dlechner@baylibre.com>
---

v5 changes:
- Use SDI/SDO terminology in descriptions. (Fixes incorrect use of TX/RX
when describing the peripheral lanes.)

v4 changes:
- This replaces the data-lanes property from the previous revision. Now
there are separate properties for tx and rx lane maps. And instead of
being the primary property for determining the number of lanes, this
is only needed in special cases where the mapping is non-trivial.
---
.../devicetree/bindings/spi/spi-peripheral-props.yaml | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
index 59ddead7da14..880a9f624566 100644
--- a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml
@@ -75,6 +75,13 @@ properties:
enum: [0, 1, 2, 4, 8]
default: [1]

+ spi-rx-lane-map:
+ description: Mapping of peripheral SDO lanes to controller SDI lanes.
+ Each index in the array represents a peripheral SDO lane, and the value
+ at that index represents the corresponding controller SDI lane.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ default: [0, 1, 2, 3, 4, 5, 6, 7]
+
spi-rx-delay-us:
description:
Delay, in microseconds, after a read transfer.
@@ -99,6 +106,13 @@ properties:
enum: [0, 1, 2, 4, 8]
default: [1]

+ spi-tx-lane-map:
+ description: Mapping of peripheral SDI lanes to controller SDO lanes.
+ Each index in the array represents a peripheral SDI lane, and the value
+ at that index represents the corresponding controller SDO lane.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ default: [0, 1, 2, 3, 4, 5, 6, 7]
+
spi-tx-delay-us:
description:
Delay, in microseconds, after a write transfer.

--
2.43.0