Skip to contentSkip to conversation

arm64: dts: stratix10: Add QSPI support for Stratix10

PATCH Superseded [email protected] 2 participants 3 messages May 11, 2018 – May 15, 2018

Subsystems (2)

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 arm64: dts: stratix10: Add QSPI support for Stratix10

From: Thor Thayer <[email protected]>

Add qspi_clock
The qspi_clk frequency is updated by U-Boot before starting Linux.
Add QSPI interface node.
Add QSPI flash memory child node.
Setup the QSPI memory in 2 partitions.

---
v2 s/_/-/ in qspi-clk
rename flash node.
use partition child node notation

---
 arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi  | 22 ++++++++++++++
 .../boot/dts/altera/socfpga_stratix10_socdk.dts    | 35 ++++++++++++++++++++++
 2 files changed, 57 insertions(+)
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +22 -0
index e6b059378dc0..bac01b0b7907 100644
@@ -119,6 +119,12 @@
 				#clock-cells = <0>;
 				compatible = "fixed-clock";
 			};
+
+			qspi_clk: qspi-clk {
+				#clock-cells = <0>;
+				compatible = "fixed-clock";
+				clock-frequency = <200000000>;
+			};
 		};
 
 		gmac0: ethernet@ff800000 {
@@ -466,5 +472,21 @@
 				interrupts = <16 4>, <48 4>;
 			};
 		};
+
+		qspi: spi@ff8d2000 {
+			compatible = "cdns,qspi-nor";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xff8d2000 0x100>,
+			      <0xff900000 0x100000>;
+			interrupts = <0 3 4>;
+			cdns,fifo-depth = <128>;
+			cdns,fifo-width = <4>;
+			cdns,trigger-address = <0x00000000>;
+			clocks = <&qspi_clk>;
+			bus-num = <1>;
+
+			status = "disabled";
+		};
 	};
 };
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts +35 -0
index f9b1ef12db48..96542150654b 100644
@@ -147,3 +147,38 @@
 		reg = <0x68>;
 	};
 };
+
+&qspi {
+	flash@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "n25q00aa";
+		reg = <0>;
+		spi-max-frequency = <50000000>;
+
+		m25p,fast-read;
+		cdns,page-size = <256>;
+		cdns,block-size = <16>;
+		cdns,read-delay = <1>;
+		cdns,tshsl-ns = <50>;
+		cdns,tsd2d-ns = <50>;
+		cdns,tchsh-ns = <4>;
+		cdns,tslch-ns = <4>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			qspi_boot: partition@0 {
+				label = "Boot and fpga data";
+				reg = <0x0 0x4000000>;
+			};
+
+			qspi_rootfs: partition@4000000 {
+				label = "Root Filesystem - JFFS2";
+				reg = <0x4000000 0x4000000>;
+			};
+		};
+	};
+};
Signature · 1 line
2.7.4
maintainer
#1 lore raw
Quoted 42 lines · thor.thayer at linux.intel.com

From: Thor Thayer <[email protected]>

Add qspi_clock
The qspi_clk frequency is updated by U-Boot before starting Linux.
Add QSPI interface node.
Add QSPI flash memory child node.
Setup the QSPI memory in 2 partitions.

---
v2 s/_/-/ in qspi-clk
rename flash node.
use partition child node notation

---
 arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi  | 22 ++++++++++++++
 .../boot/dts/altera/socfpga_stratix10_socdk.dts    | 35 ++++++++++++++++++++++
 2 files changed, 57 insertions(+)
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +9 -0
index e6b059378dc0..bac01b0b7907 100644
@@ -119,6 +119,12 @@
 				#clock-cells = <0>;
 				compatible = "fixed-clock";
 			};
+
+			qspi_clk: qspi-clk {
+				#clock-cells = <0>;
+				compatible = "fixed-clock";
+				clock-frequency = <200000000>;
+			};
 		};
 
 		gmac0: ethernet at ff800000 {
@@ -466,5 +472,21 @@
 				interrupts = <16 4>, <48 4>;
 			};
 		};
+
+		qspi: spi at ff8d2000 {
+			compatible = "cdns,qspi-nor";

arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi line 487

Quoted 10 lines
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +10 -0
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xff8d2000 0x100>,
+			      <0xff900000 0x100000>;
+			interrupts = <0 3 4>;
+			cdns,fifo-depth = <128>;
+			cdns,fifo-width = <4>;
+			cdns,trigger-address = <0x00000000>;
+			clocks = <&qspi_clk>;
+			bus-num = <1>;

I don't you need "bus-num" anymore right? I don't see it getting used anywhere in the driver.

Dinh

#2 lore raw
Quoted 30 lines · Dinh Nguyen
Quoted 14 lines · On 05/11/2018 11:10 AM, [email protected] wrote:

From: Thor Thayer <[email protected]>

Add qspi_clock
The qspi_clk frequency is updated by U-Boot before starting Linux.
Add QSPI interface node.
Add QSPI flash memory child node.
Setup the QSPI memory in 2 partitions.

---
v2 s/_/-/ in qspi-clk
rename flash node.
use partition child node notation<snip>>> + qspi: spi@ff8d2000 {

arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +1 -0
+			compatible = "cdns,qspi-nor";

arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi line 487

Quoted 10 lines
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi +10 -0
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xff8d2000 0x100>,
+			      <0xff900000 0x100000>;
+			interrupts = <0 3 4>;
+			cdns,fifo-depth = <128>;
+			cdns,fifo-width = <4>;
+			cdns,trigger-address = <0x00000000>;
+			clocks = <&qspi_clk>;
+			bus-num = <1>;

I don't you need "bus-num" anymore right? I don't see it getting used anywhere in the driver.

Quoted 2 lines

Dinh

Yes, I missed that holdover. Thanks, I'll correct that.