dt-bindings: dma: convert bcm2835-dma bindings to YAML
authorStefan Wahren <stefan.wahren@i2se.com>
Sat, 17 Jun 2023 13:36:15 +0000 (15:36 +0200)
committerVinod Koul <vkoul@kernel.org>
Wed, 12 Jul 2023 16:54:01 +0000 (22:24 +0530)
Convert the DT binding document for bcm2835-dma from .txt to YAML.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230617133620.53129-3-stefan.wahren@i2se.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt [deleted file]
Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.yaml [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt b/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
deleted file mode 100644 (file)
index b6a8cc0..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-* BCM2835 DMA controller
-
-The BCM2835 DMA controller has 16 channels in total.
-Only the lower 13 channels have an associated IRQ.
-Some arbitrary channels are used by the firmware
-(1,3,6,7 in the current firmware version).
-The channels 0,2 and 3 have special functionality
-and should not be used by the driver.
-
-Required properties:
-- compatible: Should be "brcm,bcm2835-dma".
-- reg: Should contain DMA registers location and length.
-- interrupts: Should contain the DMA interrupts associated
-               to the DMA channels in ascending order.
-- interrupt-names: Should contain the names of the interrupt
-                  in the form "dmaXX".
-                  Use "dma-shared-all" for the common interrupt line
-                  that is shared by all dma channels.
-- #dma-cells: Must be <1>, the cell in the dmas property of the
-               client device represents the DREQ number.
-- brcm,dma-channel-mask: Bit mask representing the channels
-                        not used by the firmware in ascending order,
-                        i.e. first channel corresponds to LSB.
-
-Example:
-
-dma: dma@7e007000 {
-       compatible = "brcm,bcm2835-dma";
-       reg = <0x7e007000 0xf00>;
-       interrupts = <1 16>,
-                    <1 17>,
-                    <1 18>,
-                    <1 19>,
-                    <1 20>,
-                    <1 21>,
-                    <1 22>,
-                    <1 23>,
-                    <1 24>,
-                    <1 25>,
-                    <1 26>,
-                    /* dma channel 11-14 share one irq */
-                    <1 27>,
-                    <1 27>,
-                    <1 27>,
-                    <1 27>,
-                    /* unused shared irq for all channels */
-                    <1 28>;
-       interrupt-names = "dma0",
-                         "dma1",
-                         "dma2",
-                         "dma3",
-                         "dma4",
-                         "dma5",
-                         "dma6",
-                         "dma7",
-                         "dma8",
-                         "dma9",
-                         "dma10",
-                         "dma11",
-                         "dma12",
-                         "dma13",
-                         "dma14",
-                         "dma-shared-all";
-
-       #dma-cells = <1>;
-       brcm,dma-channel-mask = <0x7f35>;
-};
-
-
-DMA clients connected to the BCM2835 DMA controller must use the format
-described in the dma.txt file, using a two-cell specifier for each channel.
-
-Example:
-
-bcm2835_i2s: i2s@7e203000 {
-       compatible = "brcm,bcm2835-i2s";
-       reg = < 0x7e203000 0x24>;
-       clocks = <&clocks BCM2835_CLOCK_PCM>;
-
-       dmas = <&dma 2>,
-              <&dma 3>;
-       dma-names = "tx", "rx";
-};
diff --git a/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.yaml b/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.yaml
new file mode 100644 (file)
index 0000000..c9b9a54
--- /dev/null
@@ -0,0 +1,102 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/brcm,bcm2835-dma.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: BCM2835 DMA controller
+
+maintainers:
+  - Nicolas Saenz Julienne <nsaenz@kernel.org>
+
+description:
+  The BCM2835 DMA controller has 16 channels in total. Only the lower
+  13 channels have an associated IRQ. Some arbitrary channels are used by the
+  VideoCore firmware (1,3,6,7 in the current firmware version). The channels
+  0, 2 and 3 have special functionality and should not be used by the driver.
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+properties:
+  compatible:
+    const: brcm,bcm2835-dma
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Should contain the DMA interrupts associated to the DMA channels in
+      ascending order.
+    minItems: 1
+    maxItems: 16
+
+  interrupt-names:
+    minItems: 1
+    maxItems: 16
+
+  '#dma-cells':
+    description: The single cell represents the DREQ number.
+    const: 1
+
+  brcm,dma-channel-mask:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Bitmask of available DMA channels in ascending order that are
+      not reserved by firmware and are available to the
+      kernel. i.e. first channel corresponds to LSB.
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#dma-cells"
+  - brcm,dma-channel-mask
+
+examples:
+  - |
+    dma-controller@7e007000 {
+      compatible = "brcm,bcm2835-dma";
+      reg = <0x7e007000 0xf00>;
+      interrupts = <1 16>,
+                   <1 17>,
+                   <1 18>,
+                   <1 19>,
+                   <1 20>,
+                   <1 21>,
+                   <1 22>,
+                   <1 23>,
+                   <1 24>,
+                   <1 25>,
+                   <1 26>,
+                   /* dma channel 11-14 share one irq */
+                   <1 27>,
+                   <1 27>,
+                   <1 27>,
+                   <1 27>,
+                   /* unused shared irq for all channels */
+                   <1 28>;
+      interrupt-names = "dma0",
+                        "dma1",
+                        "dma2",
+                        "dma3",
+                        "dma4",
+                        "dma5",
+                        "dma6",
+                        "dma7",
+                        "dma8",
+                        "dma9",
+                        "dma10",
+                        "dma11",
+                        "dma12",
+                        "dma13",
+                        "dma14",
+                        "dma-shared-all";
+        #dma-cells = <1>;
+        brcm,dma-channel-mask = <0x7f35>;
+    };
+
+...