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