Skip to contentSkip to conversation

spi: fsl-dspi: Convert to yaml format and use common SPI property

PATCH Applied Frank Li 5 participants 12 messages Jun 24, 2024 – Jul 1, 2024

Subsystems (4)
lore
Share & tools
lore

Frank Li

author maintainer
#0 lore raw

v4 cover spi: fsl-dspi: Convert to yaml format and use common SPI property

Convert fsl-dspi binding to to yaml format.
Using common SPI property spi-cs-setup-delay-ns and spi-cs-hold-delay-ns. Update driver and ls1043 dts file.

To: Vladimir Oltean <[email protected]>
To: Mark Brown <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: Shawn Guo <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

---
Changes in v4:
- See each patch
- Link to v3: https://lore.kernel.org/r/[email protected]

Changes in v3:
- using Vladimir Oltean's https://lore.kernel.org/imx/[email protected]/T/#t
for fsl periphal part to keep compatiblity.

- Add common property and depericated fsl private property.
- Link to v2: https://lore.kernel.org/r/[email protected]

---
Frank Li (3):
spi: fsl-dspi: use common proptery 'spi-cs-setup(hold)-delay-ns'
spi: dt-bindings: fsl-dspi: Convert to yaml format
arm64: dts: fsl-ls1043a-rdb: use common spi-cs-setup(hold)-delay-ns

 .../bindings/spi/fsl,dspi-peripheral-props.yaml    |  30 ++++++
 .../devicetree/bindings/spi/fsl,dspi.yaml          | 103 +++++++++++++++++++++
 .../devicetree/bindings/spi/spi-fsl-dspi.txt       |  65 -------------
 .../bindings/spi/spi-peripheral-props.yaml         |   1 +
 MAINTAINERS                                        |   2 +-
 arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts  |  18 ++++
 drivers/spi/spi-fsl-dspi.c                         |  19 +++-
 7 files changed, 167 insertions(+), 71 deletions(-)

---
base-commit: 03d44168cbd7fc57d5de56a3730427db758fc7f6
change-id: 20240613-ls_qspi-bdced20e235e

Best regards,
---
Frank Li <[email protected]>

author maintainer
#1 lore raw

PATCH v4 1/3 spi: fsl-dspi: use common proptery 'spi-cs-setup(hold)-delay-ns'

Use SPI common DT binding properties 'spi-cs-setup-delay-ns' and 'spi-cs-hold-delay-ns'. If these properties do not exist, fall back to legacy 'fsl,spi-cs-sck-delay' and 'fsl,spi-sck-cs-delay'.

---
Change from v3 to v4
- check spi_delay_to_ns() return value, which may return negative value as error code. It will be very big value when cast to u32.

---
 drivers/spi/spi-fsl-dspi.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)
drivers/spi/spi-fsl-dspi.c +14 -5
index 0a2730cd07c6a..191de1917f831 100644
@@ -1006,6 +1006,7 @@ static int dspi_setup(struct spi_device *spi)
 	struct chip_data *chip;
 	unsigned long clkrate;
 	bool cs = true;
+	int val;
 
 	/* Only alloc on first setup */
 	chip = spi_get_ctldata(spi);
@@ -1018,11 +1019,19 @@ static int dspi_setup(struct spi_device *spi)
 	pdata = dev_get_platdata(&dspi->pdev->dev);
 
 	if (!pdata) {
-		of_property_read_u32(spi->dev.of_node, "fsl,spi-cs-sck-delay",
-				     &cs_sck_delay);
-
-		of_property_read_u32(spi->dev.of_node, "fsl,spi-sck-cs-delay",
-				     &sck_cs_delay);
+		val = spi_delay_to_ns(&spi->cs_setup, NULL);
+		cs_sck_delay = val >= 0 ? val : 0;
+		if (!cs_sck_delay)
+			of_property_read_u32(spi->dev.of_node,
+					     "fsl,spi-cs-sck-delay",
+					     &cs_sck_delay);
+
+		val = spi_delay_to_ns(&spi->cs_hold, NULL);
+		sck_cs_delay =  val >= 0 ? val : 0;
+		if (!sck_cs_delay)
+			of_property_read_u32(spi->dev.of_node,
+					     "fsl,spi-sck-cs-delay",
+					     &sck_cs_delay);
 	} else {
 		cs_sck_delay = pdata->cs_sck_delay;
 		sck_cs_delay = pdata->sck_cs_delay;
Signature · 1 line
2.34.1
maintainer Reviewed-by on v4 1/3
#2 lore raw

Re: [PATCH v4 1/3] spi: fsl-dspi: use common proptery 'spi-cs-setup(hold)-delay-ns'

Quoted 10 lines · Frank Li

Use SPI common DT binding properties 'spi-cs-setup-delay-ns' and 'spi-cs-hold-delay-ns'. If these properties do not exist, fall back to legacy 'fsl,spi-cs-sck-delay' and 'fsl,spi-sck-cs-delay'.

---
Change from v3 to v4
- check spi_delay_to_ns() return value, which may return negative value as error code. It will be very big value when cast to u32.
---

author maintainer
#3 lore raw

PATCH v4 2/3 spi: dt-bindings: fsl-dspi: Convert to yaml format

In reply to Frank Li

Convert dt-binding spi-fsl-dspi.txt to yaml format. Use part Vladimir Oltean's work at of
https://lore.kernel.org/linux-spi/[email protected]/

Additional changes during convert:
- compatible string "fsl,ls1028a-dspi" can be followed by fsl,ls1021a-v1.0-dspi.
- Change "dspi0@4002c000" to "spi@4002c000" in example.
- Reorder properties in example.
- Use GIC include in example.
- Deprecated fsl,spi-cs-sck-delay and fsl,spi-sck-cs-delay by use common SPI property.
- Use compatible string 'jedec,spi-nor' in example.
- Split peripheral part to fsl,dspi-peripheral-props.yaml.
- Remove 'interrupts' and 'pinctrl' from required list.
- Update 'bus-num' description.
- Update 'spi-num-chipselects' description by add "cs-gpios don't count against this number".
- Remove 'big-endian' description.

---
Change from v3 to v4
- Add Co-developed-by and Signed-off-by from Kuldeep and Vladimir
- Remove 'interrupts' and 'pinctrl' from required list
- Update 'bus-num' descripton.
- Update 'spi-num-chipselects' description by add "cs-gpios don't count against this number".
- Remove 'big-endian' description.

---
 .../bindings/spi/fsl,dspi-peripheral-props.yaml    |  30 ++++++
 .../devicetree/bindings/spi/fsl,dspi.yaml          | 103 +++++++++++++++++++++
 .../devicetree/bindings/spi/spi-fsl-dspi.txt       |  65 -------------
 .../bindings/spi/spi-peripheral-props.yaml         |   1 +
 MAINTAINERS                                        |   2 +-
 5 files changed, 135 insertions(+), 66 deletions(-)
Documentation/devicetree/bindings/spi/fsl,dspi-peripheral-props.yaml new file +30 -0
new file mode 100644
index 0000000000000..9b62b75e17a7f
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/fsl,dspi-peripheral-props.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Peripheral-specific properties for Freescale DSPI controller
+
+maintainers:
+  - Vladimir Oltean <[email protected]>
+
+description:
+  See spi-peripheral-props.yaml for more info.
+
+properties:
+  fsl,spi-cs-sck-delay:
+    deprecated: true
+    description:
+      Delay in nanoseconds between activating chip select and the start of
+      clock signal, at the start of a transfer.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  fsl,spi-sck-cs-delay:
+    deprecated: true
+    description:
+      Delay in nanoseconds between stopping the clock signal and
+      deactivating chip select, at the end of a transfer.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+additionalProperties: true
Documentation/devicetree/bindings/spi/fsl,dspi.yaml new file +103 -0

103 lines not on this page · raw message

Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt deleted +0 -65

65 lines not on this page · raw message

Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml +1 -0
index 15938f81fdce2..0bb443b8decda 100644
@@ -122,6 +122,7 @@ properties:
 allOf:
   - $ref: arm,pl022-peripheral-props.yaml#
   - $ref: cdns,qspi-nor-peripheral-props.yaml#
+  - $ref: fsl,dspi-peripheral-props.yaml#
   - $ref: samsung,spi-peripheral-props.yaml#
   - $ref: nvidia,tegra210-quad-peripheral-props.yaml#
 
MAINTAINERS +1 -1
index e04f583780c5f..25e485fad9ae8 100644
@@ -8748,7 +8748,7 @@ FREESCALE DSPI DRIVER
 M:	Vladimir Oltean <[email protected]>
 L:	[email protected]
 S:	Maintained
-F:	Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
+F:	Documentation/devicetree/bindings/spi/fsl,dspi*.yaml
 F:	drivers/spi/spi-fsl-dspi.c
 F:	include/linux/spi/spi-fsl-dspi.h
 
Signature · 1 line
2.34.1
maintainer Reviewed-by on v4 2/3
#4 lore raw

Re: [PATCH v4 2/3] spi: dt-bindings: fsl-dspi: Convert to yaml format

Quoted 34 lines · Frank Li

Convert dt-binding spi-fsl-dspi.txt to yaml format. Use part Vladimir Oltean's work at of
https://lore.kernel.org/linux-spi/[email protected]/

Additional changes during convert:
- compatible string "fsl,ls1028a-dspi" can be followed by fsl,ls1021a-v1.0-dspi.
- Change "dspi0@4002c000" to "spi@4002c000" in example.
- Reorder properties in example.
- Use GIC include in example.
- Deprecated fsl,spi-cs-sck-delay and fsl,spi-sck-cs-delay by use common SPI property.
- Use compatible string 'jedec,spi-nor' in example.
- Split peripheral part to fsl,dspi-peripheral-props.yaml.
- Remove 'interrupts' and 'pinctrl' from required list.
- Update 'bus-num' description.
- Update 'spi-num-chipselects' description by add "cs-gpios don't count against this number".
- Remove 'big-endian' description.

---
Change from v3 to v4
- Add Co-developed-by and Signed-off-by from Kuldeep and Vladimir
- Remove 'interrupts' and 'pinctrl' from required list
- Update 'bus-num' descripton.
- Update 'spi-num-chipselects' description by add "cs-gpios don't count against this number".
- Remove 'big-endian' description.

Quoted 8 lines
---
 .../bindings/spi/fsl,dspi-peripheral-props.yaml    |  30 ++++++
 .../devicetree/bindings/spi/fsl,dspi.yaml          | 103 +++++++++++++++++++++
 .../devicetree/bindings/spi/spi-fsl-dspi.txt       |  65 -------------
 .../bindings/spi/spi-peripheral-props.yaml         |   1 +
 MAINTAINERS                                        |   2 +-
 5 files changed, 135 insertions(+), 66 deletions(-)
maintainer Reviewed-by on v4 2/3
#5 lore raw

Re: [PATCH v4 2/3] spi: dt-bindings: fsl-dspi: Convert to yaml format

In reply to Frank Li
Quoted 20 lines · Frank Li

Convert dt-binding spi-fsl-dspi.txt to yaml format. Use part Vladimir Oltean's work at of
https://lore.kernel.org/linux-spi/[email protected]/

Additional changes during convert:
- compatible string "fsl,ls1028a-dspi" can be followed by fsl,ls1021a-v1.0-dspi.
- Change "dspi0@4002c000" to "spi@4002c000" in example.
- Reorder properties in example.
- Use GIC include in example.
- Deprecated fsl,spi-cs-sck-delay and fsl,spi-sck-cs-delay by use common SPI property.
- Use compatible string 'jedec,spi-nor' in example.
- Split peripheral part to fsl,dspi-peripheral-props.yaml.
- Remove 'interrupts' and 'pinctrl' from required list.
- Update 'bus-num' description.
- Update 'spi-num-chipselects' description by add "cs-gpios don't count against this number".
- Remove 'big-endian' description.

Quoted 7 lines

---

author maintainer
#6 lore raw

PATCH v4 3/3 arm64: dts: fsl-ls1043a-rdb: use common spi-cs-setup(hold)-delay-ns

In reply to Frank Li

Use SPI common properties 'spi-cs-setup-delay-ns' and 'spi-cs-hold-delay-ns', mark private properties 'fsl,spi-cs-sck-delay' and 'fsl,spi-sck-cs-delay' as deprecated.

---
Chang from v3 to v4
- fix typo at commit message
- use comments:
Standard CS timing
properties replace the deprecated vendor variants below

---
 arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts +18 -0
index 26f8540cb101b..de23f5ebaafdb 100644
@@ -104,6 +104,12 @@ flash@0 {
 		compatible = "n25q128a13", "jedec,spi-nor";  /* 16MB */
 		reg = <0>;
 		spi-max-frequency = <1000000>; /* input clock */
+		/*
+		 * Standard CS timing properties replace the deprecated vendor
+		 * variants below.
+		 */
+		spi-cs-setup-delay-ns = <100>;
+		spi-cs-hold-delay-ns = <100>;
 		fsl,spi-cs-sck-delay = <100>;
 		fsl,spi-sck-cs-delay = <100>;
 	};
@@ -112,6 +118,12 @@ slic@2 {
 		compatible = "maxim,ds26522";
 		reg = <2>;
 		spi-max-frequency = <2000000>;
+		/*
+		 * Standard CS timing properties replace the deprecated vendor
+		 * variants below.
+		 */
+		spi-cs-setup-delay-ns = <100>;
+		spi-cs-hold-delay-ns = <50>;
 		fsl,spi-cs-sck-delay = <100>;
 		fsl,spi-sck-cs-delay = <50>;
 	};
@@ -120,6 +132,12 @@ slic@3 {
 		compatible = "maxim,ds26522";
 		reg = <3>;
 		spi-max-frequency = <2000000>;
+		/*
+		 * Standard CS timing properties replace the deprecated vendor
+		 * variants below.
+		 */
+		spi-cs-setup-delay-ns = <100>;
+		spi-cs-hold-delay-ns = <50>;
 		fsl,spi-cs-sck-delay = <100>;
 		fsl,spi-sck-cs-delay = <50>;
 	};
Signature · 1 line
2.34.1
maintainer Reviewed-by on v4 3/3
#7 lore raw

Re: [PATCH v4 3/3] arm64: dts: fsl-ls1043a-rdb: use common spi-cs-setup(hold)-delay-ns

Quoted 4 lines · Frank Li

Use SPI common properties 'spi-cs-setup-delay-ns' and 'spi-cs-hold-delay-ns', mark private properties 'fsl,spi-cs-sck-delay' and 'fsl,spi-sck-cs-delay' as deprecated.

Quoted 8 lines

---
Chang from v3 to v4
- fix typo at commit message
- use comments:
Standard CS timing
properties replace the deprecated vendor variants below
---

Applied
#8 lore raw

Re: [PATCH v4 3/3] arm64: dts: fsl-ls1043a-rdb: use common spi-cs-setup(hold)-delay-ns

In reply to Frank Li
Quoted 5 lines · Frank Li

Use SPI common properties 'spi-cs-setup-delay-ns' and 'spi-cs-hold-delay-ns', mark private properties 'fsl,spi-cs-sck-delay' and 'fsl,spi-sck-cs-delay' as deprecated.

Applied, thanks!

maintainer
#9 lore raw

Re: (subset) [PATCH v4 0/3] spi: fsl-dspi: Convert to yaml format and use common SPI property

In reply to Frank Li
Quoted 17 lines · Frank Li

Convert fsl-dspi binding to to yaml format.
Using common SPI property spi-cs-setup-delay-ns and spi-cs-hold-delay-ns. Update driver and ls1043 dts file.

To: Vladimir Oltean <[email protected]>
To: Mark Brown <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: Shawn Guo <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

Quoted 1 line

[...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/3] spi: fsl-dspi: use common proptery 'spi-cs-setup(hold)-delay-ns'

      commit: 52e78777b6bfd4bc47448791a99d5f97c82ff81c
[2/3] spi: dt-bindings: fsl-dspi: Convert to yaml format
      commit: 94f19d076218a193d170da6d5ab2a87c080cc69c

All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying to this mail.

Thanks,
Mark

author maintainer
#10 lore raw

Re: (subset) [PATCH v4 0/3] spi: fsl-dspi: Convert to yaml format and use common SPI property

Quoted 40 lines · Mark Brown
Quoted 17 lines · Frank Li

Convert fsl-dspi binding to to yaml format.
Using common SPI property spi-cs-setup-delay-ns and spi-cs-hold-delay-ns. Update driver and ls1043 dts file.

To: Vladimir Oltean <[email protected]>
To: Mark Brown <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: Shawn Guo <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

Quoted 1 line

[...]

Applied to

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/3] spi: fsl-dspi: use common proptery 'spi-cs-setup(hold)-delay-ns'

      commit: 52e78777b6bfd4bc47448791a99d5f97c82ff81c
[2/3] spi: dt-bindings: fsl-dspi: Convert to yaml format
      commit: 94f19d076218a193d170da6d5ab2a87c080cc69c

All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.

Quoted 6 lines

If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying to this mail.

Thank you very much, I sent out incremental update before this patch applied since my one miss understand. Could you please check this?

https://lore.kernel.org/imx/[email protected]/

Frank

Quoted 4 lines

Thanks,
Mark

maintainer
#11 lore raw

Re: (subset) [PATCH v4 0/3] spi: fsl-dspi: Convert to yaml format and use common SPI property

Quoted 10 lines · Frank Li
Quoted 3 lines · Mark Brown

If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.

Thank you very much, I sent out incremental update before this patch applied since my one miss understand. Could you please check this?

https://lore.kernel.org/imx/[email protected]/

As covered above please send an incremental patch with whatever changes were in the new version.