All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Nino Zhang <ninozhang001@gmail.com>
Cc: vkoul@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
	dmaengine@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] dt-bindings: dma: img-mdc-dma: convert to DT schema
Date: Fri, 22 Aug 2025 14:50:24 -0500	[thread overview]
Message-ID: <20250822195024.GA194990-robh@kernel.org> (raw)
In-Reply-To: <20250821150255.236884-1-ninozhang001@gmail.com>

On Thu, Aug 21, 2025 at 11:02:55PM +0800, Nino Zhang wrote:
> Convert the img-mdc-dma binding from txt to YAML schema.
> No functional changes except dropping the consumer node
> (spi@18100f00) from the example, which belongs to the
> consumer binding instead.
> 
> Tested with 'make dt_binding_check'.

No need to say that in the commit msg. It is assumed you did this.

> 
> Signed-off-by: Nino Zhang <ninozhang001@gmail.com>
> ---
>  .../devicetree/bindings/dma/img-mdc-dma.txt   | 57 -----------
>  .../devicetree/bindings/dma/img-mdc-dma.yaml  | 98 +++++++++++++++++++
>  2 files changed, 98 insertions(+), 57 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/dma/img-mdc-dma.txt
>  create mode 100644 Documentation/devicetree/bindings/dma/img-mdc-dma.yaml
> 
> diff --git a/Documentation/devicetree/bindings/dma/img-mdc-dma.txt b/Documentation/devicetree/bindings/dma/img-mdc-dma.txt
> deleted file mode 100644
> index 28c1341db346..000000000000
> --- a/Documentation/devicetree/bindings/dma/img-mdc-dma.txt
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -* IMG Multi-threaded DMA Controller (MDC)
> -
> -Required properties:
> -- compatible: Must be "img,pistachio-mdc-dma".
> -- reg: Must contain the base address and length of the MDC registers.
> -- interrupts: Must contain all the per-channel DMA interrupts.
> -- clocks: Must contain an entry for each entry in clock-names.
> -  See ../clock/clock-bindings.txt for details.
> -- clock-names: Must include the following entries:
> -  - sys: MDC system interface clock.
> -- img,cr-periph: Must contain a phandle to the peripheral control syscon
> -  node which contains the DMA request to channel mapping registers.
> -- img,max-burst-multiplier: Must be the maximum supported burst size multiplier.
> -  The maximum burst size is this value multiplied by the hardware-reported bus
> -  width.
> -- #dma-cells: Must be 3:
> -  - The first cell is the peripheral's DMA request line.
> -  - The second cell is a bitmap specifying to which channels the DMA request
> -    line may be mapped (i.e. bit N set indicates channel N is usable).
> -  - The third cell is the thread ID to be used by the channel.
> -
> -Optional properties:
> -- dma-channels: Number of supported DMA channels, up to 32.  If not specified
> -  the number reported by the hardware is used.
> -
> -Example:
> -
> -mdc: dma-controller@18143000 {
> -	compatible = "img,pistachio-mdc-dma";
> -	reg = <0x18143000 0x1000>;
> -	interrupts = <GIC_SHARED 27 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 28 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 29 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 30 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 31 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 32 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 33 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 34 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 35 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 36 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 37 IRQ_TYPE_LEVEL_HIGH>,
> -		     <GIC_SHARED 38 IRQ_TYPE_LEVEL_HIGH>;
> -	clocks = <&system_clk>;
> -	clock-names = "sys";
> -
> -	img,max-burst-multiplier = <16>;
> -	img,cr-periph = <&cr_periph>;
> -
> -	#dma-cells = <3>;
> -};
> -
> -spi@18100f00 {
> -	...
> -	dmas = <&mdc 9 0xffffffff 0>, <&mdc 10 0xffffffff 0>;
> -	dma-names = "tx", "rx";
> -	...
> -};
> diff --git a/Documentation/devicetree/bindings/dma/img-mdc-dma.yaml b/Documentation/devicetree/bindings/dma/img-mdc-dma.yaml
> new file mode 100644
> index 000000000000..b635125d7ae3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/dma/img-mdc-dma.yaml

Use the compatible string for the filename.

> @@ -0,0 +1,98 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/dma/img-mdc-dma.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: IMG Multi-threaded DMA Controller (MDC)
> +
> +maintainers:
> +  - Vinod Koul <vkoul@kernel.org>

No, must be someone with this h/w and cares about this h/w.

> +
> +allOf:
> +  - $ref: /schemas/dma/dma-controller.yaml#
> +
> +properties:
> +  compatible:
> +    description: Must be "img,pistachio-mdc-dma".

Drop. The schema says that. Same goes for all the other descriptions, so 
I won't repeat it everywhere.

> +    const: img,pistachio-mdc-dma
> +
> +  reg:
> +    description:
> +      Must contain the base address and length of the MDC registers.

Drop.

> +    minItems: 1

maxItems instead.

> +
> +  interrupts:
> +    description:
> +      Must contain all the per-channel DMA interrupts.

Must define how many.

> +
> +  clocks:
> +    description: |
> +      Must contain an entry for each entry in clock-names.
> +      See clock/clock.yaml for details.

Drop.

Must define how many clocks and what they are.

> +
> +  clock-names:
> +    description: |
> +      Must include the following entries:
> +        - sys: MDC system interface clock.

Drop. The schema says that.

> +    minItems: 1
> +    contains: { const: sys }

Must be exact list of values, not 'sys' plus anything else you want.

> +
> +  img,cr-periph:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: |

Drop '|'. Not needed if no formatting to maintain.


> +      Must contain a phandle to the peripheral control syscon node
> +      which contains the DMA request to channel mapping registers.
> +
> +  img,max-burst-multiplier:
> +    description: |
> +      Must be the maximum supported burst size multiplier.
> +      The maximum burst size is this value multiplied by the
> +      hardware-reported bus width.

Wrap lines at 80 and drop '|'.

> +    $ref: /schemas/types.yaml#/definitions/uint32

constraints?

> +
> +  "#dma-cells":
> +    description: |
> +      Must be 3:
> +        - The first cell is the peripheral's DMA request line.
> +        - The second cell is a bitmap specifying to which channels the DMA request
> +          line may be mapped (i.e. bit N set indicates channel N is usable).
> +        - The third cell is the thread ID to be used by the channel.
> +    const: 3
> +
> +  dma-channels:
> +    description: |
> +      Number of supported DMA channels, up to 32. If not specified
> +      the number reported by the hardware is used.
> +    $ref: /schemas/types.yaml#/definitions/uint32

Drop. Already has a type defined.

> +    maximum: 32
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - clock-names
> +  - "img,cr-periph"
> +  - "img,max-burst-multiplier"

Don't need quotes.

> +  - "#dma-cells"
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/mips-gic.h>
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    mdc: dma-controller@18143000 {

Drop 'mdc'

> +      compatible = "img,pistachio-mdc-dma";
> +      reg = <0x18143000 0x1000>;
> +      interrupts = <GIC_SHARED 27 IRQ_TYPE_LEVEL_HIGH>,
> +            <GIC_SHARED 28 IRQ_TYPE_LEVEL_HIGH>;
> +      clocks = <&system_clk>;
> +      clock-names = "sys";
> +
> +      img,max-burst-multiplier = <16>;
> +      img,cr-periph = <&cr_periph>;
> +
> +      #dma-cells = <3>;
> +    };
> -- 
> 2.43.0
> 

  reply	other threads:[~2025-08-22 19:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-21 15:02 [PATCH] dt-bindings: dma: img-mdc-dma: convert to DT schema Nino Zhang
2025-08-22 19:50 ` Rob Herring [this message]
2025-08-24 18:55   ` Nino Zhang
2025-08-24  3:45 ` [PATCH v2] " Nino Zhang
2025-08-24 11:24   ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250822195024.GA194990-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ninozhang001@gmail.com \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.