Re: [PATCH v2 1/3] dt-bindings: dmaengine: sf-pdma: add bindins for SiFive PDMA

From: Rob Herring
Date: Thu Sep 19 2019 - 14:43:20 EST


On Thu, Sep 19, 2019 at 2:28 AM Green Wan <green.wan@xxxxxxxxxx> wrote:
>
> Add DT bindings document for Platform DMA(PDMA) driver of board,
> HiFive Unleashed Rev A00.
>
> Signed-off-by: Green Wan <green.wan@xxxxxxxxxx>
> ---
> .../bindings/dma/sifive,fu540-c000-pdma.yaml | 63 +++++++++++++++++++
> MAINTAINERS | 5 ++
> 2 files changed, 68 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
>
> diff --git a/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml b/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
> new file mode 100644
> index 000000000000..b5423f1cfcaf
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
> @@ -0,0 +1,63 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/dma/sifive,fu540-c000-pdma.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: SiFive Unleashed Rev C000 Platform DMA
> +
> +maintainers:
> + - Green Wan <green.wan@xxxxxxxxxx>
> + - Palmer Debbelt <palmer@xxxxxxxxxx>
> + - Paul Walmsley <paul.walmsley@xxxxxxxxxx>
> +
> +description: |
> + Platform DMA is a DMA engine of SiFive Unleashed. It supports 4
> + channels. Each channel has 2 interrupts. One is for DMA done and
> + the other is for DME error.
> +
> + In different SoC, DMA could be attached to different IRQ line.
> + DT file need to be changed to meet the difference. For technical
> + doc,
> +
> + https://static.dev.sifive.com/FU540-C000-v1.0.pdf
> +
> +properties:
> + compatible:
> + items:
> + - const: sifive,fu540-c000-pdma
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + minItems: 8
> + maxItems: 8
> +
> + interrupt-parent:
> + description:
> + Interrupt parent must correspond to the name PLIC interrupt
> + controller, i.e. "plic0"
> + maxItems: 1

This fails 'make dt_binding_check'. You shouldn't have
'interrupt-parent' here anyways.

> +
> + '#dma-cells':
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> + - interrupt-parent

It is valid for interrupt-parent to be in a parent node too, so
required is wrong.

> + - interrupts
> + - '#dma-cells'
> +
> +examples:
> + - |
> + dma@3000000 {
> + compatible = "sifive,fu540-c000-pdma";
> + reg = <0x0 0x3000000 0x0 0x8000>;
> + interrupt-parent = <&plic0>;
> + interrupts = <23 24 25 26 27 28 29 30>;
> + #dma-cells = <1>;
> + };
> +
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 49f75d1b7b51..d0caa09a479e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -14591,6 +14591,11 @@ F: drivers/media/usb/siano/
> F: drivers/media/usb/siano/
> F: drivers/media/mmc/siano/
>
> +SIFIVE PDMA DRIVER
> +M: Green Wan <green.wan@xxxxxxxxxx>
> +S: Maintained
> +F: Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
> +
> SIFIVE DRIVERS
> M: Palmer Dabbelt <palmer@xxxxxxxxxx>
> M: Paul Walmsley <paul.walmsley@xxxxxxxxxx>
> --
> 2.17.1
>