xref: /freebsd/sys/contrib/device-tree/Bindings/dma/snps,dw-axi-dmac.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
15def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/dma/snps,dw-axi-dmac.yaml#
55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
75def4c47SEmmanuel Vadottitle: Synopsys DesignWare AXI DMA Controller
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotmaintainers:
105def4c47SEmmanuel Vadot  - Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
115def4c47SEmmanuel Vadot
125def4c47SEmmanuel Vadotdescription:
135def4c47SEmmanuel Vadot  Synopsys DesignWare AXI DMA Controller DT Binding
145def4c47SEmmanuel Vadot
155def4c47SEmmanuel VadotallOf:
16cb7aa33aSEmmanuel Vadot  - $ref: dma-controller.yaml#
175def4c47SEmmanuel Vadot
185def4c47SEmmanuel Vadotproperties:
195def4c47SEmmanuel Vadot  compatible:
205def4c47SEmmanuel Vadot    enum:
215def4c47SEmmanuel Vadot      - snps,axi-dma-1.01a
225def4c47SEmmanuel Vadot      - intel,kmb-axi-dma
23fac71e4eSEmmanuel Vadot      - starfive,jh7110-axi-dma
24*7d0873ebSEmmanuel Vadot      - starfive,jh8100-axi-dma
255def4c47SEmmanuel Vadot
265def4c47SEmmanuel Vadot  reg:
275def4c47SEmmanuel Vadot    minItems: 1
285def4c47SEmmanuel Vadot    items:
295def4c47SEmmanuel Vadot      - description: Address range of the DMAC registers
305def4c47SEmmanuel Vadot      - description: Address range of the DMAC APB registers
315def4c47SEmmanuel Vadot
325def4c47SEmmanuel Vadot  reg-names:
335def4c47SEmmanuel Vadot    items:
345def4c47SEmmanuel Vadot      - const: axidma_ctrl_regs
355def4c47SEmmanuel Vadot      - const: axidma_apb_regs
365def4c47SEmmanuel Vadot
375def4c47SEmmanuel Vadot  interrupts:
38b97ee269SEmmanuel Vadot    description:
39b97ee269SEmmanuel Vadot      If the IP-core synthesis parameter DMAX_INTR_IO_TYPE is set to 1, this
40b97ee269SEmmanuel Vadot      will be per-channel interrupts. Otherwise, this is a single combined IRQ
41b97ee269SEmmanuel Vadot      for all channels.
42b97ee269SEmmanuel Vadot    minItems: 1
43b97ee269SEmmanuel Vadot    maxItems: 8
445def4c47SEmmanuel Vadot
455def4c47SEmmanuel Vadot  clocks:
465def4c47SEmmanuel Vadot    items:
475def4c47SEmmanuel Vadot      - description: Bus Clock
485def4c47SEmmanuel Vadot      - description: Module Clock
495def4c47SEmmanuel Vadot
505def4c47SEmmanuel Vadot  clock-names:
515def4c47SEmmanuel Vadot    items:
525def4c47SEmmanuel Vadot      - const: core-clk
535def4c47SEmmanuel Vadot      - const: cfgr-clk
545def4c47SEmmanuel Vadot
555def4c47SEmmanuel Vadot  '#dma-cells':
565def4c47SEmmanuel Vadot    const: 1
575def4c47SEmmanuel Vadot
585def4c47SEmmanuel Vadot  dma-channels:
595def4c47SEmmanuel Vadot    minimum: 1
605def4c47SEmmanuel Vadot    maximum: 8
615def4c47SEmmanuel Vadot
62e67e8565SEmmanuel Vadot  resets:
63fac71e4eSEmmanuel Vadot    minItems: 1
64fac71e4eSEmmanuel Vadot    maxItems: 2
65e67e8565SEmmanuel Vadot
665def4c47SEmmanuel Vadot  snps,dma-masters:
675def4c47SEmmanuel Vadot    description: |
685def4c47SEmmanuel Vadot      Number of AXI masters supported by the hardware.
695def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
705def4c47SEmmanuel Vadot    enum: [1, 2]
715def4c47SEmmanuel Vadot
725def4c47SEmmanuel Vadot  snps,data-width:
735def4c47SEmmanuel Vadot    description: |
745def4c47SEmmanuel Vadot      AXI data width supported by hardware.
755def4c47SEmmanuel Vadot      (0 - 8bits, 1 - 16bits, 2 - 32bits, ..., 6 - 512bits)
765def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
775def4c47SEmmanuel Vadot    enum: [0, 1, 2, 3, 4, 5, 6]
785def4c47SEmmanuel Vadot
795def4c47SEmmanuel Vadot  snps,priority:
805def4c47SEmmanuel Vadot    description: |
815def4c47SEmmanuel Vadot      Channel priority specifier associated with the DMA channels.
825def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
835def4c47SEmmanuel Vadot    minItems: 1
845def4c47SEmmanuel Vadot    maxItems: 8
855def4c47SEmmanuel Vadot
865def4c47SEmmanuel Vadot  snps,block-size:
875def4c47SEmmanuel Vadot    description: |
885def4c47SEmmanuel Vadot      Channel block size specifier associated with the DMA channels.
895def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
905def4c47SEmmanuel Vadot    minItems: 1
915def4c47SEmmanuel Vadot    maxItems: 8
925def4c47SEmmanuel Vadot
935def4c47SEmmanuel Vadot  snps,axi-max-burst-len:
945def4c47SEmmanuel Vadot    description: |
955def4c47SEmmanuel Vadot      Restrict master AXI burst length by value specified in this property.
965def4c47SEmmanuel Vadot      If this property is missing the maximum AXI burst length supported by
975def4c47SEmmanuel Vadot      DMAC is used.
985def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
995def4c47SEmmanuel Vadot    minimum: 1
1005def4c47SEmmanuel Vadot    maximum: 256
1015def4c47SEmmanuel Vadot
1025def4c47SEmmanuel Vadotrequired:
1035def4c47SEmmanuel Vadot  - compatible
1045def4c47SEmmanuel Vadot  - reg
1055def4c47SEmmanuel Vadot  - clocks
1065def4c47SEmmanuel Vadot  - clock-names
1075def4c47SEmmanuel Vadot  - interrupts
1085def4c47SEmmanuel Vadot  - '#dma-cells'
1095def4c47SEmmanuel Vadot  - dma-channels
1105def4c47SEmmanuel Vadot  - snps,dma-masters
1115def4c47SEmmanuel Vadot  - snps,data-width
1125def4c47SEmmanuel Vadot  - snps,priority
1135def4c47SEmmanuel Vadot  - snps,block-size
1145def4c47SEmmanuel Vadot
115fac71e4eSEmmanuel Vadotif:
116fac71e4eSEmmanuel Vadot  properties:
117fac71e4eSEmmanuel Vadot    compatible:
118fac71e4eSEmmanuel Vadot      contains:
119fac71e4eSEmmanuel Vadot        enum:
120fac71e4eSEmmanuel Vadot          - starfive,jh7110-axi-dma
121fac71e4eSEmmanuel Vadotthen:
122fac71e4eSEmmanuel Vadot  properties:
123fac71e4eSEmmanuel Vadot    resets:
124fac71e4eSEmmanuel Vadot      minItems: 2
125fac71e4eSEmmanuel Vadot      items:
126fac71e4eSEmmanuel Vadot        - description: AXI reset line
127fac71e4eSEmmanuel Vadot        - description: AHB reset line
128fac71e4eSEmmanuel Vadot        - description: module reset
129fac71e4eSEmmanuel Vadotelse:
130fac71e4eSEmmanuel Vadot  properties:
131fac71e4eSEmmanuel Vadot    resets:
132fac71e4eSEmmanuel Vadot      maxItems: 1
133fac71e4eSEmmanuel Vadot
1345def4c47SEmmanuel VadotadditionalProperties: false
1355def4c47SEmmanuel Vadot
1365def4c47SEmmanuel Vadotexamples:
1375def4c47SEmmanuel Vadot  - |
1385def4c47SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1395def4c47SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1405def4c47SEmmanuel Vadot    /* example with snps,dw-axi-dmac */
141cb7aa33aSEmmanuel Vadot    dma-controller@80000 {
1425def4c47SEmmanuel Vadot        compatible = "snps,axi-dma-1.01a";
1435def4c47SEmmanuel Vadot        reg = <0x80000 0x400>;
1445def4c47SEmmanuel Vadot        clocks = <&core_clk>, <&cfgr_clk>;
1455def4c47SEmmanuel Vadot        clock-names = "core-clk", "cfgr-clk";
1465def4c47SEmmanuel Vadot        interrupt-parent = <&intc>;
1475def4c47SEmmanuel Vadot        interrupts = <27>;
1485def4c47SEmmanuel Vadot        #dma-cells = <1>;
1495def4c47SEmmanuel Vadot        dma-channels = <4>;
1505def4c47SEmmanuel Vadot        snps,dma-masters = <2>;
1515def4c47SEmmanuel Vadot        snps,data-width = <3>;
1525def4c47SEmmanuel Vadot        snps,block-size = <4096 4096 4096 4096>;
1535def4c47SEmmanuel Vadot        snps,priority = <0 1 2 3>;
1545def4c47SEmmanuel Vadot        snps,axi-max-burst-len = <16>;
1555def4c47SEmmanuel Vadot    };
156