xref: /freebsd/sys/contrib/device-tree/Bindings/dma/adi,axi-dmac.yaml (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
1*2846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*2846c905SEmmanuel Vadot%YAML 1.2
3*2846c905SEmmanuel Vadot---
4*2846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/dma/adi,axi-dmac.yaml#
5*2846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2846c905SEmmanuel Vadot
7*2846c905SEmmanuel Vadottitle: Analog Devices AXI-DMAC DMA controller
8*2846c905SEmmanuel Vadot
9*2846c905SEmmanuel Vadotdescription: |
10*2846c905SEmmanuel Vadot  FPGA-based DMA controller designed for use with high-speed converter hardware.
11*2846c905SEmmanuel Vadot
12*2846c905SEmmanuel Vadot  http://analogdevicesinc.github.io/hdl/library/axi_dmac/index.html
13*2846c905SEmmanuel Vadot
14*2846c905SEmmanuel Vadotmaintainers:
15*2846c905SEmmanuel Vadot  - Nuno Sa <nuno.sa@analog.com>
16*2846c905SEmmanuel Vadot
17*2846c905SEmmanuel VadotadditionalProperties: false
18*2846c905SEmmanuel Vadot
19*2846c905SEmmanuel Vadotproperties:
20*2846c905SEmmanuel Vadot  compatible:
21*2846c905SEmmanuel Vadot    const: adi,axi-dmac-1.00.a
22*2846c905SEmmanuel Vadot
23*2846c905SEmmanuel Vadot  reg:
24*2846c905SEmmanuel Vadot    maxItems: 1
25*2846c905SEmmanuel Vadot
26*2846c905SEmmanuel Vadot  interrupts:
27*2846c905SEmmanuel Vadot    maxItems: 1
28*2846c905SEmmanuel Vadot
29*2846c905SEmmanuel Vadot  clocks:
30*2846c905SEmmanuel Vadot    maxItems: 1
31*2846c905SEmmanuel Vadot
32*2846c905SEmmanuel Vadot  "#dma-cells":
33*2846c905SEmmanuel Vadot    const: 1
34*2846c905SEmmanuel Vadot
35*2846c905SEmmanuel Vadot  adi,channels:
36*2846c905SEmmanuel Vadot    deprecated: true
37*2846c905SEmmanuel Vadot    type: object
38*2846c905SEmmanuel Vadot    description:
39*2846c905SEmmanuel Vadot      This sub-node must contain a sub-node for each DMA channel. This node is
40*2846c905SEmmanuel Vadot      only required for IP versions older than 4.3.a and should otherwise be
41*2846c905SEmmanuel Vadot      omitted.
42*2846c905SEmmanuel Vadot    additionalProperties: false
43*2846c905SEmmanuel Vadot
44*2846c905SEmmanuel Vadot    properties:
45*2846c905SEmmanuel Vadot      "#size-cells":
46*2846c905SEmmanuel Vadot        const: 0
47*2846c905SEmmanuel Vadot      "#address-cells":
48*2846c905SEmmanuel Vadot        const: 1
49*2846c905SEmmanuel Vadot
50*2846c905SEmmanuel Vadot    patternProperties:
51*2846c905SEmmanuel Vadot      "^dma-channel@[0-9a-f]+$":
52*2846c905SEmmanuel Vadot        type: object
53*2846c905SEmmanuel Vadot        description:
54*2846c905SEmmanuel Vadot          DMA channel properties based on HDL compile-time configuration.
55*2846c905SEmmanuel Vadot        additionalProperties: false
56*2846c905SEmmanuel Vadot
57*2846c905SEmmanuel Vadot        properties:
58*2846c905SEmmanuel Vadot          reg:
59*2846c905SEmmanuel Vadot            maxItems: 1
60*2846c905SEmmanuel Vadot
61*2846c905SEmmanuel Vadot          adi,source-bus-width:
62*2846c905SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
63*2846c905SEmmanuel Vadot            description: Width of the source bus in bits.
64*2846c905SEmmanuel Vadot            enum: [8, 16, 32, 64, 128]
65*2846c905SEmmanuel Vadot
66*2846c905SEmmanuel Vadot          adi,destination-bus-width:
67*2846c905SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
68*2846c905SEmmanuel Vadot            description: Width of the destination bus in bits.
69*2846c905SEmmanuel Vadot            enum: [8, 16, 32, 64, 128]
70*2846c905SEmmanuel Vadot
71*2846c905SEmmanuel Vadot          adi,source-bus-type:
72*2846c905SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
73*2846c905SEmmanuel Vadot            description: |
74*2846c905SEmmanuel Vadot              Type of the source bus.
75*2846c905SEmmanuel Vadot
76*2846c905SEmmanuel Vadot              0: Memory mapped AXI interface
77*2846c905SEmmanuel Vadot              1: Streaming AXI interface
78*2846c905SEmmanuel Vadot              2: FIFO interface
79*2846c905SEmmanuel Vadot            enum: [0, 1, 2]
80*2846c905SEmmanuel Vadot
81*2846c905SEmmanuel Vadot          adi,destination-bus-type:
82*2846c905SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
83*2846c905SEmmanuel Vadot            description: Type of the destination bus (see adi,source-bus-type).
84*2846c905SEmmanuel Vadot            enum: [0, 1, 2]
85*2846c905SEmmanuel Vadot
86*2846c905SEmmanuel Vadot          adi,length-width:
87*2846c905SEmmanuel Vadot            deprecated: true
88*2846c905SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
89*2846c905SEmmanuel Vadot            description: Width of the DMA transfer length register.
90*2846c905SEmmanuel Vadot
91*2846c905SEmmanuel Vadot          adi,cyclic:
92*2846c905SEmmanuel Vadot            deprecated: true
93*2846c905SEmmanuel Vadot            type: boolean
94*2846c905SEmmanuel Vadot            description:
95*2846c905SEmmanuel Vadot              Must be set if the channel supports hardware cyclic DMA transfers.
96*2846c905SEmmanuel Vadot
97*2846c905SEmmanuel Vadot          adi,2d:
98*2846c905SEmmanuel Vadot            deprecated: true
99*2846c905SEmmanuel Vadot            type: boolean
100*2846c905SEmmanuel Vadot            description:
101*2846c905SEmmanuel Vadot              Must be set if the channel supports hardware 2D DMA transfers.
102*2846c905SEmmanuel Vadot
103*2846c905SEmmanuel Vadot        required:
104*2846c905SEmmanuel Vadot          - reg
105*2846c905SEmmanuel Vadot          - adi,source-bus-width
106*2846c905SEmmanuel Vadot          - adi,destination-bus-width
107*2846c905SEmmanuel Vadot          - adi,source-bus-type
108*2846c905SEmmanuel Vadot          - adi,destination-bus-type
109*2846c905SEmmanuel Vadot
110*2846c905SEmmanuel Vadot    required:
111*2846c905SEmmanuel Vadot      - "#size-cells"
112*2846c905SEmmanuel Vadot      - "#address-cells"
113*2846c905SEmmanuel Vadot
114*2846c905SEmmanuel Vadotrequired:
115*2846c905SEmmanuel Vadot  - compatible
116*2846c905SEmmanuel Vadot  - reg
117*2846c905SEmmanuel Vadot  - interrupts
118*2846c905SEmmanuel Vadot  - clocks
119*2846c905SEmmanuel Vadot  - "#dma-cells"
120*2846c905SEmmanuel Vadot
121*2846c905SEmmanuel Vadotexamples:
122*2846c905SEmmanuel Vadot  - |
123*2846c905SEmmanuel Vadot    dma-controller@7c420000 {
124*2846c905SEmmanuel Vadot        compatible = "adi,axi-dmac-1.00.a";
125*2846c905SEmmanuel Vadot        reg = <0x7c420000 0x10000>;
126*2846c905SEmmanuel Vadot        interrupts = <0 57 0>;
127*2846c905SEmmanuel Vadot        clocks = <&clkc 16>;
128*2846c905SEmmanuel Vadot        #dma-cells = <1>;
129*2846c905SEmmanuel Vadot    };
130