Re: [PATCH v2 1/2] dt-bindings: dmaengine: Add UniPhier external DMA controller bindings

From: Kunihiko Hayashi
Date: Thu Feb 06 2020 - 20:15:26 EST


Hi Rob,

Thank you for reviewing.
Your comments are helpful as I'm not familiar with the new bindings yet.

On Thu, 6 Feb 2020 17:54:58 +0000 <robh@xxxxxxxxxx> wrote:

> On Thu, Jan 30, 2020 at 02:27:27PM +0900, Kunihiko Hayashi wrote:
> > Add devicetree binding documentation for external DMA controller
> > implemented on Socionext UniPhier SoCs.
> >
> > Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx>
> > ---
> > .../bindings/dma/socionext,uniphier-xdmac.yaml | 57 ++++++++++++++++++++++
> > 1 file changed, 57 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/dma/socionext,uniphier-xdmac.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/dma/socionext,uniphier-xdmac.yaml b/Documentation/devicetree/bindings/dma/socionext,uniphier-xdmac.yaml
> > new file mode 100644
> > index 00000000..32abf18
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/dma/socionext,uniphier-xdmac.yaml
> > @@ -0,0 +1,57 @@
> > +# SPDX-License-Identifier: GPL-2.0
>
> Dual license new bindings:
>
> (GPL-2.0-only OR BSD-2-Clause)

I'll replace with it.

> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/dma/socionext,uniphier-xdmac.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Socionext UniPhier external DMA controller
> > +
> > +description: |
> > + This describes the devicetree bindings for an external DMA engine to perform
> > + memory-to-memory or peripheral-to-memory data transfer capable of supporting
> > + 16 channels, implemented in Socionext UniPhier SoCs.
> > +
> > +maintainers:
> > + - Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx>
> > +
> > +allOf:
> > + - $ref: "dma-controller.yaml#"
> > +
> > +properties:
> > + compatible:
> > + items:
> > + - const: socionext,uniphier-xdmac
>
> You can drop 'items' for a single item.

I see.
I found some documents didn't have expression for a compatible string.

> > +
> > + reg:
> > + minItems: 1
> > + maxItems: 2
>
> You need to say what each entry is:
>
> items:
> - description: ...
> - description: ...

Surely there must be descriotions here.

> > +
> > + interrupts:
> > + maxItems: 1
> > +
> > + "#dma-cells":
> > + const: 2
> > + description: |
> > + DMA request from clients consists of 2 cells:
> > + 1. Channel index
> > + 2. Transfer request factor number, If no transfer factor, use 0.
> > + The number is SoC-specific, and this should be specified with
> > + relation to the device to use the DMA controller.
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - interrupts
> > + - "#dma-cells"
>
> Add:
>
> additionalProperties: false

I'll add it.

> > +
> > +examples:
> > + - |
> > + xdmac: dma-controller@5fc10000 {
> > + compatible = "socionext,uniphier-xdmac";
> > + reg = <0x5fc10000 0x1000>, <0x5fc20000 0x800>;
> > + interrupts = <0 188 4>;
> > + #dma-cells = <2>;
> > + dma-channels = <16>;
>
> Not documented. You need at least 'dma-channels: true' to indicate
> you're using this. But you should be able to have some constraints such
> as 'maximum: 16'.

I forgot to document 'dma-channels'. I'll add it.

Thank you,

---
Best Regards,
Kunihiko Hayashi