From: Sean Anderson <sean.anderson@linux.dev>
To: Mark Brown <broonie@kernel.org>,
Michal Simek <michal.simek@amd.com>,
linux-spi@vger.kernel.org
Cc: Jinjie Ruan <ruanjinjie@huawei.com>,
linux-arm-kernel@lists.infradead.org,
Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>,
linux-kernel@vger.kernel.org,
Miquel Raynal <miquel.raynal@bootlin.com>,
Sean Anderson <sean.anderson@linux.dev>,
Conor Dooley <conor+dt@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Rob Herring <robh@kernel.org>,
devicetree@vger.kernel.org
Subject: [PATCH 7/7] ARM64: xilinx: zynqmp: Convert to split QSPI bus
Date: Thu, 16 Jan 2025 18:21:17 -0500 [thread overview]
Message-ID: <20250116232118.2694169-8-sean.anderson@linux.dev> (raw)
In-Reply-To: <20250116232118.2694169-1-sean.anderson@linux.dev>
Convert the ZynqMP devicetrees to use the split QSPI bus binding. This
is pretty simple, since all boards use only CS0.
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---
arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts | 5 ++++-
.../boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts | 5 ++++-
.../boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts | 5 ++++-
.../arm64/boot/dts/xilinx/zynqmp-zcu1275-revA.dts | 5 ++++-
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 15 +++++++++++----
12 files changed, 55 insertions(+), 15 deletions(-)
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
index bfa7ea6b9224..64b90de5b4ce 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-sm-k26-revA.dts
@@ -35,7 +35,7 @@ aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
spi1 = &spi0;
spi2 = &spi1;
usb0 = &usb0;
@@ -129,6 +129,9 @@ mux {
&qspi { /* MIO 0-5 - U143 */
status = "okay";
+};
+
+&qspi_lower {
spi_flash: flash@0 { /* MT25QU512A */
compatible = "jedec,spi-nor"; /* 64MB */
reg = <0>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts
index 04079d1704f1..8927e0463cf4 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts
@@ -19,7 +19,7 @@ / {
aliases {
serial0 = &uart0;
serial1 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
};
chosen {
@@ -39,6 +39,9 @@ &dcc {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts
index 3dec57cf18be..da07b58706f0 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts
@@ -20,7 +20,7 @@ / {
aliases {
serial0 = &uart0;
serial1 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
};
chosen {
@@ -40,6 +40,9 @@ &dcc {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts
index 6aff22d43361..ec570d68a4ae 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts
@@ -27,7 +27,7 @@ aliases {
mmc1 = &sdhci1;
rtc0 = &rtc;
serial0 = &uart0;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
usb0 = &usb0;
};
@@ -354,6 +354,9 @@ &psgtr {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* Micron MT25QU512ABB8ESF */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts
index 6ec1d9813973..e1cfdc0db51e 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts
@@ -26,7 +26,7 @@ aliases {
rtc0 = &rtc;
serial0 = &uart0;
serial1 = &uart1;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
};
chosen {
@@ -172,6 +172,9 @@ &i2c1 {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* 32MB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
index 7e26489a1539..18e323e2aad7 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
@@ -31,7 +31,7 @@ aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
usb0 = &usb0;
};
@@ -953,6 +953,9 @@ &psgtr {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* 16MB + 16MB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
index eb2090673ec1..026053c4116a 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
@@ -29,7 +29,7 @@ aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
usb0 = &usb0;
};
@@ -439,6 +439,9 @@ &psgtr {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* n25q512a 128MiB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
index 4694d0a841f1..da56e532dc2b 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
@@ -29,7 +29,7 @@ aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
usb0 = &usb0;
};
@@ -451,6 +451,9 @@ &psgtr {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* n25q512a 128MiB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
index 7beedd730f94..8dd73b035969 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
@@ -31,7 +31,7 @@ aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
usb0 = &usb0;
};
@@ -959,6 +959,9 @@ &psgtr {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* 16MB + 16MB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts
index b67ff7ecf3c3..9ed7972c3b4e 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts
@@ -30,7 +30,7 @@ aliases {
rtc0 = &rtc;
serial0 = &uart0;
serial1 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
usb0 = &usb0;
};
@@ -789,6 +789,9 @@ &psgtr {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor"; /* 16MB + 16MB */
#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu1275-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu1275-revA.dts
index a38c2baeba6c..99d007b3bfae 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu1275-revA.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu1275-revA.dts
@@ -20,7 +20,7 @@ / {
aliases {
serial0 = &uart0;
serial1 = &dcc;
- spi0 = &qspi;
+ spi0 = &qspi_lower;
};
chosen {
@@ -44,6 +44,9 @@ &gpio {
&qspi {
status = "okay";
+};
+
+&qspi_lower {
flash@0 {
compatible = "m25p80", "jedec,spi-nor";
reg = <0x0>;
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 5dac0542a48d..470e0b90382f 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -972,21 +972,28 @@ pcie_intc: legacy-interrupt-controller {
};
};
- qspi: spi@ff0f0000 {
+ qspi: spi-controller@ff0f0000 {
bootph-all;
compatible = "xlnx,zynqmp-qspi-1.0";
status = "disabled";
clock-names = "ref_clk", "pclk";
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&gic>;
- num-cs = <1>;
reg = <0x0 0xff0f0000 0x0 0x1000>,
<0x0 0xc0000000 0x0 0x8000000>;
- #address-cells = <1>;
- #size-cells = <0>;
/* iommus = <&smmu 0x873>; */
power-domains = <&zynqmp_firmware PD_QSPI>;
resets = <&zynqmp_reset ZYNQMP_RESET_QSPI>;
+
+ qspi_lower: spi-lower {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ qspi_upper: spi-upper {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
};
psgtr: phy@fd400000 {
--
2.35.1.1320.gc452695387.dirty
next prev parent reply other threads:[~2025-01-16 23:29 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-16 23:21 [PATCH 0/7] spi: zynqmp-gqspi: Split the bus and add GPIO support Sean Anderson
2025-01-16 23:21 ` [PATCH 1/7] dt-bindings: spi: zynqmp-qspi: Split the bus Sean Anderson
2025-01-22 0:16 ` David Lechner
2025-01-23 16:24 ` Sean Anderson
2025-01-23 21:59 ` David Lechner
2025-01-23 22:37 ` Sean Anderson
2025-01-24 13:35 ` Mark Brown
2025-06-12 23:44 ` Sean Anderson
2025-06-13 14:20 ` David Lechner
2025-06-13 15:57 ` Sean Anderson
2025-06-13 16:44 ` Sean Anderson
2025-06-13 16:53 ` David Lechner
2025-01-16 23:21 ` [PATCH 2/7] spi: zynqmp-gqspi: Pass speed/mode directly to config_op Sean Anderson
2025-01-16 23:21 ` [PATCH 3/7] spi: zynqmp-gqspi: Configure SPI mode dynamically Sean Anderson
2025-01-16 23:21 ` [PATCH 4/7] spi: zynqmp-gqspi: Refactor out controller initialization Sean Anderson
2025-01-16 23:21 ` [PATCH 5/7] spi: zynqmp-gqspi: Split the bus Sean Anderson
2025-01-21 13:19 ` Mahapatra, Amit Kumar
2025-01-21 15:53 ` Sean Anderson
2025-01-21 16:01 ` Mark Brown
2025-01-21 16:17 ` Sean Anderson
2025-01-16 23:21 ` [PATCH 6/7] spi: zynqmp-gqspi: Support GPIO chip selects Sean Anderson
2025-01-16 23:21 ` Sean Anderson [this message]
2025-01-16 23:24 ` [PATCH 0/7] spi: zynqmp-gqspi: Split the bus and add GPIO support Sean Anderson
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=20250116232118.2694169-8-sean.anderson@linux.dev \
--to=sean.anderson@linux.dev \
--cc=amit.kumar-mahapatra@amd.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=michal.simek@amd.com \
--cc=miquel.raynal@bootlin.com \
--cc=robh@kernel.org \
--cc=ruanjinjie@huawei.com \
/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.