* [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver
[not found] <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de>
@ 2018-05-30 13:14 ` Frieder Schrempf
2018-05-30 15:06 ` Boris Brezillon
2018-05-30 13:14 ` [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties Frieder Schrempf
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Frieder Schrempf @ 2018-05-30 13:14 UTC (permalink / raw)
To: linux-mtd, boris.brezillon, linux-spi
Cc: dwmw2, computersforpeace, marek.vasut, richard, miquel.raynal,
broonie, david.wolfe, fabio.estevam, prabhakar.kushwaha,
yogeshnarayan.gaur, han.xu, Frieder Schrempf, Rob Herring,
Mark Rutland, devicetree, linux-kernel
Move the documentation of the old SPI NOR driver to the place of the new
SPI memory interface based driver and adjust the content to reflect the
new drivers settings.
Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
---
.../devicetree/bindings/mtd/fsl-quadspi.txt | 65 ------------------
.../devicetree/bindings/spi/spi-fsl-qspi.txt | 69 ++++++++++++++++++++
2 files changed, 69 insertions(+), 65 deletions(-)
diff --git a/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt b/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
deleted file mode 100644
index 483e9cf..0000000
--- a/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-* Freescale Quad Serial Peripheral Interface(QuadSPI)
-
-Required properties:
- - compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
- "fsl,imx7d-qspi", "fsl,imx6ul-qspi",
- "fsl,ls1021a-qspi"
- or
- "fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi",
- "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
- - reg : the first contains the register location and length,
- the second contains the memory mapping address and length
- - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
- - interrupts : Should contain the interrupt for the device
- - clocks : The clocks needed by the QuadSPI controller
- - clock-names : Should contain the name of the clocks: "qspi_en" and "qspi".
-
-Optional properties:
- - fsl,qspi-has-second-chip: The controller has two buses, bus A and bus B.
- Each bus can be connected with two NOR flashes.
- Most of the time, each bus only has one NOR flash
- connected, this is the default case.
- But if there are two NOR flashes connected to the
- bus, you should enable this property.
- (Please check the board's schematic.)
- - big-endian : That means the IP register is big endian
-
-Example:
-
-qspi0: quadspi@40044000 {
- compatible = "fsl,vf610-qspi";
- reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
- reg-names = "QuadSPI", "QuadSPI-memory";
- interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clks VF610_CLK_QSPI0_EN>,
- <&clks VF610_CLK_QSPI0>;
- clock-names = "qspi_en", "qspi";
-
- flash0: s25fl128s@0 {
- ....
- };
-};
-
-Example showing the usage of two SPI NOR devices:
-
-&qspi2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_qspi2>;
- status = "okay";
-
- flash0: n25q256a@0 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "micron,n25q256a", "jedec,spi-nor";
- spi-max-frequency = <29000000>;
- reg = <0>;
- };
-
- flash1: n25q256a@1 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "micron,n25q256a", "jedec,spi-nor";
- spi-max-frequency = <29000000>;
- reg = <1>;
- };
-};
diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt
new file mode 100644
index 0000000..0ee9cd8
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt
@@ -0,0 +1,69 @@
+* Freescale Quad Serial Peripheral Interface(QuadSPI)
+
+Required properties:
+ - compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
+ "fsl,imx7d-qspi", "fsl,imx6ul-qspi",
+ "fsl,ls1021a-qspi", "fsl,ls2080a-qspi"
+ or
+ "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
+ - reg : the first contains the register location and length,
+ the second contains the memory mapping address and length
+ - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
+ - interrupts : Should contain the interrupt for the device
+ - clocks : The clocks needed by the QuadSPI controller
+ - clock-names : Should contain the name of the clocks: "qspi_en" and "qspi".
+
+Optional properties:
+ - big-endian : That means the IP registers format is big endian
+
+Required SPI slave node properties:
+ - reg: There are two buses (A and B) with two chip selects each.
+ This encodes to which bus and CS the flash is connected:
+ <0>: Bus A, CS 0
+ <1>: Bus A, CS 1
+ <2>: Bus B, CS 0
+ <3>: Bus B, CS 1
+
+Example:
+
+qspi0: quadspi@40044000 {
+ compatible = "fsl,vf610-qspi";
+ reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
+ reg-names = "QuadSPI", "QuadSPI-memory";
+ interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks VF610_CLK_QSPI0_EN>,
+ <&clks VF610_CLK_QSPI0>;
+ clock-names = "qspi_en", "qspi";
+
+ flash0: s25fl128s@0 {
+ ....
+ };
+};
+
+Example showing the usage of two SPI NOR devices on bus A:
+
+&qspi2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_qspi2>;
+ status = "okay";
+
+ flash0: n25q256a@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "micron,n25q256a", "jedec,spi-nor";
+ spi-max-frequency = <29000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
+ reg = <0>;
+ };
+
+ flash1: n25q256a@1 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "micron,n25q256a", "jedec,spi-nor";
+ spi-max-frequency = <29000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
+ reg = <1>;
+ };
+};
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties
[not found] <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de>
2018-05-30 13:14 ` [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver Frieder Schrempf
@ 2018-05-30 13:14 ` Frieder Schrempf
2018-05-30 15:10 ` Boris Brezillon
2018-05-30 13:14 ` [PATCH 06/11] arm64: " Frieder Schrempf
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Frieder Schrempf @ 2018-05-30 13:14 UTC (permalink / raw)
To: linux-mtd, boris.brezillon, linux-spi
Cc: dwmw2, computersforpeace, marek.vasut, richard, miquel.raynal,
broonie, david.wolfe, fabio.estevam, prabhakar.kushwaha,
yogeshnarayan.gaur, han.xu, Frieder Schrempf, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Rob Herring, Mark Rutland,
linux-arm-kernel, devicetree, linux-kernel
The FSL QSPI driver was moved to the SPI framework and it now
acts as a SPI controller. Therefore the subnodes need to set
spi-[rx/tx]-bus-width = <4>, so quad mode is used just as before.
Also the properties 'bus-num', 'fsl,spi-num-chipselects' and
'fsl,spi-flash-chipselects' were never read by the driver and
can be removed.
The 'reg' properties are adjusted to reflect the what bus and
chipselect the flash is connected to, as the new driver needs
this information.
The property 'fsl,qspi-has-second-chip' is not needed anymore
and will be removed after the old driver was disabled to avoid
breaking ls1021a-moxa-uc-8410a.dts.
Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
---
arch/arm/boot/dts/imx6sx-sdb-reva.dts | 8 ++++++--
arch/arm/boot/dts/imx6sx-sdb.dts | 8 ++++++--
arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 ++
arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | 5 ++---
4 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/arch/arm/boot/dts/imx6sx-sdb-reva.dts b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
index e3533e7..1a6f680 100644
--- a/arch/arm/boot/dts/imx6sx-sdb-reva.dts
+++ b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
@@ -131,13 +131,17 @@
#size-cells = <1>;
compatible = "spansion,s25fl128s", "jedec,spi-nor";
spi-max-frequency = <66000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
};
- flash1: s25fl128s@1 {
- reg = <1>;
+ flash1: s25fl128s@2 {
+ reg = <2>;
#address-cells = <1>;
#size-cells = <1>;
compatible = "spansion,s25fl128s", "jedec,spi-nor";
spi-max-frequency = <66000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
};
};
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts
index 6dd9beb..9acfda8 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dts
+++ b/arch/arm/boot/dts/imx6sx-sdb.dts
@@ -117,15 +117,19 @@
#size-cells = <1>;
compatible = "micron,n25q256a", "jedec,spi-nor";
spi-max-frequency = <29000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <0>;
};
- flash1: n25q256a@1 {
+ flash1: n25q256a@2 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "micron,n25q256a", "jedec,spi-nor";
spi-max-frequency = <29000000>;
- reg = <1>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
+ reg = <2>;
};
};
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi b/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
index 32a0723..c2c9a2a 100644
--- a/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
+++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
@@ -176,6 +176,8 @@
#size-cells = <1>;
compatible = "micron,n25q256a";
spi-max-frequency = <29000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <0>;
};
};
diff --git a/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts b/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts
index d01f64b..6a83f30 100644
--- a/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts
+++ b/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts
@@ -203,9 +203,6 @@
};
&qspi {
- bus-num = <0>;
- fsl,spi-num-chipselects = <2>;
- fsl,spi-flash-chipselects = <0>;
fsl,qspi-has-second-chip;
status = "okay";
@@ -214,6 +211,8 @@
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <20000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <0>;
partitions@0 {
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 06/11] arm64: dts: Reflect change of FSL QSPI driver and remove unused properties
[not found] <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de>
2018-05-30 13:14 ` [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver Frieder Schrempf
2018-05-30 13:14 ` [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties Frieder Schrempf
@ 2018-05-30 13:14 ` Frieder Schrempf
2018-05-30 13:14 ` [PATCH 09/11] ARM: dts: ls1021a: Remove fsl,qspi-has-second-chip as it is not used Frieder Schrempf
2018-05-30 13:14 ` [PATCH 10/11] ARM64: dts: ls1046a: Remove fsl, qspi-has-second-chip " Frieder Schrempf
4 siblings, 0 replies; 9+ messages in thread
From: Frieder Schrempf @ 2018-05-30 13:14 UTC (permalink / raw)
To: linux-mtd, boris.brezillon, linux-spi
Cc: dwmw2, computersforpeace, marek.vasut, richard, miquel.raynal,
broonie, david.wolfe, fabio.estevam, prabhakar.kushwaha,
yogeshnarayan.gaur, han.xu, Frieder Schrempf, Rob Herring,
Mark Rutland, Catalin Marinas, Will Deacon, Shawn Guo, devicetree,
linux-arm-kernel, linux-kernel
The FSL QSPI driver was moved to the SPI framework and it now
acts as a SPI controller. Therefore the subnodes need to set
spi-[rx/tx]-bus-width = <4>, so quad mode is used just as before.
Also the properties 'num-cs' and 'bus-num' were never read by the
driver and can be removed.
The property 'fsl,qspi-has-second-chip' is not needed anymore
and will be removed after the old driver was disabled to avoid
breaking fsl-ls1046a-rdb.dts.
Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
---
arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts | 3 ++-
arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts | 4 ++--
arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts | 6 ++++--
arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 4 ++++
4 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
index 6341281..31e7b31 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
@@ -170,7 +170,6 @@
};
&qspi {
- bus-num = <0>;
status = "okay";
qflash0: s25fl128s@0 {
@@ -178,6 +177,8 @@
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <20000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
index 434383b..dc10105 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
@@ -198,8 +198,6 @@
};
&qspi {
- num-cs = <2>;
- bus-num = <0>;
status = "okay";
qflash0: s25fl128s@0 {
@@ -207,6 +205,8 @@
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <20000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
index 5dc2782..1848c33 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
@@ -136,8 +136,6 @@
};
&qspi {
- num-cs = <2>;
- bus-num = <0>;
status = "okay";
qflash0: s25fs512s@0 {
@@ -145,6 +143,8 @@
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <20000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <0>;
};
@@ -153,6 +153,8 @@
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <20000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <1>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
index 1de6188..fc62ed9 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
@@ -170,6 +170,8 @@
#size-cells = <1>;
compatible = "st,m25p80";
spi-max-frequency = <20000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <0>;
};
flash2: s25fl256s1@2 {
@@ -177,6 +179,8 @@
#size-cells = <1>;
compatible = "st,m25p80";
spi-max-frequency = <20000000>;
+ spi-rx-bus-width = <4>;
+ spi-tx-bus-width = <4>;
reg = <2>;
};
};
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 09/11] ARM: dts: ls1021a: Remove fsl,qspi-has-second-chip as it is not used
[not found] <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de>
` (2 preceding siblings ...)
2018-05-30 13:14 ` [PATCH 06/11] arm64: " Frieder Schrempf
@ 2018-05-30 13:14 ` Frieder Schrempf
2018-05-30 13:14 ` [PATCH 10/11] ARM64: dts: ls1046a: Remove fsl, qspi-has-second-chip " Frieder Schrempf
4 siblings, 0 replies; 9+ messages in thread
From: Frieder Schrempf @ 2018-05-30 13:14 UTC (permalink / raw)
To: linux-mtd, boris.brezillon, linux-spi
Cc: dwmw2, computersforpeace, marek.vasut, richard, miquel.raynal,
broonie, david.wolfe, fabio.estevam, prabhakar.kushwaha,
yogeshnarayan.gaur, han.xu, Frieder Schrempf, Rob Herring,
Mark Rutland, devicetree, linux-kernel
After switching to the new FSL QSPI driver the property
'fsl,qspi-has-second-chip' is not needed anymore.
The driver now uses the 'reg' property to determine the bus and
the chipselect.
Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
---
arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts b/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts
index 6a83f30..d3a1a73 100644
--- a/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts
+++ b/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts
@@ -203,7 +203,6 @@
};
&qspi {
- fsl,qspi-has-second-chip;
status = "okay";
flash: flash@0 {
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 10/11] ARM64: dts: ls1046a: Remove fsl, qspi-has-second-chip as it is not used
[not found] <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de>
` (3 preceding siblings ...)
2018-05-30 13:14 ` [PATCH 09/11] ARM: dts: ls1021a: Remove fsl,qspi-has-second-chip as it is not used Frieder Schrempf
@ 2018-05-30 13:14 ` Frieder Schrempf
4 siblings, 0 replies; 9+ messages in thread
From: Frieder Schrempf @ 2018-05-30 13:14 UTC (permalink / raw)
To: linux-mtd, boris.brezillon, linux-spi
Cc: Mark Rutland, yogeshnarayan.gaur, Madalin Bucur, Catalin Marinas,
broonie, Will Deacon, Minghuan Lian, miquel.raynal, david.wolfe,
richard, marek.vasut, Frieder Schrempf, devicetree, Hou Zhiqiang,
Rob Herring, han.xu, linux-arm-kernel, computersforpeace,
Yuantian Tang, Shawn Guo, linux-kernel, prabhakar.kushwaha,
fabio.estevam, Ran Wang, dwmw2
After switching to the new FSL QSPI driver the property
'fsl,qspi-has-second-chip' is not needed anymore.
The driver now uses the 'reg' property to determine the bus and
the chipselect.
Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
---
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
index 136ebfa..871189e 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -247,7 +247,6 @@
clock-names = "qspi_en", "qspi";
clocks = <&clockgen 4 1>, <&clockgen 4 1>;
big-endian;
- fsl,qspi-has-second-chip;
status = "disabled";
};
--
2.7.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver
2018-05-30 13:14 ` [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver Frieder Schrempf
@ 2018-05-30 15:06 ` Boris Brezillon
2018-05-30 15:14 ` Frieder Schrempf
0 siblings, 1 reply; 9+ messages in thread
From: Boris Brezillon @ 2018-05-30 15:06 UTC (permalink / raw)
To: Frieder Schrempf
Cc: linux-mtd, linux-spi, dwmw2, computersforpeace, marek.vasut,
richard, miquel.raynal, broonie, david.wolfe, fabio.estevam,
prabhakar.kushwaha, yogeshnarayan.gaur, han.xu, Rob Herring,
Mark Rutland, devicetree, linux-kernel
On Wed, 30 May 2018 15:14:33 +0200
Frieder Schrempf <frieder.schrempf@exceet.de> wrote:
> Move the documentation of the old SPI NOR driver to the place of the new
> SPI memory interface based driver and adjust the content to reflect the
> new drivers settings.
Maybe it's better to do that in 2 steps so that people can easily
identify what has changed in the bindings.
>
> Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
> ---
> .../devicetree/bindings/mtd/fsl-quadspi.txt | 65 ------------------
> .../devicetree/bindings/spi/spi-fsl-qspi.txt | 69 ++++++++++++++++++++
> 2 files changed, 69 insertions(+), 65 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt b/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
> deleted file mode 100644
> index 483e9cf..0000000
> --- a/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
> +++ /dev/null
> @@ -1,65 +0,0 @@
> -* Freescale Quad Serial Peripheral Interface(QuadSPI)
> -
> -Required properties:
> - - compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
> - "fsl,imx7d-qspi", "fsl,imx6ul-qspi",
> - "fsl,ls1021a-qspi"
> - or
> - "fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi",
> - "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
> - - reg : the first contains the register location and length,
> - the second contains the memory mapping address and length
> - - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
> - - interrupts : Should contain the interrupt for the device
> - - clocks : The clocks needed by the QuadSPI controller
> - - clock-names : Should contain the name of the clocks: "qspi_en" and "qspi".
> -
> -Optional properties:
> - - fsl,qspi-has-second-chip: The controller has two buses, bus A and bus B.
> - Each bus can be connected with two NOR flashes.
> - Most of the time, each bus only has one NOR flash
> - connected, this is the default case.
> - But if there are two NOR flashes connected to the
> - bus, you should enable this property.
> - (Please check the board's schematic.)
> - - big-endian : That means the IP register is big endian
> -
> -Example:
> -
> -qspi0: quadspi@40044000 {
> - compatible = "fsl,vf610-qspi";
> - reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
> - reg-names = "QuadSPI", "QuadSPI-memory";
> - interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
> - clocks = <&clks VF610_CLK_QSPI0_EN>,
> - <&clks VF610_CLK_QSPI0>;
> - clock-names = "qspi_en", "qspi";
> -
> - flash0: s25fl128s@0 {
> - ....
> - };
> -};
> -
> -Example showing the usage of two SPI NOR devices:
> -
> -&qspi2 {
> - pinctrl-names = "default";
> - pinctrl-0 = <&pinctrl_qspi2>;
> - status = "okay";
> -
> - flash0: n25q256a@0 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "micron,n25q256a", "jedec,spi-nor";
> - spi-max-frequency = <29000000>;
> - reg = <0>;
> - };
> -
> - flash1: n25q256a@1 {
> - #address-cells = <1>;
> - #size-cells = <1>;
> - compatible = "micron,n25q256a", "jedec,spi-nor";
> - spi-max-frequency = <29000000>;
> - reg = <1>;
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt
> new file mode 100644
> index 0000000..0ee9cd8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt
> @@ -0,0 +1,69 @@
> +* Freescale Quad Serial Peripheral Interface(QuadSPI)
> +
> +Required properties:
> + - compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
> + "fsl,imx7d-qspi", "fsl,imx6ul-qspi",
> + "fsl,ls1021a-qspi", "fsl,ls2080a-qspi"
> + or
> + "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
> + - reg : the first contains the register location and length,
> + the second contains the memory mapping address and length
> + - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
> + - interrupts : Should contain the interrupt for the device
> + - clocks : The clocks needed by the QuadSPI controller
> + - clock-names : Should contain the name of the clocks: "qspi_en" and "qspi".
> +
> +Optional properties:
> + - big-endian : That means the IP registers format is big endian
> +
> +Required SPI slave node properties:
> + - reg: There are two buses (A and B) with two chip selects each.
> + This encodes to which bus and CS the flash is connected:
> + <0>: Bus A, CS 0
> + <1>: Bus A, CS 1
> + <2>: Bus B, CS 0
> + <3>: Bus B, CS 1
> +
> +Example:
> +
> +qspi0: quadspi@40044000 {
> + compatible = "fsl,vf610-qspi";
> + reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
> + reg-names = "QuadSPI", "QuadSPI-memory";
> + interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clks VF610_CLK_QSPI0_EN>,
> + <&clks VF610_CLK_QSPI0>;
> + clock-names = "qspi_en", "qspi";
> +
> + flash0: s25fl128s@0 {
> + ....
> + };
> +};
> +
> +Example showing the usage of two SPI NOR devices on bus A:
> +
> +&qspi2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_qspi2>;
> + status = "okay";
> +
> + flash0: n25q256a@0 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "micron,n25q256a", "jedec,spi-nor";
> + spi-max-frequency = <29000000>;
> + spi-rx-bus-width = <4>;
> + spi-tx-bus-width = <4>;
> + reg = <0>;
> + };
> +
> + flash1: n25q256a@1 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "micron,n25q256a", "jedec,spi-nor";
> + spi-max-frequency = <29000000>;
> + spi-rx-bus-width = <4>;
> + spi-tx-bus-width = <4>;
> + reg = <1>;
> + };
> +};
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties
2018-05-30 13:14 ` [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties Frieder Schrempf
@ 2018-05-30 15:10 ` Boris Brezillon
2018-06-01 9:27 ` Frieder Schrempf
0 siblings, 1 reply; 9+ messages in thread
From: Boris Brezillon @ 2018-05-30 15:10 UTC (permalink / raw)
To: Frieder Schrempf
Cc: linux-mtd, linux-spi, dwmw2, computersforpeace, marek.vasut,
richard, miquel.raynal, broonie, david.wolfe, fabio.estevam,
prabhakar.kushwaha, yogeshnarayan.gaur, han.xu, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Rob Herring, Mark Rutland,
linux-arm-kernel, devicetree, linux-kernel
On Wed, 30 May 2018 15:14:34 +0200
Frieder Schrempf <frieder.schrempf@exceet.de> wrote:
> The FSL QSPI driver was moved to the SPI framework and it now
> acts as a SPI controller. Therefore the subnodes need to set
> spi-[rx/tx]-bus-width = <4>, so quad mode is used just as before.
We should try to keep the current behavior even when
spi-[rx/tx]-bus-width are not defined. How about considering
spi-[rx/tx]-bus-width as board constraints and then let the core pick
the best mode based on these constraints plus the SPI NOR chip
limitations.
>
> Also the properties 'bus-num', 'fsl,spi-num-chipselects' and
> 'fsl,spi-flash-chipselects' were never read by the driver and
> can be removed.
>
> The 'reg' properties are adjusted to reflect the what bus and
> chipselect the flash is connected to, as the new driver needs
> this information.
>
> The property 'fsl,qspi-has-second-chip' is not needed anymore
> and will be removed after the old driver was disabled to avoid
> breaking ls1021a-moxa-uc-8410a.dts.
>
> Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
> ---
> arch/arm/boot/dts/imx6sx-sdb-reva.dts | 8 ++++++--
> arch/arm/boot/dts/imx6sx-sdb.dts | 8 ++++++--
> arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 ++
> arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | 5 ++---
> 4 files changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arm/boot/dts/imx6sx-sdb-reva.dts b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
> index e3533e7..1a6f680 100644
> --- a/arch/arm/boot/dts/imx6sx-sdb-reva.dts
> +++ b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
> @@ -131,13 +131,17 @@
> #size-cells = <1>;
> compatible = "spansion,s25fl128s", "jedec,spi-nor";
> spi-max-frequency = <66000000>;
> + spi-rx-bus-width = <4>;
> + spi-tx-bus-width = <4>;
> };
>
> - flash1: s25fl128s@1 {
> - reg = <1>;
> + flash1: s25fl128s@2 {
> + reg = <2>;
Hm, you're breaking backward compat here. Can we try to re-use the
old numbering scheme instead of patching all DTs?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver
2018-05-30 15:06 ` Boris Brezillon
@ 2018-05-30 15:14 ` Frieder Schrempf
0 siblings, 0 replies; 9+ messages in thread
From: Frieder Schrempf @ 2018-05-30 15:14 UTC (permalink / raw)
To: Boris Brezillon
Cc: Mark Rutland, devicetree, yogeshnarayan.gaur, richard,
prabhakar.kushwaha, linux-kernel, Rob Herring, linux-spi,
marek.vasut, han.xu, broonie, linux-mtd, miquel.raynal,
fabio.estevam, david.wolfe, computersforpeace, dwmw2
Hi Boris,
On 30.05.2018 17:06, Boris Brezillon wrote:
> On Wed, 30 May 2018 15:14:33 +0200
> Frieder Schrempf <frieder.schrempf@exceet.de> wrote:
>
>> Move the documentation of the old SPI NOR driver to the place of the new
>> SPI memory interface based driver and adjust the content to reflect the
>> new drivers settings.
>
> Maybe it's better to do that in 2 steps so that people can easily
> identify what has changed in the bindings.
Ok, I can split this.
Thanks,
Frieder
>
>>
>> Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
>> ---
>> .../devicetree/bindings/mtd/fsl-quadspi.txt | 65 ------------------
>> .../devicetree/bindings/spi/spi-fsl-qspi.txt | 69 ++++++++++++++++++++
>> 2 files changed, 69 insertions(+), 65 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt b/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
>> deleted file mode 100644
>> index 483e9cf..0000000
>> --- a/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
>> +++ /dev/null
>> @@ -1,65 +0,0 @@
>> -* Freescale Quad Serial Peripheral Interface(QuadSPI)
>> -
>> -Required properties:
>> - - compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
>> - "fsl,imx7d-qspi", "fsl,imx6ul-qspi",
>> - "fsl,ls1021a-qspi"
>> - or
>> - "fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi",
>> - "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
>> - - reg : the first contains the register location and length,
>> - the second contains the memory mapping address and length
>> - - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
>> - - interrupts : Should contain the interrupt for the device
>> - - clocks : The clocks needed by the QuadSPI controller
>> - - clock-names : Should contain the name of the clocks: "qspi_en" and "qspi".
>> -
>> -Optional properties:
>> - - fsl,qspi-has-second-chip: The controller has two buses, bus A and bus B.
>> - Each bus can be connected with two NOR flashes.
>> - Most of the time, each bus only has one NOR flash
>> - connected, this is the default case.
>> - But if there are two NOR flashes connected to the
>> - bus, you should enable this property.
>> - (Please check the board's schematic.)
>> - - big-endian : That means the IP register is big endian
>> -
>> -Example:
>> -
>> -qspi0: quadspi@40044000 {
>> - compatible = "fsl,vf610-qspi";
>> - reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
>> - reg-names = "QuadSPI", "QuadSPI-memory";
>> - interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
>> - clocks = <&clks VF610_CLK_QSPI0_EN>,
>> - <&clks VF610_CLK_QSPI0>;
>> - clock-names = "qspi_en", "qspi";
>> -
>> - flash0: s25fl128s@0 {
>> - ....
>> - };
>> -};
>> -
>> -Example showing the usage of two SPI NOR devices:
>> -
>> -&qspi2 {
>> - pinctrl-names = "default";
>> - pinctrl-0 = <&pinctrl_qspi2>;
>> - status = "okay";
>> -
>> - flash0: n25q256a@0 {
>> - #address-cells = <1>;
>> - #size-cells = <1>;
>> - compatible = "micron,n25q256a", "jedec,spi-nor";
>> - spi-max-frequency = <29000000>;
>> - reg = <0>;
>> - };
>> -
>> - flash1: n25q256a@1 {
>> - #address-cells = <1>;
>> - #size-cells = <1>;
>> - compatible = "micron,n25q256a", "jedec,spi-nor";
>> - spi-max-frequency = <29000000>;
>> - reg = <1>;
>> - };
>> -};
>> diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt
>> new file mode 100644
>> index 0000000..0ee9cd8
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt
>> @@ -0,0 +1,69 @@
>> +* Freescale Quad Serial Peripheral Interface(QuadSPI)
>> +
>> +Required properties:
>> + - compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
>> + "fsl,imx7d-qspi", "fsl,imx6ul-qspi",
>> + "fsl,ls1021a-qspi", "fsl,ls2080a-qspi"
>> + or
>> + "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
>> + - reg : the first contains the register location and length,
>> + the second contains the memory mapping address and length
>> + - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
>> + - interrupts : Should contain the interrupt for the device
>> + - clocks : The clocks needed by the QuadSPI controller
>> + - clock-names : Should contain the name of the clocks: "qspi_en" and "qspi".
>> +
>> +Optional properties:
>> + - big-endian : That means the IP registers format is big endian
>> +
>> +Required SPI slave node properties:
>> + - reg: There are two buses (A and B) with two chip selects each.
>> + This encodes to which bus and CS the flash is connected:
>> + <0>: Bus A, CS 0
>> + <1>: Bus A, CS 1
>> + <2>: Bus B, CS 0
>> + <3>: Bus B, CS 1
>> +
>> +Example:
>> +
>> +qspi0: quadspi@40044000 {
>> + compatible = "fsl,vf610-qspi";
>> + reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
>> + reg-names = "QuadSPI", "QuadSPI-memory";
>> + interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&clks VF610_CLK_QSPI0_EN>,
>> + <&clks VF610_CLK_QSPI0>;
>> + clock-names = "qspi_en", "qspi";
>> +
>> + flash0: s25fl128s@0 {
>> + ....
>> + };
>> +};
>> +
>> +Example showing the usage of two SPI NOR devices on bus A:
>> +
>> +&qspi2 {
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pinctrl_qspi2>;
>> + status = "okay";
>> +
>> + flash0: n25q256a@0 {
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + compatible = "micron,n25q256a", "jedec,spi-nor";
>> + spi-max-frequency = <29000000>;
>> + spi-rx-bus-width = <4>;
>> + spi-tx-bus-width = <4>;
>> + reg = <0>;
>> + };
>> +
>> + flash1: n25q256a@1 {
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + compatible = "micron,n25q256a", "jedec,spi-nor";
>> + spi-max-frequency = <29000000>;
>> + spi-rx-bus-width = <4>;
>> + spi-tx-bus-width = <4>;
>> + reg = <1>;
>> + };
>> +};
>
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties
2018-05-30 15:10 ` Boris Brezillon
@ 2018-06-01 9:27 ` Frieder Schrempf
0 siblings, 0 replies; 9+ messages in thread
From: Frieder Schrempf @ 2018-06-01 9:27 UTC (permalink / raw)
To: Boris Brezillon
Cc: Mark Rutland, devicetree, yogeshnarayan.gaur, Rob Herring,
richard, Sascha Hauer, prabhakar.kushwaha, linux-kernel,
Shawn Guo, linux-spi, marek.vasut, han.xu, broonie, linux-mtd,
Pengutronix Kernel Team, miquel.raynal, fabio.estevam,
david.wolfe, computersforpeace, dwmw2, linux-arm-kernel
Hi Boris,
On 30.05.2018 17:10, Boris Brezillon wrote:
> On Wed, 30 May 2018 15:14:34 +0200
> Frieder Schrempf <frieder.schrempf@exceet.de> wrote:
>
>> The FSL QSPI driver was moved to the SPI framework and it now
>> acts as a SPI controller. Therefore the subnodes need to set
>> spi-[rx/tx]-bus-width = <4>, so quad mode is used just as before.
>
> We should try to keep the current behavior even when
> spi-[rx/tx]-bus-width are not defined. How about considering
> spi-[rx/tx]-bus-width as board constraints and then let the core pick
> the best mode based on these constraints plus the SPI NOR chip
> limitations.
Ok, I'll try to adjust this, so we can leave spi-[rx/tx]-bus-width
undefined and still get quad mode as default if possible.
>
>>
>> Also the properties 'bus-num', 'fsl,spi-num-chipselects' and
>> 'fsl,spi-flash-chipselects' were never read by the driver and
>> can be removed.
>>
>> The 'reg' properties are adjusted to reflect the what bus and
>> chipselect the flash is connected to, as the new driver needs
>> this information.
>>
>> The property 'fsl,qspi-has-second-chip' is not needed anymore
>> and will be removed after the old driver was disabled to avoid
>> breaking ls1021a-moxa-uc-8410a.dts.
>>
>> Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de>
>> ---
>> arch/arm/boot/dts/imx6sx-sdb-reva.dts | 8 ++++++--
>> arch/arm/boot/dts/imx6sx-sdb.dts | 8 ++++++--
>> arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 ++
>> arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | 5 ++---
>> 4 files changed, 16 insertions(+), 7 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/imx6sx-sdb-reva.dts b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
>> index e3533e7..1a6f680 100644
>> --- a/arch/arm/boot/dts/imx6sx-sdb-reva.dts
>> +++ b/arch/arm/boot/dts/imx6sx-sdb-reva.dts
>> @@ -131,13 +131,17 @@
>> #size-cells = <1>;
>> compatible = "spansion,s25fl128s", "jedec,spi-nor";
>> spi-max-frequency = <66000000>;
>> + spi-rx-bus-width = <4>;
>> + spi-tx-bus-width = <4>;
>> };
>>
>> - flash1: s25fl128s@1 {
>> - reg = <1>;
>> + flash1: s25fl128s@2 {
>> + reg = <2>;
>
> Hm, you're breaking backward compat here. Can we try to re-use the
> old numbering scheme instead of patching all DTs?
Unfortunately in the current setup, the definitions for the reg property
are already broken.
For example imx6sx-sdb.dts seems to have one chip connected on bus A,
CS0 and one on bus B, CS0. It has reg set to 0 for the first and 1 for
the second chip.
While fsl-ls208xa-qds.dtsi uses the same hw setup, but has reg set to 0
and 2.
So either way we need to change the reg property at some place.
So the best approach in my opinion is to fix the definitions to use a
single scheme and while at it also remove the fsl,qspi-has-second-chip
property, that is not needed if a single consistent scheme for the reg
properties is used.
Regards,
Frieder
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-06-01 9:27 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de>
2018-05-30 13:14 ` [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver Frieder Schrempf
2018-05-30 15:06 ` Boris Brezillon
2018-05-30 15:14 ` Frieder Schrempf
2018-05-30 13:14 ` [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties Frieder Schrempf
2018-05-30 15:10 ` Boris Brezillon
2018-06-01 9:27 ` Frieder Schrempf
2018-05-30 13:14 ` [PATCH 06/11] arm64: " Frieder Schrempf
2018-05-30 13:14 ` [PATCH 09/11] ARM: dts: ls1021a: Remove fsl,qspi-has-second-chip as it is not used Frieder Schrempf
2018-05-30 13:14 ` [PATCH 10/11] ARM64: dts: ls1046a: Remove fsl, qspi-has-second-chip " Frieder Schrempf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).