[PATCH 03/10] dt-bindings: dma: convert bcm2835-dma bindings to YAML
Rob Herring
robh at kernel.org
Fri Jun 9 14:48:28 PDT 2023
On Sun, Jun 04, 2023 at 02:12:16PM +0200, Stefan Wahren wrote:
> Convert the DT binding document for bcm2835-dma from .txt to YAML.
> Since brcm,dma-channel-mask is considered deprecated use the
> generic property.
>
> Signed-off-by: Stefan Wahren <stefan.wahren at i2se.com>
> ---
> .../bindings/dma/brcm,bcm2835-dma.txt | 83 ----------------
> .../bindings/dma/brcm,bcm2835-dma.yaml | 98 +++++++++++++++++++
> 2 files changed, 98 insertions(+), 83 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
> create mode 100644 Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.yaml
>
> diff --git a/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt b/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
> deleted file mode 100644
> index b6a8cc0978cd..000000000000
> --- a/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
> +++ /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 at 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 at 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
> index 000000000000..a09000a8131f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.yaml
> @@ -0,0 +1,98 @@
> +# 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 at 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#"
Drop quotes. Please check elsewhere in the series.
With that fixed,
Reviewed-by: Rob Herring <robh at kernel.org>
> +
> +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
> +
> + dma-channel-mask:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - "#dma-cells"
> + - dma-channel-mask
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + dma-controller at 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>;
> + dma-channel-mask = <0x7f35>;
> + };
> +
> +...
> --
> 2.34.1
>
More information about the linux-arm-kernel
mailing list