# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/dma/snps,dw-axi-dmac.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Synopsys DesignWare AXI DMA Controller maintainers: - Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> description: Synopsys DesignWare AXI DMA Controller DT Binding allOf: - $ref: dma-controller.yaml# properties: compatible: enum: - snps,axi-dma-1.01a - intel,kmb-axi-dma - starfive,jh7110-axi-dma reg: minItems: 1 items: - description: Address range of the DMAC registers - description: Address range of the DMAC APB registers reg-names: items: - const: axidma_ctrl_regs - const: axidma_apb_regs interrupts: description: If the IP-core synthesis parameter DMAX_INTR_IO_TYPE is set to 1, this will be per-channel interrupts. Otherwise, this is a single combined IRQ for all channels. minItems: 1 maxItems: 8 clocks: items: - description: Bus Clock - description: Module Clock clock-names: items: - const: core-clk - const: cfgr-clk '#dma-cells': const: 1 dma-channels: minimum: 1 maximum: 8 resets: minItems: 1 maxItems: 2 snps,dma-masters: description: | Number of AXI masters supported by the hardware. $ref: /schemas/types.yaml#/definitions/uint32 enum: [1, 2] snps,data-width: description: | AXI data width supported by hardware. (0 - 8bits, 1 - 16bits, 2 - 32bits, ..., 6 - 512bits) $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1, 2, 3, 4, 5, 6] snps,priority: description: | Channel priority specifier associated with the DMA channels. $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 maxItems: 8 snps,block-size: description: | Channel block size specifier associated with the DMA channels. $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 maxItems: 8 snps,axi-max-burst-len: description: | Restrict master AXI burst length by value specified in this property. If this property is missing the maximum AXI burst length supported by DMAC is used. $ref: /schemas/types.yaml#/definitions/uint32 minimum: 1 maximum: 256 required: - compatible - reg - clocks - clock-names - interrupts - '#dma-cells' - dma-channels - snps,dma-masters - snps,data-width - snps,priority - snps,block-size if: properties: compatible: contains: enum: - starfive,jh7110-axi-dma then: properties: resets: minItems: 2 items: - description: AXI reset line - description: AHB reset line - description: module reset else: properties: resets: maxItems: 1 additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/irq.h> /* example with snps,dw-axi-dmac */ dma-controller@80000 { compatible = "snps,axi-dma-1.01a"; reg = <0x80000 0x400>; clocks = <&core_clk>, <&cfgr_clk>; clock-names = "core-clk", "cfgr-clk"; interrupt-parent = <&intc>; interrupts = <27>; #dma-cells = <1>; dma-channels = <4>; snps,dma-masters = <2>; snps,data-width = <3>; snps,block-size = <4096 4096 4096 4096>; snps,priority = <0 1 2 3>; snps,axi-max-burst-len = <16>; };