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