1# SPDX-License-Identifier: GPL-2.0-only 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/dma/snps,dma-spear1340.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Synopsys Designware DMA Controller 8 9maintainers: 10 - Viresh Kumar <vireshk@kernel.org> 11 - Andy Shevchenko <andriy.shevchenko@linux.intel.com> 12 13allOf: 14 - $ref: "dma-controller.yaml#" 15 16properties: 17 compatible: 18 oneOf: 19 - const: snps,dma-spear1340 20 - items: 21 - enum: 22 - renesas,r9a06g032-dma 23 - const: renesas,rzn1-dma 24 25 26 "#dma-cells": 27 minimum: 3 28 maximum: 4 29 description: | 30 First cell is a phandle pointing to the DMA controller. Second one is 31 the DMA request line number. Third cell is the memory master identifier 32 for transfers on dynamically allocated channel. Fourth cell is the 33 peripheral master identifier for transfers on an allocated channel. Fifth 34 cell is an optional mask of the DMA channels permitted to be allocated 35 for the corresponding client device. 36 37 reg: 38 maxItems: 1 39 40 interrupts: 41 maxItems: 1 42 43 clocks: 44 maxItems: 1 45 46 clock-names: 47 description: AHB interface reference clock. 48 const: hclk 49 50 dma-channels: 51 description: | 52 Number of DMA channels supported by the controller. In case if 53 not specified the driver will try to auto-detect this and 54 the rest of the optional parameters. 55 minimum: 1 56 maximum: 8 57 58 dma-requests: 59 minimum: 1 60 maximum: 16 61 62 dma-masters: 63 $ref: /schemas/types.yaml#/definitions/uint32 64 description: | 65 Number of DMA masters supported by the controller. In case if 66 not specified the driver will try to auto-detect this and 67 the rest of the optional parameters. 68 minimum: 1 69 maximum: 4 70 71 chan_allocation_order: 72 $ref: /schemas/types.yaml#/definitions/uint32 73 description: | 74 DMA channels allocation order specifier. Zero means ascending order 75 (first free allocated), while one - descending (last free allocated). 76 default: 0 77 enum: [0, 1] 78 79 chan_priority: 80 $ref: /schemas/types.yaml#/definitions/uint32 81 description: | 82 DMA channels priority order. Zero means ascending channels priority 83 so the very first channel has the highest priority. While 1 means 84 descending priority (the last channel has the highest priority). 85 default: 0 86 enum: [0, 1] 87 88 block_size: 89 $ref: /schemas/types.yaml#/definitions/uint32 90 description: Maximum block size supported by the DMA controller. 91 enum: [3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095] 92 93 data-width: 94 $ref: /schemas/types.yaml#/definitions/uint32-array 95 description: Data bus width per each DMA master in bytes. 96 items: 97 maxItems: 4 98 items: 99 enum: [4, 8, 16, 32] 100 101 data_width: 102 $ref: /schemas/types.yaml#/definitions/uint32-array 103 deprecated: true 104 description: | 105 Data bus width per each DMA master in (2^n * 8) bits. This property is 106 deprecated. It' usage is discouraged in favor of data-width one. Moreover 107 the property incorrectly permits to define data-bus width of 8 and 16 108 bits, which is impossible in accordance with DW DMAC IP-core data book. 109 items: 110 maxItems: 4 111 items: 112 enum: 113 - 0 # 8 bits 114 - 1 # 16 bits 115 - 2 # 32 bits 116 - 3 # 64 bits 117 - 4 # 128 bits 118 - 5 # 256 bits 119 default: 0 120 121 multi-block: 122 $ref: /schemas/types.yaml#/definitions/uint32-array 123 description: | 124 LLP-based multi-block transfer supported by hardware per 125 each DMA channel. 126 items: 127 maxItems: 8 128 items: 129 enum: [0, 1] 130 default: 1 131 132 snps,max-burst-len: 133 $ref: /schemas/types.yaml#/definitions/uint32-array 134 description: | 135 Maximum length of the burst transactions supported by the controller. 136 This property defines the upper limit of the run-time burst setting 137 (CTLx.SRC_MSIZE/CTLx.DST_MSIZE fields) so the allowed burst length 138 will be from 1 to max-burst-len words. It's an array property with one 139 cell per channel in the units determined by the value set in the 140 CTLx.SRC_TR_WIDTH/CTLx.DST_TR_WIDTH fields (data width). 141 items: 142 maxItems: 8 143 items: 144 enum: [4, 8, 16, 32, 64, 128, 256] 145 default: 256 146 147 snps,dma-protection-control: 148 $ref: /schemas/types.yaml#/definitions/uint32 149 description: | 150 Bits one-to-one passed to the AHB HPROT[3:1] bus. Each bit setting 151 indicates the following features: bit 0 - privileged mode, 152 bit 1 - DMA is bufferable, bit 2 - DMA is cacheable. 153 default: 0 154 minimum: 0 155 maximum: 7 156 157unevaluatedProperties: false 158 159required: 160 - compatible 161 - "#dma-cells" 162 - reg 163 - interrupts 164 165examples: 166 - | 167 dma-controller@fc000000 { 168 compatible = "snps,dma-spear1340"; 169 reg = <0xfc000000 0x1000>; 170 interrupt-parent = <&vic1>; 171 interrupts = <12>; 172 173 dma-channels = <8>; 174 dma-requests = <16>; 175 dma-masters = <4>; 176 #dma-cells = <3>; 177 178 chan_allocation_order = <1>; 179 chan_priority = <1>; 180 block_size = <0xfff>; 181 data-width = <8 8>; 182 multi-block = <0 0 0 0 0 0 0 0>; 183 snps,max-burst-len = <16 16 4 4 4 4 4 4>; 184 }; 185... 186