Skip to contentSkip to conversation

spi: dt-bindings: jcore,spi: convert spi-jcore to dtschema

PATCH Superseded Kousik Sanagavarapu 3 participants 7 messages Mar 21, 2024 – Mar 22, 2024 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 spi: dt-bindings: jcore,spi: convert spi-jcore to dtschema

Convert existing bindings of J-Core spi2 to dtschema.

No new properties are added.

---
Changes since v1:
- changed the subject line to conform.
- dropped desc for "clock" and "clock-names" properties.
- cleaned up stuff.

Thanks for the review Krzysztof.

 .../devicetree/bindings/spi/jcore,spi.txt     | 34 ------------
 .../devicetree/bindings/spi/jcore,spi.yaml    | 53 +++++++++++++++++++
 2 files changed, 53 insertions(+), 34 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/spi/jcore,spi.txt
 create mode 100644 Documentation/devicetree/bindings/spi/jcore,spi.yaml
Documentation/devicetree/bindings/spi/jcore,spi.txt deleted +0 -34
deleted file mode 100644
index 93936d16e139..000000000000
@@ -1,34 +0,0 @@
-J-Core SPI master
-
-Required properties:
-
-- compatible: Must be "jcore,spi2".
-
-- reg: Memory region for registers.
-
-- #address-cells: Must be 1.
-
-- #size-cells: Must be 0.
-
-Optional properties:
-
-- clocks: If a phandle named "ref_clk" is present, SPI clock speed
-  programming is relative to the frequency of the indicated clock.
-  Necessary only if the input clock rate is something other than a
-  fixed 50 MHz.
-
-- clock-names: Clock names, one for each phandle in clocks.
-
-See spi-bus.txt for additional properties not specific to this device.
-
-Example:
-
-spi@40 {
-	compatible = "jcore,spi2";
-	#address-cells = <1>;
-	#size-cells = <0>;
-	reg = <0x40 0x8>;
-	spi-max-frequency = <25000000>;
-	clocks = <&bus_clk>;
-	clock-names = "ref_clk";
-}
Documentation/devicetree/bindings/spi/jcore,spi.yaml new file +53 -0

53 lines not on this page · raw message

Signature · 1 line
2.44.0.273.g4bc5b65358.dirty
#1 lore raw
Quoted 10 lines · Kousik Sanagavarapu

Convert existing bindings of J-Core spi2 to dtschema.

No new properties are added.

---
Changes since v1:
- changed the subject line to conform.
- dropped desc for "clock" and "clock-names" properties.
- cleaned up stuff.

You miss many other changes... Some unusal properties appeared.

...

Quoted 23 lines

+---

Documentation/devicetree/bindings/spi/jcore,spi.yaml new file +22 -0
+
+$id: http://devicetree.org/schemas/spi/jcore,spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: J-Core SPI controller
+
+description:
+  The J-Core "spi2" device is a PIO-based SPI controller which used to
+  perform byte-at-a-time transfers between the CPU and itself.
+
+maintainers:
+  - Kousik Sanagavarapu <[email protected]>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    const: jcore,spi2
+
+  reg:
+    maxItems: 1

Documentation/devicetree/bindings/spi/jcore,spi.yaml line 35

Quoted 10 lines
Documentation/devicetree/bindings/spi/jcore,spi.yaml new file +10 -0
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: ref_clk
+
+  spi-max-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32

No, drop. From which other SPI binding did you take it? I asked you to look at existing code.

Best regards,
Krzysztof

#2 lore raw

PATCH v2 1/1 spi: dt-bindings: jcore,spi: convert spi-jcore to dtschema

Quoted 8 lines · On Fri, 22 Mar 2024, 11:33 Krzysztof Kozlowski…

Documentation/devicetree/bindings/spi/jcore,spi.yaml line 35

Quoted 3 lines · Kousik Sanagavarapu
Documentation/devicetree/bindings/spi/jcore,spi.yaml new file +2 -0
+  spi-max-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32

No, drop. From which other SPI binding did you take it? I asked you to look at existing code.

Without this, "make dt_binding_check" would break though, right at the position in the example where "spi-max-frequency" is used. That was also the reason why additionalProperties was set to true in the last iteration, but after reading the doc more carefully I realized that was wrong after you pointed it out.

I followed along bindings/spi/nvidia,tegra114-spi.yaml.

(Sorry for the HTML mail ping, I'm replying from mobile)

A message that is not in the archive (sent off-list or not yet received): CAN19-EfCOWFqFCrF0iCaxhfZuteWawQoH0d6pTN3cgQ7p-CK6w@mail.gmail.com

#4 lore raw
Quoted 12 lines · Kousik Sanagavarapu
Quoted 8 lines · On Fri, 22 Mar 2024, 11:33 Krzysztof Kozlowski, <…

Documentation/devicetree/bindings/spi/jcore,spi.yaml line 35

Quoted 2 lines · Kousik Sanagavarapu
Documentation/devicetree/bindings/spi/jcore,spi.yaml new file +2 -0
+  spi-max-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32

No, drop. From which other SPI binding did you take it? I asked you to look at existing code.

Quoted 7 lines

Without this, "make dt_binding_check" would break though, right at the position in the example where "spi-max-frequency" is used. That was also the reason why additionalProperties was set to true in the last iteration, but after reading the doc more carefully I realized that was wrong after you pointed it out.

I followed along bindings/spi/nvidia,tegra114-spi.yaml.

OK, you are right, the property is used here in controller node, however Linux driver never parsed it. It was never used, so I propose to drop it from the binding and example. You can mention in commit msg that spi-max-frequency was not documented thus you drop it from the example.

DTS should be fixed as well. I'll send a patch for it.

Best regards,
Krzysztof

#5 lore raw
Quoted 19 lines · Krzysztof Kozlowski
Quoted 18 lines · Kousik Sanagavarapu
Quoted 8 lines · On Fri, 22 Mar 2024, 11:33 Krzysztof Kozlowski, <…

Documentation/devicetree/bindings/spi/jcore,spi.yaml line 35

Quoted 2 lines · Kousik Sanagavarapu
Documentation/devicetree/bindings/spi/jcore,spi.yaml new file +2 -0
+  spi-max-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32

No, drop. From which other SPI binding did you take it? I asked you to look at existing code.

Without this, "make dt_binding_check" would break though, right at the position in the example where "spi-max-frequency" is used. That was also the reason why additionalProperties was set to true in the last iteration, but after reading the doc more carefully I realized that was wrong after you pointed it out.

Quoted 8 lines
Quoted 1 line

I followed along bindings/spi/nvidia,tegra114-spi.yaml.

OK, you are right, the property is used here in controller node, however Linux driver never parsed it. It was never used, so I propose to drop it from the binding and example. You can mention in commit msg that spi-max-frequency was not documented thus you drop it from the example.

DTS should be fixed as well. I'll send a patch for it.

Cc Daniel,

BTW, J2 core is rather odd platform to work on... Even cross compiling and building that DTB is tricky. If I failed, I have doubts that you tested the DTS with your binding.

This applies to all GSoC or some Linux Mentorship programs: I suggest to choose for conversion bindings with more users and bigger possible impact. So first I would look at ARM64 and ARMv7 platforms. We still have around 1000 and 3500 unique warnings about undocumented compatibles for ARM64 defconfig and ARM multi_v7! That's the platforms you should choose.

Not SuperH, ARC, or whatever with only one DTS which is difficult to build for regular developer.

Best regards,
Krzysztof

maintainer
#6 lore raw
Quoted 42 lines · Krzysztof Kozlowski
Quoted 19 lines · Krzysztof Kozlowski
Quoted 18 lines · Kousik Sanagavarapu
Quoted 8 lines · On Fri, 22 Mar 2024, 11:33 Krzysztof Kozlowski, <…

Documentation/devicetree/bindings/spi/jcore,spi.yaml line 35

Quoted 2 lines · Kousik Sanagavarapu
Documentation/devicetree/bindings/spi/jcore,spi.yaml new file +2 -0
+  spi-max-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32

No, drop. From which other SPI binding did you take it? I asked you to look at existing code.

Without this, "make dt_binding_check" would break though, right at the position in the example where "spi-max-frequency" is used. That was also the reason why additionalProperties was set to true in the last iteration, but after reading the doc more carefully I realized that was wrong after you pointed it out.

Quoted 8 lines
Quoted 1 line

I followed along bindings/spi/nvidia,tegra114-spi.yaml.

OK, you are right, the property is used here in controller node, however Linux driver never parsed it. It was never used, so I propose to drop it from the binding and example. You can mention in commit msg that spi-max-frequency was not documented thus you drop it from the example.

DTS should be fixed as well. I'll send a patch for it.

Cc Daniel,

BTW, J2 core is rather odd platform to work on... Even cross compiling and building that DTB is tricky. If I failed, I have doubts that you tested the DTS with your binding.

This applies to all GSoC or some Linux Mentorship programs: I suggest to choose for conversion bindings with more users and bigger possible impact. So first I would look at ARM64 and ARMv7 platforms. We still have around 1000 and 3500 unique warnings about undocumented compatibles for ARM64 defconfig and ARM multi_v7! That's the platforms you should choose.

Quoted 2 lines

Not SuperH, ARC, or whatever with only one DTS which is difficult to build for regular developer.

To add to this, either ask DT maintainers what would be useful to work on or you can look here[1][2] to see what are the top occurring undocumented (by schema) compatibles.

Rob

[1] https://gitlab.com/robherring/linux-dt/-/jobs/6453674734
[2] https://gitlab.com/robherring/linux-dt/-/jobs/6453674732

#7 lore raw
Quoted 11 lines · Rob Herring
Quoted 9 lines · Krzysztof Kozlowski

This applies to all GSoC or some Linux Mentorship programs: I suggest to choose for conversion bindings with more users and bigger possible impact. So first I would look at ARM64 and ARMv7 platforms. We still have around 1000 and 3500 unique warnings about undocumented compatibles for ARM64 defconfig and ARM multi_v7! That's the platforms you should choose.

Not SuperH, ARC, or whatever with only one DTS which is difficult to build for regular developer.

Quoted 8 lines

To add to this, either ask DT maintainers what would be useful to work on or you can look here[1][2] to see what are the top occurring undocumented (by schema) compatibles.

Rob

[1] https://gitlab.com/robherring/linux-dt/-/jobs/6453674734
[2] https://gitlab.com/robherring/linux-dt/-/jobs/6453674732

Thank you for the valuable pieces of advice and links Krzysztof and Rob.