On Mon, Sep 07, 2026 at 11:34:02AM +0800, Jelly Jia wrote: > Document the CIX Sky1 integration wrapper around an Arm DMA-350 controller. > > The wrapper owns SoC integration resources. The child node describes the > generic Arm DMA-350 IP. > > Signed-off-by: Jelly Jia > --- > .../bindings/dma/cix,sky1-dma350.yaml | 102 ++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 103 insertions(+) > create mode 100644 Documentation/devicetree/bindings/dma/cix,sky1-dma350.yaml > > diff --git a/Documentation/devicetree/bindings/dma/cix,sky1-dma350.yaml b/Documentation/devicetree/bindings/dma/cix,sky1-dma350.yaml > new file mode 100644 > index 000000000000..e533f355d135 > --- /dev/null > +++ b/Documentation/devicetree/bindings/dma/cix,sky1-dma350.yaml > @@ -0,0 +1,102 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/dma/cix,sky1-dma350.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: CIX Sky1 DMA-350 Integration > + > +maintainers: > + - CIX Kernel Team > + > +description: > + The CIX Sky1 DMA-350 integration driver owns SoC resources around an > + Arm DMA-350 controller, such as clocks, resets, interrupt routing, and > + optional reserved memory. Reserved memory is described on this parent node > + and assigned by the integration driver to the child DMA-350 device. The child > + node describes the generic DMA-350 IP. I cannot really speak to whether this is a correct thing to do with a dma-350, but it seems to me like something that should be resolved with a device specific comaptible in the dma-350 node. Someone more familar with the IP will have to comment on that. However I would like to know how this impacts the existing dma-350 in he sky1 devicetree. > + > +properties: > + $nodename: > + pattern: "^dma@[0-9a-f]+$" > + > + compatible: > + const: cix,sky1-dma350 > + > + "#address-cells": > + const: 2 > + > + "#size-cells": > + const: 2 > + > + ranges: true > + > + dma-ranges: true > + > + clocks: > + maxItems: 1 > + > + resets: > + maxItems: 1 > + > + power-domains: > + maxItems: 1 > + > + cix,irq-router: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + Syscon phandle for the Sky1 subsystem register block that routes > + DMA-350 channel interrupts to the AP interrupt controller. > + > + memory-region: > + maxItems: 1 > + description: > + Reserved memory pool assigned by the CIX Sky1 DMA-350 integration driver > + to the child Arm DMA-350 device. > + > +patternProperties: > + '^dma-controller@[0-9a-f]+$': > + $ref: arm,dma-350.yaml# > + > +required: > + - compatible > + - "#address-cells" > + - "#size-cells" > + - ranges > + - dma-ranges > + > +additionalProperties: false > + > +examples: > + - | > + #include > + > + / { > + #address-cells = <2>; > + #size-cells = <2>; > + interrupt-parent = <&gic>; > + > + gic: interrupt-controller { > + #address-cells = <0>; > + interrupt-controller; > + #interrupt-cells = <4>; > + }; > + > + dma@7010000 { > + compatible = "cix,sky1-dma350"; > + #address-cells = <2>; > + #size-cells = <2>; > + ranges = <0x0 0x0 0x0 0x07010000 0x0 0x10000>; > + dma-ranges = <0x0 0x20000000 0x0 0x07010000 0x0 0x00100000>; > + clocks = <&clk 9>; > + resets = <&rst 15>; > + cix,irq-router = <&audss_cru>; > + > + dma-controller@0 { > + compatible = "arm,dma-350"; > + reg = <0x0 0x0 0x0 0x10000>; > + interrupts = ; > + #dma-cells = <1>; > + }; > + }; > + }; > diff --git a/MAINTAINERS b/MAINTAINERS > index 3a19da74d00c..feff8f9ecb2b 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -2825,6 +2825,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) > S: Maintained > T: git https://github.com/cixtech/linux-mainline.git > F: Documentation/devicetree/bindings/arm/cix.yaml > +F: Documentation/devicetree/bindings/dma/cix,sky1-dma350.yaml > F: Documentation/devicetree/bindings/mailbox/cix,sky1-mbox.yaml > F: arch/arm64/boot/dts/cix/ > F: drivers/mailbox/cix-mailbox.c > -- > 2.54.0 >