Re: [PATCH v2] dt-bindings: dma: Convert hisilicon,k3-dma-1.0 to DT schema
From: Frank Li
Date: Wed Sep 30 2026 - 17:36:51 EST
On Mon, Sep 28, 2026 at 07:44:46AM -0500, Rob Herring (Arm) wrote:
> Convert the hisilicon,k3-dma-1.0 binding to DT schema format.
>
> Add dma-channel-mask, dma-no-cci, dma-type and interrupt-names
> properties which were not documented.
>
> The "hisilicon,hisi-pcm-asp-dma-1.0" doesn't have clocks, so make it
> optional.
>
> Assisted-by: LLM
> Signed-off-by: Rob Herring (Arm) <robh@xxxxxxxxxx>
> ---
> v2:
> - Fix example node name to 'dma-controller'
> ---
> .../bindings/dma/hisilicon,k3-dma-1.0.yaml | 87 +++++++++++++++++++
> .../devicetree/bindings/dma/k3dma.txt | 47 ----------
> 2 files changed, 87 insertions(+), 47 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/dma/hisilicon,k3-dma-1.0.yaml
> delete mode 100644 Documentation/devicetree/bindings/dma/k3dma.txt
>
> diff --git a/Documentation/devicetree/bindings/dma/hisilicon,k3-dma-1.0.yaml b/Documentation/devicetree/bindings/dma/hisilicon,k3-dma-1.0.yaml
> new file mode 100644
> index 000000000000..e60f2a572272
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/dma/hisilicon,k3-dma-1.0.yaml
> @@ -0,0 +1,87 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/dma/hisilicon,k3-dma-1.0.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Hisilicon K3 DMA controller
> +
> +maintainers:
> + - Wei Xu <xuwei5@xxxxxxxxxxxxx>
> +
> +properties:
> + compatible:
> + items:
> + - enum:
> + - hisilicon,k3-dma-1.0
> + - hisilicon,hisi-pcm-asp-dma-1.0
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + '#dma-cells':
> + const: 1
> +
> + dma-channels:
> + description: Number of physical DMA channels supported.
> + maximum: 32
> +
> + dma-requests:
> + description: Number of virtual DMA request lines supported.
> + maximum: 32
> +
> + dma-channel-mask:
> + description: Bitmask of usable DMA channels.
> +
> + dma-no-cci:
> + type: boolean
> + description: DMA is not coherent with the CCI.
> +
> + dma-type:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: SoC-specific DMA type name.
> + enum:
> + - hi3660_dma
> + - hi6220_dma
> +
> + interrupt-names:
> + maxItems: 1
It'd better move interrupt-names after interrupts property.
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - '#dma-cells'
> + - dma-channels
> + - dma-requests
> +
> +allOf:
> + - $ref: dma-controller.yaml#
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: hisilicon,k3-dma-1.0
> + then:
> + required:
> + - clocks
> +
> +additionalProperties: false
there are $ref, should be unevaluatedProperties?
Frank
> +
> +examples:
> + - |
> + dma-controller@fcd02000 {
> + compatible = "hisilicon,k3-dma-1.0";
> + reg = <0xfcd02000 0x1000>;
> + #dma-cells = <1>;
> + dma-channels = <16>;
> + dma-requests = <27>;
> + interrupts = <0 12 4>;
> + clocks = <&pclk>;
> + };
> diff --git a/Documentation/devicetree/bindings/dma/k3dma.txt b/Documentation/devicetree/bindings/dma/k3dma.txt
> deleted file mode 100644
> index 10a2f15b08a3..000000000000
> --- a/Documentation/devicetree/bindings/dma/k3dma.txt
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -* Hisilicon K3 DMA controller
> -
> -See dma.txt first
> -
> -Required properties:
> -- compatible: Must be one of
> -- "hisilicon,k3-dma-1.0"
> -- "hisilicon,hisi-pcm-asp-dma-1.0"
> -- reg: Should contain DMA registers location and length.
> -- interrupts: Should contain one interrupt shared by all channel
> -- #dma-cells: see dma.txt, should be 1, para number
> -- dma-channels: physical channels supported
> -- dma-requests: virtual channels supported, each virtual channel
> - have specific request line
> -- clocks: clock required
> -
> -Example:
> -
> -Controller:
> - dma0: dma@fcd02000 {
> - compatible = "hisilicon,k3-dma-1.0";
> - reg = <0xfcd02000 0x1000>;
> - #dma-cells = <1>;
> - dma-channels = <16>;
> - dma-requests = <27>;
> - interrupts = <0 12 4>;
> - clocks = <&pclk>;
> - };
> -
> -Client:
> -Use specific request line passing from dmax
> -For example, i2c0 read channel request line is 18, while write channel use 19
> -
> - i2c0: i2c@fcb08000 {
> - compatible = "snps,designware-i2c";
> - dmas = <&dma0 18 /* read channel */
> - &dma0 19>; /* write channel */
> - dma-names = "rx", "tx";
> - };
> -
> - i2c1: i2c@fcb09000 {
> - compatible = "snps,designware-i2c";
> - dmas = <&dma0 20 /* read channel */
> - &dma0 21>; /* write channel */
> - dma-names = "rx", "tx";
> - };
> -
> --
> 2.53.0
>