Commit 245dd180 authored by Rob Herring (Arm)'s avatar Rob Herring (Arm) Committed by Vinod Koul
Browse files

dt-bindings: dma: Convert marvell,orion-xor to DT schema



Convert the Marvell Orion XOR engine binding to schema.

The "clocks" property is optional for some platforms (though not
distinguished by compatble). The child node names used are 'channel' or
'xor'.

Signed-off-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250703155912.1713518-1-robh@kernel.org


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent ec896de2
Loading
Loading
Loading
Loading
+84 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/marvell,orion-xor.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell XOR engine

maintainers:
  - Andrew Lunn <andrew@lunn.ch>
  - Gregory Clement <gregory.clement@bootlin.com>

properties:
  compatible:
    oneOf:
      - items:
          - const: marvell,armada-380-xor
          - const: marvell,orion-xor
      - enum:
          - marvell,armada-3700-xor
          - marvell,orion-xor

  reg:
    items:
      - description: Low registers for the XOR engine
      - description: High registers for the XOR engine

  clocks:
    maxItems: 1

patternProperties:
  "^(channel|xor)[0-9]+$":
    description: XOR channel sub-node
    type: object
    additionalProperties: false

    properties:
      interrupts:
        description: Interrupt specifier for the XOR channel
        items:
          - description: Interrupt for this channel

      dmacap,memcpy:
        type: boolean
        deprecated: true
        description:
          Indicates that the XOR channel is capable of memcpy operations

      dmacap,memset:
        type: boolean
        deprecated: true
        description:
          Indicates that the XOR channel is capable of memset operations

      dmacap,xor:
        type: boolean
        deprecated: true
        description:
          Indicates that the XOR channel is capable of xor operations

    required:
      - interrupts

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    xor@d0060900 {
        compatible = "marvell,orion-xor";
        reg = <0xd0060900 0x100>,
              <0xd0060b00 0x100>;
        clocks = <&coreclk 0>;

        xor00 {
            interrupts = <51>;
        };
        xor01 {
            interrupts = <52>;
        };
    };
+0 −40
Original line number Diff line number Diff line
* Marvell XOR engines

Required properties:
- compatible: Should be one of the following:
  - "marvell,orion-xor"
  - "marvell,armada-380-xor"
  - "marvell,armada-3700-xor".
- reg: Should contain registers location and length (two sets)
    the first set is the low registers, the second set the high
    registers for the XOR engine.
- clocks: pointer to the reference clock

The DT node must also contains sub-nodes for each XOR channel that the
XOR engine has. Those sub-nodes have the following required
properties:
- interrupts: interrupt of the XOR channel

The sub-nodes used to contain one or several of the following
properties, but they are now deprecated:
- dmacap,memcpy to indicate that the XOR channel is capable of memcpy operations
- dmacap,memset to indicate that the XOR channel is capable of memset operations
- dmacap,xor to indicate that the XOR channel is capable of xor operations
- dmacap,interrupt to indicate that the XOR channel is capable of
  generating interrupts

Example:

xor@d0060900 {
	compatible = "marvell,orion-xor";
	reg = <0xd0060900 0x100
	       0xd0060b00 0x100>;
	clocks = <&coreclk 0>;

	xor00 {
	      interrupts = <51>;
	};
	xor01 {
	      interrupts = <52>;
	};
};