155 lines
3.5 KiB
YAML
155 lines
3.5 KiB
YAML
# 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>;
|
|
};
|