.../bindings/dma/marvell,xor-v2.yaml | 86 +++++++++++++++++++ .../devicetree/bindings/dma/mv-xor-v2.txt | 28 ------ 2 files changed, 86 insertions(+), 28 deletions(-) create mode 100644 Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml delete mode 100644 Documentation/devicetree/bindings/dma/mv-xor-v2.txt
Convert txt bindings of Marvell XOR v2 engines to dtschema to allow
for validation.
Also add missing property `dma-coherent` as `drivers/dma/mv_xor_v2.c`
calls various dma-coherent memory functions.
Signed-off-by: Shresth Prasad <shresthprasad7@gmail.com>
---
Changes in v2:
- Update commit message to indicate addition of `dma-coherent`
- Change maintainer
- Change compatible section
- Add `minItems` to `clock-names`
- Remove "location and length" from reg description
- List out `clock-names` items in `if:`
- Create two variants of `if:`
Tested against `marvell/armada-7040-db.dtb`, `marvell/armada-7040-mochabin.dtb`
and `marvell/armada-8080-db.dtb`
.../bindings/dma/marvell,xor-v2.yaml | 86 +++++++++++++++++++
.../devicetree/bindings/dma/mv-xor-v2.txt | 28 ------
2 files changed, 86 insertions(+), 28 deletions(-)
create mode 100644 Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml
delete mode 100644 Documentation/devicetree/bindings/dma/mv-xor-v2.txt
diff --git a/Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml b/Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml
new file mode 100644
index 000000000000..da58f6e0feab
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/marvell,xor-v2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell XOR v2 engines
+
+maintainers:
+ - Hans de Goede <hdegoede@redhat.com>
+
+properties:
+ compatible:
+ oneOf:
+ - const: marvell,xor-v2
+ - items:
+ - enum:
+ - marvell,armada-7k-xor
+ - const: marvell,xor-v2
+
+ reg:
+ items:
+ - description: DMA registers
+ - description: global registers
+
+ clocks:
+ minItems: 1
+ maxItems: 2
+
+ clock-names:
+ minItems: 1
+ items:
+ - const: core
+ - const: reg
+
+ msi-parent:
+ description:
+ Phandle to the MSI-capable interrupt controller used for
+ interrupts.
+ maxItems: 1
+
+ dma-coherent: true
+
+required:
+ - compatible
+ - reg
+ - msi-parent
+ - dma-coherent
+
+allOf:
+ - if:
+ properties:
+ clocks:
+ maxItems: 1
+ then:
+ properties:
+ clock-names:
+ items:
+ - const: core
+ - if:
+ properties:
+ clocks:
+ minItems: 2
+ required:
+ - clocks
+ then:
+ properties:
+ clock-names:
+ items:
+ - const: core
+ - const: reg
+ required:
+ - clock-names
+
+additionalProperties: false
+
+examples:
+ - |
+ xor0@6a0000 {
+ compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
+ reg = <0x6a0000 0x1000>, <0x6b0000 0x1000>;
+ clocks = <&ap_clk 0>, <&ap_clk 1>;
+ clock-names = "core", "reg";
+ msi-parent = <&gic_v2m0>;
+ dma-coherent;
+ };
diff --git a/Documentation/devicetree/bindings/dma/mv-xor-v2.txt b/Documentation/devicetree/bindings/dma/mv-xor-v2.txt
deleted file mode 100644
index 9c38bbe7e6d7..000000000000
--- a/Documentation/devicetree/bindings/dma/mv-xor-v2.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-* Marvell XOR v2 engines
-
-Required properties:
-- compatible: one of the following values:
- "marvell,armada-7k-xor"
- "marvell,xor-v2"
-- reg: Should contain registers location and length (two sets)
- the first set is the DMA registers
- the second set is the global registers
-- msi-parent: Phandle to the MSI-capable interrupt controller used for
- interrupts.
-
-Optional properties:
-- clocks: Optional reference to the clocks used by the XOR engine.
-- clock-names: mandatory if there is a second clock, in this case the
- name must be "core" for the first clock and "reg" for the second
- one
-
-
-Example:
-
- xor0@400000 {
- compatible = "marvell,xor-v2";
- reg = <0x400000 0x1000>,
- <0x410000 0x1000>;
- msi-parent = <&gic_v2m0>;
- dma-coherent;
- };
--
2.45.2
On 07/07/2024 11:13, Shresth Prasad wrote:
> Convert txt bindings of Marvell XOR v2 engines to dtschema to allow
> for validation.
>
> Also add missing property `dma-coherent` as `drivers/dma/mv_xor_v2.c`
> calls various dma-coherent memory functions.
>
> Signed-off-by: Shresth Prasad <shresthprasad7@gmail.com>
> ---
> Changes in v2:
> - Update commit message to indicate addition of `dma-coherent`
> - Change maintainer
> - Change compatible section
> - Add `minItems` to `clock-names`
> - Remove "location and length" from reg description
> - List out `clock-names` items in `if:`
> - Create two variants of `if:`
>
> Tested against `marvell/armada-7040-db.dtb`, `marvell/armada-7040-mochabin.dtb`
> and `marvell/armada-8080-db.dtb`
>
> .../bindings/dma/marvell,xor-v2.yaml | 86 +++++++++++++++++++
> .../devicetree/bindings/dma/mv-xor-v2.txt | 28 ------
> 2 files changed, 86 insertions(+), 28 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml
> delete mode 100644 Documentation/devicetree/bindings/dma/mv-xor-v2.txt
>
> diff --git a/Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml b/Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml
> new file mode 100644
> index 000000000000..da58f6e0feab
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/dma/marvell,xor-v2.yaml
> @@ -0,0 +1,86 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/dma/marvell,xor-v2.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Marvell XOR v2 engines
> +
> +maintainers:
> + - Hans de Goede <hdegoede@redhat.com>
I don't think Hans maintains this platform - Marvell SoCs. Didn't we
talk already what is "platform"?
> +
> +properties:
> + compatible:
> + oneOf:
> + - const: marvell,xor-v2
> + - items:
> + - enum:
> + - marvell,armada-7k-xor
> + - const: marvell,xor-v2
> +
> +
> +allOf:
> + - if:
> + properties:
> + clocks:
> + maxItems: 1
Still not much improved. There are plenty of examples how this is done,
so please do not invent one, entirely new style. Think for a sec, why
doing things differently? Why this code is the first example of such syntax?
I asked to limit it pear each variant.
https://elixir.bootlin.com/linux/v6.8/source/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml#L132
> + then:
> + properties:
> + clock-names:
> + items:
> + - const: core
> + - if:
> + properties:
> + clocks:
> + minItems: 2
> + required:
> + - clocks
> + then:
> + properties:
> + clock-names:
> + items:
> + - const: core
> + - const: reg
> + required:
> + - clock-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + xor0@6a0000 {
xor@6a0000
Best regards,
Krzysztof
© 2016 - 2026 Red Hat, Inc.