[PATCH v2 0/9] spi: zynqmp-gqspi: Support multiple buses and add GPIO support

From: Sean Anderson
Date: Mon Jun 16 2025 - 18:01:24 EST


This device really has two SPI buses but they are currently determined
by the slave's CS. Decouple bus selection from CS, and add support for
GPIO chipselects. This allows adding arbitrary devices on either bus.

This version does the bus selction using a spi-buses property in
slaves's node, as opposed to having separate nodes for the upper and
lower buses. This should be backwards compatible with existing bindings,
and could allow supporting "parallel" memories in the future (identical
flashes on both buses controlled in lockstep).

Changes in v2:
- Add spi-buses property
- Update spi-zynqmp-qspi.yaml with new binding style
- Support multi-bus controllers
- Add flag to determine default bus
- Support multiple buses with spi-buses instead of explicit
upper/lower/merged buses

David Lechner (2):
dt-bindings: spi: Add spi-buses property
spi: Support multi-bus controllers

Sean Anderson (7):
dt-bindings: spi: zynqmp-qspi: Add example dual upper/lower bus
spi: Add flag to determine default bus
spi: zynqmp-gqspi: Support multiple buses
spi: zynqmp-gqspi: Pass speed directly to config_op
spi: zynqmp-gqspi: Configure SPI mode dynamically
spi: zynqmp-gqspi: Support GPIO chip selects
ARM64: xilinx: zynqmp: Add spi-buses property

.../bindings/spi/spi-peripheral-props.yaml | 10 ++
.../bindings/spi/spi-zynqmp-qspi.yaml | 22 ++-
.../boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 1 +
.../boot/dts/xilinx/zynqmp-zc1254-revA.dts | 1 +
.../dts/xilinx/zynqmp-zc1751-xm015-dc1.dts | 1 +
.../dts/xilinx/zynqmp-zc1751-xm018-dc4.dts | 1 +
.../boot/dts/xilinx/zynqmp-zcu102-revA.dts | 1 +
.../boot/dts/xilinx/zynqmp-zcu104-revA.dts | 1 +
.../boot/dts/xilinx/zynqmp-zcu104-revC.dts | 1 +
.../boot/dts/xilinx/zynqmp-zcu106-revA.dts | 1 +
.../boot/dts/xilinx/zynqmp-zcu111-revA.dts | 1 +
.../boot/dts/xilinx/zynqmp-zcu1275-revA.dts | 1 +
drivers/spi/spi-zynqmp-gqspi.c | 155 ++++++++++++++----
drivers/spi/spi.c | 31 +++-
include/linux/spi/spi.h | 15 ++
15 files changed, 208 insertions(+), 35 deletions(-)

--
2.35.1.1320.gc452695387.dirty