xref: /linux/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
18c70fb7eSSia Jee Heng# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c70fb7eSSia Jee Heng%YAML 1.2
38c70fb7eSSia Jee Heng---
48c70fb7eSSia Jee Heng$id: http://devicetree.org/schemas/dma/snps,dw-axi-dmac.yaml#
58c70fb7eSSia Jee Heng$schema: http://devicetree.org/meta-schemas/core.yaml#
68c70fb7eSSia Jee Heng
78c70fb7eSSia Jee Hengtitle: Synopsys DesignWare AXI DMA Controller
88c70fb7eSSia Jee Heng
98c70fb7eSSia Jee Hengmaintainers:
108c70fb7eSSia Jee Heng  - Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
118c70fb7eSSia Jee Heng
128c70fb7eSSia Jee Hengdescription:
138c70fb7eSSia Jee Heng  Synopsys DesignWare AXI DMA Controller DT Binding
148c70fb7eSSia Jee Heng
158c70fb7eSSia Jee HengallOf:
1610cafa2dSKrzysztof Kozlowski  - $ref: dma-controller.yaml#
178c70fb7eSSia Jee Heng
188c70fb7eSSia Jee Hengproperties:
198c70fb7eSSia Jee Heng  compatible:
208c70fb7eSSia Jee Heng    enum:
218c70fb7eSSia Jee Heng      - snps,axi-dma-1.01a
220a35c9a0SSia Jee Heng      - intel,kmb-axi-dma
23c9566127SWalker Chen      - starfive,jh7110-axi-dma
249bcf929bSTan Chun Hau      - starfive,jh8100-axi-dma
258c70fb7eSSia Jee Heng
268c70fb7eSSia Jee Heng  reg:
270a35c9a0SSia Jee Heng    minItems: 1
288c70fb7eSSia Jee Heng    items:
298c70fb7eSSia Jee Heng      - description: Address range of the DMAC registers
300a35c9a0SSia Jee Heng      - description: Address range of the DMAC APB registers
318c70fb7eSSia Jee Heng
328c70fb7eSSia Jee Heng  reg-names:
338c70fb7eSSia Jee Heng    items:
348c70fb7eSSia Jee Heng      - const: axidma_ctrl_regs
350a35c9a0SSia Jee Heng      - const: axidma_apb_regs
368c70fb7eSSia Jee Heng
378c70fb7eSSia Jee Heng  interrupts:
384ce653d7SConor Dooley    description:
394ce653d7SConor Dooley      If the IP-core synthesis parameter DMAX_INTR_IO_TYPE is set to 1, this
404ce653d7SConor Dooley      will be per-channel interrupts. Otherwise, this is a single combined IRQ
414ce653d7SConor Dooley      for all channels.
424ce653d7SConor Dooley    minItems: 1
434ce653d7SConor Dooley    maxItems: 8
448c70fb7eSSia Jee Heng
45*2c83769bSKhairul Anuar Romli  iommus:
46*2c83769bSKhairul Anuar Romli    maxItems: 1
47*2c83769bSKhairul Anuar Romli
488c70fb7eSSia Jee Heng  clocks:
498c70fb7eSSia Jee Heng    items:
508c70fb7eSSia Jee Heng      - description: Bus Clock
518c70fb7eSSia Jee Heng      - description: Module Clock
528c70fb7eSSia Jee Heng
538c70fb7eSSia Jee Heng  clock-names:
548c70fb7eSSia Jee Heng    items:
558c70fb7eSSia Jee Heng      - const: core-clk
568c70fb7eSSia Jee Heng      - const: cfgr-clk
578c70fb7eSSia Jee Heng
588c70fb7eSSia Jee Heng  '#dma-cells':
598c70fb7eSSia Jee Heng    const: 1
608c70fb7eSSia Jee Heng
618c70fb7eSSia Jee Heng  dma-channels:
628c70fb7eSSia Jee Heng    minimum: 1
638c70fb7eSSia Jee Heng    maximum: 8
648c70fb7eSSia Jee Heng
656ec29d40SInochi Amaoto  dma-noncoherent: true
666ec29d40SInochi Amaoto
670f93f204SGeert Uytterhoeven  resets:
68c9566127SWalker Chen    minItems: 1
69c9566127SWalker Chen    maxItems: 2
700f93f204SGeert Uytterhoeven
718c70fb7eSSia Jee Heng  snps,dma-masters:
728c70fb7eSSia Jee Heng    description: |
738c70fb7eSSia Jee Heng      Number of AXI masters supported by the hardware.
748c70fb7eSSia Jee Heng    $ref: /schemas/types.yaml#/definitions/uint32
758c70fb7eSSia Jee Heng    enum: [1, 2]
768c70fb7eSSia Jee Heng
778c70fb7eSSia Jee Heng  snps,data-width:
788c70fb7eSSia Jee Heng    description: |
798c70fb7eSSia Jee Heng      AXI data width supported by hardware.
808c70fb7eSSia Jee Heng      (0 - 8bits, 1 - 16bits, 2 - 32bits, ..., 6 - 512bits)
818c70fb7eSSia Jee Heng    $ref: /schemas/types.yaml#/definitions/uint32
828c70fb7eSSia Jee Heng    enum: [0, 1, 2, 3, 4, 5, 6]
838c70fb7eSSia Jee Heng
848c70fb7eSSia Jee Heng  snps,priority:
858c70fb7eSSia Jee Heng    description: |
868c70fb7eSSia Jee Heng      Channel priority specifier associated with the DMA channels.
878c70fb7eSSia Jee Heng    $ref: /schemas/types.yaml#/definitions/uint32-array
888c70fb7eSSia Jee Heng    minItems: 1
898c70fb7eSSia Jee Heng    maxItems: 8
908c70fb7eSSia Jee Heng
918c70fb7eSSia Jee Heng  snps,block-size:
928c70fb7eSSia Jee Heng    description: |
938c70fb7eSSia Jee Heng      Channel block size specifier associated with the DMA channels.
948c70fb7eSSia Jee Heng    $ref: /schemas/types.yaml#/definitions/uint32-array
958c70fb7eSSia Jee Heng    minItems: 1
968c70fb7eSSia Jee Heng    maxItems: 8
978c70fb7eSSia Jee Heng
988c70fb7eSSia Jee Heng  snps,axi-max-burst-len:
998c70fb7eSSia Jee Heng    description: |
1008c70fb7eSSia Jee Heng      Restrict master AXI burst length by value specified in this property.
1018c70fb7eSSia Jee Heng      If this property is missing the maximum AXI burst length supported by
1028c70fb7eSSia Jee Heng      DMAC is used.
1038c70fb7eSSia Jee Heng    $ref: /schemas/types.yaml#/definitions/uint32
1048c70fb7eSSia Jee Heng    minimum: 1
1058c70fb7eSSia Jee Heng    maximum: 256
1068c70fb7eSSia Jee Heng
1078c70fb7eSSia Jee Hengrequired:
1088c70fb7eSSia Jee Heng  - compatible
1098c70fb7eSSia Jee Heng  - reg
1108c70fb7eSSia Jee Heng  - clocks
1118c70fb7eSSia Jee Heng  - clock-names
1128c70fb7eSSia Jee Heng  - interrupts
1138c70fb7eSSia Jee Heng  - '#dma-cells'
1148c70fb7eSSia Jee Heng  - dma-channels
1158c70fb7eSSia Jee Heng  - snps,dma-masters
1168c70fb7eSSia Jee Heng  - snps,data-width
1178c70fb7eSSia Jee Heng  - snps,priority
1188c70fb7eSSia Jee Heng  - snps,block-size
1198c70fb7eSSia Jee Heng
120c9566127SWalker Chenif:
121c9566127SWalker Chen  properties:
122c9566127SWalker Chen    compatible:
123c9566127SWalker Chen      contains:
124c9566127SWalker Chen        enum:
125c9566127SWalker Chen          - starfive,jh7110-axi-dma
126c9566127SWalker Chenthen:
127c9566127SWalker Chen  properties:
128c9566127SWalker Chen    resets:
129c9566127SWalker Chen      minItems: 2
130c9566127SWalker Chen      items:
131c9566127SWalker Chen        - description: AXI reset line
132c9566127SWalker Chen        - description: AHB reset line
133c9566127SWalker Chen        - description: module reset
134c9566127SWalker Chenelse:
135c9566127SWalker Chen  properties:
136c9566127SWalker Chen    resets:
137c9566127SWalker Chen      maxItems: 1
138c9566127SWalker Chen
1398c70fb7eSSia Jee HengadditionalProperties: false
1408c70fb7eSSia Jee Heng
1418c70fb7eSSia Jee Hengexamples:
1428c70fb7eSSia Jee Heng  - |
1438c70fb7eSSia Jee Heng    #include <dt-bindings/interrupt-controller/arm-gic.h>
1448c70fb7eSSia Jee Heng    #include <dt-bindings/interrupt-controller/irq.h>
1458c70fb7eSSia Jee Heng    /* example with snps,dw-axi-dmac */
146837b2fafSKrzysztof Kozlowski    dma-controller@80000 {
1478c70fb7eSSia Jee Heng        compatible = "snps,axi-dma-1.01a";
1488c70fb7eSSia Jee Heng        reg = <0x80000 0x400>;
1498c70fb7eSSia Jee Heng        clocks = <&core_clk>, <&cfgr_clk>;
1508c70fb7eSSia Jee Heng        clock-names = "core-clk", "cfgr-clk";
1518c70fb7eSSia Jee Heng        interrupt-parent = <&intc>;
1528c70fb7eSSia Jee Heng        interrupts = <27>;
1538c70fb7eSSia Jee Heng        #dma-cells = <1>;
1548c70fb7eSSia Jee Heng        dma-channels = <4>;
1558c70fb7eSSia Jee Heng        snps,dma-masters = <2>;
1568c70fb7eSSia Jee Heng        snps,data-width = <3>;
1578c70fb7eSSia Jee Heng        snps,block-size = <4096 4096 4096 4096>;
1588c70fb7eSSia Jee Heng        snps,priority = <0 1 2 3>;
1598c70fb7eSSia Jee Heng        snps,axi-max-burst-len = <16>;
1608c70fb7eSSia Jee Heng    };
161