162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/dma/snps,dma-spear1340.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Synopsys Designware DMA Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Viresh Kumar <vireshk@kernel.org> 1162306a36Sopenharmony_ci - Andy Shevchenko <andriy.shevchenko@linux.intel.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciallOf: 1462306a36Sopenharmony_ci - $ref: dma-controller.yaml# 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciproperties: 1762306a36Sopenharmony_ci compatible: 1862306a36Sopenharmony_ci oneOf: 1962306a36Sopenharmony_ci - const: snps,dma-spear1340 2062306a36Sopenharmony_ci - items: 2162306a36Sopenharmony_ci - enum: 2262306a36Sopenharmony_ci - renesas,r9a06g032-dma 2362306a36Sopenharmony_ci - const: renesas,rzn1-dma 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci "#dma-cells": 2762306a36Sopenharmony_ci minimum: 3 2862306a36Sopenharmony_ci maximum: 4 2962306a36Sopenharmony_ci description: | 3062306a36Sopenharmony_ci First cell is a phandle pointing to the DMA controller. Second one is 3162306a36Sopenharmony_ci the DMA request line number. Third cell is the memory master identifier 3262306a36Sopenharmony_ci for transfers on dynamically allocated channel. Fourth cell is the 3362306a36Sopenharmony_ci peripheral master identifier for transfers on an allocated channel. Fifth 3462306a36Sopenharmony_ci cell is an optional mask of the DMA channels permitted to be allocated 3562306a36Sopenharmony_ci for the corresponding client device. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci reg: 3862306a36Sopenharmony_ci maxItems: 1 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci interrupts: 4162306a36Sopenharmony_ci maxItems: 1 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci clocks: 4462306a36Sopenharmony_ci maxItems: 1 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci clock-names: 4762306a36Sopenharmony_ci description: AHB interface reference clock. 4862306a36Sopenharmony_ci const: hclk 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci dma-channels: 5162306a36Sopenharmony_ci description: | 5262306a36Sopenharmony_ci Number of DMA channels supported by the controller. In case if 5362306a36Sopenharmony_ci not specified the driver will try to auto-detect this and 5462306a36Sopenharmony_ci the rest of the optional parameters. 5562306a36Sopenharmony_ci minimum: 1 5662306a36Sopenharmony_ci maximum: 8 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci dma-requests: 5962306a36Sopenharmony_ci minimum: 1 6062306a36Sopenharmony_ci maximum: 16 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci dma-masters: 6362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6462306a36Sopenharmony_ci description: | 6562306a36Sopenharmony_ci Number of DMA masters supported by the controller. In case if 6662306a36Sopenharmony_ci not specified the driver will try to auto-detect this and 6762306a36Sopenharmony_ci the rest of the optional parameters. 6862306a36Sopenharmony_ci minimum: 1 6962306a36Sopenharmony_ci maximum: 4 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci chan_allocation_order: 7262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 7362306a36Sopenharmony_ci description: | 7462306a36Sopenharmony_ci DMA channels allocation order specifier. Zero means ascending order 7562306a36Sopenharmony_ci (first free allocated), while one - descending (last free allocated). 7662306a36Sopenharmony_ci default: 0 7762306a36Sopenharmony_ci enum: [0, 1] 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci chan_priority: 8062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 8162306a36Sopenharmony_ci description: | 8262306a36Sopenharmony_ci DMA channels priority order. Zero means ascending channels priority 8362306a36Sopenharmony_ci so the very first channel has the highest priority. While 1 means 8462306a36Sopenharmony_ci descending priority (the last channel has the highest priority). 8562306a36Sopenharmony_ci default: 0 8662306a36Sopenharmony_ci enum: [0, 1] 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci block_size: 8962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9062306a36Sopenharmony_ci description: Maximum block size supported by the DMA controller. 9162306a36Sopenharmony_ci enum: [3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095] 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci data-width: 9462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 9562306a36Sopenharmony_ci description: Data bus width per each DMA master in bytes. 9662306a36Sopenharmony_ci items: 9762306a36Sopenharmony_ci maxItems: 4 9862306a36Sopenharmony_ci items: 9962306a36Sopenharmony_ci enum: [4, 8, 16, 32] 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci data_width: 10262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 10362306a36Sopenharmony_ci deprecated: true 10462306a36Sopenharmony_ci description: | 10562306a36Sopenharmony_ci Data bus width per each DMA master in (2^n * 8) bits. This property is 10662306a36Sopenharmony_ci deprecated. It' usage is discouraged in favor of data-width one. Moreover 10762306a36Sopenharmony_ci the property incorrectly permits to define data-bus width of 8 and 16 10862306a36Sopenharmony_ci bits, which is impossible in accordance with DW DMAC IP-core data book. 10962306a36Sopenharmony_ci items: 11062306a36Sopenharmony_ci maxItems: 4 11162306a36Sopenharmony_ci items: 11262306a36Sopenharmony_ci enum: 11362306a36Sopenharmony_ci - 0 # 8 bits 11462306a36Sopenharmony_ci - 1 # 16 bits 11562306a36Sopenharmony_ci - 2 # 32 bits 11662306a36Sopenharmony_ci - 3 # 64 bits 11762306a36Sopenharmony_ci - 4 # 128 bits 11862306a36Sopenharmony_ci - 5 # 256 bits 11962306a36Sopenharmony_ci default: 0 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci multi-block: 12262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 12362306a36Sopenharmony_ci description: | 12462306a36Sopenharmony_ci LLP-based multi-block transfer supported by hardware per 12562306a36Sopenharmony_ci each DMA channel. 12662306a36Sopenharmony_ci items: 12762306a36Sopenharmony_ci maxItems: 8 12862306a36Sopenharmony_ci items: 12962306a36Sopenharmony_ci enum: [0, 1] 13062306a36Sopenharmony_ci default: 1 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci snps,max-burst-len: 13362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 13462306a36Sopenharmony_ci description: | 13562306a36Sopenharmony_ci Maximum length of the burst transactions supported by the controller. 13662306a36Sopenharmony_ci This property defines the upper limit of the run-time burst setting 13762306a36Sopenharmony_ci (CTLx.SRC_MSIZE/CTLx.DST_MSIZE fields) so the allowed burst length 13862306a36Sopenharmony_ci will be from 1 to max-burst-len words. It's an array property with one 13962306a36Sopenharmony_ci cell per channel in the units determined by the value set in the 14062306a36Sopenharmony_ci CTLx.SRC_TR_WIDTH/CTLx.DST_TR_WIDTH fields (data width). 14162306a36Sopenharmony_ci items: 14262306a36Sopenharmony_ci maxItems: 8 14362306a36Sopenharmony_ci items: 14462306a36Sopenharmony_ci enum: [4, 8, 16, 32, 64, 128, 256] 14562306a36Sopenharmony_ci default: 256 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci snps,dma-protection-control: 14862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 14962306a36Sopenharmony_ci description: | 15062306a36Sopenharmony_ci Bits one-to-one passed to the AHB HPROT[3:1] bus. Each bit setting 15162306a36Sopenharmony_ci indicates the following features: bit 0 - privileged mode, 15262306a36Sopenharmony_ci bit 1 - DMA is bufferable, bit 2 - DMA is cacheable. 15362306a36Sopenharmony_ci default: 0 15462306a36Sopenharmony_ci minimum: 0 15562306a36Sopenharmony_ci maximum: 7 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ciunevaluatedProperties: false 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_cirequired: 16062306a36Sopenharmony_ci - compatible 16162306a36Sopenharmony_ci - "#dma-cells" 16262306a36Sopenharmony_ci - reg 16362306a36Sopenharmony_ci - interrupts 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ciexamples: 16662306a36Sopenharmony_ci - | 16762306a36Sopenharmony_ci dma-controller@fc000000 { 16862306a36Sopenharmony_ci compatible = "snps,dma-spear1340"; 16962306a36Sopenharmony_ci reg = <0xfc000000 0x1000>; 17062306a36Sopenharmony_ci interrupt-parent = <&vic1>; 17162306a36Sopenharmony_ci interrupts = <12>; 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci dma-channels = <8>; 17462306a36Sopenharmony_ci dma-requests = <16>; 17562306a36Sopenharmony_ci dma-masters = <4>; 17662306a36Sopenharmony_ci #dma-cells = <3>; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci chan_allocation_order = <1>; 17962306a36Sopenharmony_ci chan_priority = <1>; 18062306a36Sopenharmony_ci block_size = <0xfff>; 18162306a36Sopenharmony_ci data-width = <8 8>; 18262306a36Sopenharmony_ci multi-block = <0 0 0 0 0 0 0 0>; 18362306a36Sopenharmony_ci snps,max-burst-len = <16 16 4 4 4 4 4 4>; 18462306a36Sopenharmony_ci }; 18562306a36Sopenharmony_ci... 186