smb: client: Fix minor whitespace errors and warnings
[linux-modified.git] / Documentation / devicetree / bindings / dma / snps,dw-axi-dmac.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/dma/snps,dw-axi-dmac.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Synopsys DesignWare AXI DMA Controller
8
9 maintainers:
10   - Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
11
12 description:
13   Synopsys DesignWare AXI DMA Controller DT Binding
14
15 allOf:
16   - $ref: dma-controller.yaml#
17
18 properties:
19   compatible:
20     enum:
21       - snps,axi-dma-1.01a
22       - intel,kmb-axi-dma
23       - starfive,jh7110-axi-dma
24
25   reg:
26     minItems: 1
27     items:
28       - description: Address range of the DMAC registers
29       - description: Address range of the DMAC APB registers
30
31   reg-names:
32     items:
33       - const: axidma_ctrl_regs
34       - const: axidma_apb_regs
35
36   interrupts:
37     description:
38       If the IP-core synthesis parameter DMAX_INTR_IO_TYPE is set to 1, this
39       will be per-channel interrupts. Otherwise, this is a single combined IRQ
40       for all channels.
41     minItems: 1
42     maxItems: 8
43
44   clocks:
45     items:
46       - description: Bus Clock
47       - description: Module Clock
48
49   clock-names:
50     items:
51       - const: core-clk
52       - const: cfgr-clk
53
54   '#dma-cells':
55     const: 1
56
57   dma-channels:
58     minimum: 1
59     maximum: 8
60
61   resets:
62     minItems: 1
63     maxItems: 2
64
65   snps,dma-masters:
66     description: |
67       Number of AXI masters supported by the hardware.
68     $ref: /schemas/types.yaml#/definitions/uint32
69     enum: [1, 2]
70
71   snps,data-width:
72     description: |
73       AXI data width supported by hardware.
74       (0 - 8bits, 1 - 16bits, 2 - 32bits, ..., 6 - 512bits)
75     $ref: /schemas/types.yaml#/definitions/uint32
76     enum: [0, 1, 2, 3, 4, 5, 6]
77
78   snps,priority:
79     description: |
80       Channel priority specifier associated with the DMA channels.
81     $ref: /schemas/types.yaml#/definitions/uint32-array
82     minItems: 1
83     maxItems: 8
84
85   snps,block-size:
86     description: |
87       Channel block size specifier associated with the DMA channels.
88     $ref: /schemas/types.yaml#/definitions/uint32-array
89     minItems: 1
90     maxItems: 8
91
92   snps,axi-max-burst-len:
93     description: |
94       Restrict master AXI burst length by value specified in this property.
95       If this property is missing the maximum AXI burst length supported by
96       DMAC is used.
97     $ref: /schemas/types.yaml#/definitions/uint32
98     minimum: 1
99     maximum: 256
100
101 required:
102   - compatible
103   - reg
104   - clocks
105   - clock-names
106   - interrupts
107   - '#dma-cells'
108   - dma-channels
109   - snps,dma-masters
110   - snps,data-width
111   - snps,priority
112   - snps,block-size
113
114 if:
115   properties:
116     compatible:
117       contains:
118         enum:
119           - starfive,jh7110-axi-dma
120 then:
121   properties:
122     resets:
123       minItems: 2
124       items:
125         - description: AXI reset line
126         - description: AHB reset line
127         - description: module reset
128 else:
129   properties:
130     resets:
131       maxItems: 1
132
133 additionalProperties: false
134
135 examples:
136   - |
137     #include <dt-bindings/interrupt-controller/arm-gic.h>
138     #include <dt-bindings/interrupt-controller/irq.h>
139     /* example with snps,dw-axi-dmac */
140     dma-controller@80000 {
141         compatible = "snps,axi-dma-1.01a";
142         reg = <0x80000 0x400>;
143         clocks = <&core_clk>, <&cfgr_clk>;
144         clock-names = "core-clk", "cfgr-clk";
145         interrupt-parent = <&intc>;
146         interrupts = <27>;
147         #dma-cells = <1>;
148         dma-channels = <4>;
149         snps,dma-masters = <2>;
150         snps,data-width = <3>;
151         snps,block-size = <4096 4096 4096 4096>;
152         snps,priority = <0 1 2 3>;
153         snps,axi-max-burst-len = <16>;
154     };