Message ID | 20240707091331.127520-3-shresthprasad7@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2] dt-bindings: dma: mv-xor-v2: Convert to dtschema | expand |
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
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; - };
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