18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/dma/snps,dma-spear1340.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Synopsys Designware DMA Controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Viresh Kumar <vireshk@kernel.org> 118c2ecf20Sopenharmony_ci - Andy Shevchenko <andriy.shevchenko@linux.intel.com> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciallOf: 148c2ecf20Sopenharmony_ci - $ref: "dma-controller.yaml#" 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciproperties: 178c2ecf20Sopenharmony_ci compatible: 188c2ecf20Sopenharmony_ci const: snps,dma-spear1340 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci "#dma-cells": 218c2ecf20Sopenharmony_ci minimum: 3 228c2ecf20Sopenharmony_ci maximum: 4 238c2ecf20Sopenharmony_ci description: | 248c2ecf20Sopenharmony_ci First cell is a phandle pointing to the DMA controller. Second one is 258c2ecf20Sopenharmony_ci the DMA request line number. Third cell is the memory master identifier 268c2ecf20Sopenharmony_ci for transfers on dynamically allocated channel. Fourth cell is the 278c2ecf20Sopenharmony_ci peripheral master identifier for transfers on an allocated channel. Fifth 288c2ecf20Sopenharmony_ci cell is an optional mask of the DMA channels permitted to be allocated 298c2ecf20Sopenharmony_ci for the corresponding client device. 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci reg: 328c2ecf20Sopenharmony_ci maxItems: 1 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci interrupts: 358c2ecf20Sopenharmony_ci maxItems: 1 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci clocks: 388c2ecf20Sopenharmony_ci maxItems: 1 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci clock-names: 418c2ecf20Sopenharmony_ci description: AHB interface reference clock. 428c2ecf20Sopenharmony_ci const: hclk 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci dma-channels: 458c2ecf20Sopenharmony_ci description: | 468c2ecf20Sopenharmony_ci Number of DMA channels supported by the controller. In case if 478c2ecf20Sopenharmony_ci not specified the driver will try to auto-detect this and 488c2ecf20Sopenharmony_ci the rest of the optional parameters. 498c2ecf20Sopenharmony_ci minimum: 1 508c2ecf20Sopenharmony_ci maximum: 8 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci dma-requests: 538c2ecf20Sopenharmony_ci minimum: 1 548c2ecf20Sopenharmony_ci maximum: 16 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci dma-masters: 578c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/uint32 588c2ecf20Sopenharmony_ci description: | 598c2ecf20Sopenharmony_ci Number of DMA masters supported by the controller. In case if 608c2ecf20Sopenharmony_ci not specified the driver will try to auto-detect this and 618c2ecf20Sopenharmony_ci the rest of the optional parameters. 628c2ecf20Sopenharmony_ci minimum: 1 638c2ecf20Sopenharmony_ci maximum: 4 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci chan_allocation_order: 668c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/uint32 678c2ecf20Sopenharmony_ci description: | 688c2ecf20Sopenharmony_ci DMA channels allocation order specifier. Zero means ascending order 698c2ecf20Sopenharmony_ci (first free allocated), while one - descending (last free allocated). 708c2ecf20Sopenharmony_ci default: 0 718c2ecf20Sopenharmony_ci enum: [0, 1] 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci chan_priority: 748c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/uint32 758c2ecf20Sopenharmony_ci description: | 768c2ecf20Sopenharmony_ci DMA channels priority order. Zero means ascending channels priority 778c2ecf20Sopenharmony_ci so the very first channel has the highest priority. While 1 means 788c2ecf20Sopenharmony_ci descending priority (the last channel has the highest priority). 798c2ecf20Sopenharmony_ci default: 0 808c2ecf20Sopenharmony_ci enum: [0, 1] 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci block_size: 838c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/uint32 848c2ecf20Sopenharmony_ci description: Maximum block size supported by the DMA controller. 858c2ecf20Sopenharmony_ci enum: [3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095] 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci data-width: 888c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 898c2ecf20Sopenharmony_ci description: Data bus width per each DMA master in bytes. 908c2ecf20Sopenharmony_ci items: 918c2ecf20Sopenharmony_ci maxItems: 4 928c2ecf20Sopenharmony_ci items: 938c2ecf20Sopenharmony_ci enum: [4, 8, 16, 32] 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci data_width: 968c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 978c2ecf20Sopenharmony_ci deprecated: true 988c2ecf20Sopenharmony_ci description: | 998c2ecf20Sopenharmony_ci Data bus width per each DMA master in (2^n * 8) bits. This property is 1008c2ecf20Sopenharmony_ci deprecated. It' usage is discouraged in favor of data-width one. Moreover 1018c2ecf20Sopenharmony_ci the property incorrectly permits to define data-bus width of 8 and 16 1028c2ecf20Sopenharmony_ci bits, which is impossible in accordance with DW DMAC IP-core data book. 1038c2ecf20Sopenharmony_ci items: 1048c2ecf20Sopenharmony_ci maxItems: 4 1058c2ecf20Sopenharmony_ci items: 1068c2ecf20Sopenharmony_ci enum: 1078c2ecf20Sopenharmony_ci - 0 # 8 bits 1088c2ecf20Sopenharmony_ci - 1 # 16 bits 1098c2ecf20Sopenharmony_ci - 2 # 32 bits 1108c2ecf20Sopenharmony_ci - 3 # 64 bits 1118c2ecf20Sopenharmony_ci - 4 # 128 bits 1128c2ecf20Sopenharmony_ci - 5 # 256 bits 1138c2ecf20Sopenharmony_ci default: 0 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci multi-block: 1168c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 1178c2ecf20Sopenharmony_ci description: | 1188c2ecf20Sopenharmony_ci LLP-based multi-block transfer supported by hardware per 1198c2ecf20Sopenharmony_ci each DMA channel. 1208c2ecf20Sopenharmony_ci items: 1218c2ecf20Sopenharmony_ci maxItems: 8 1228c2ecf20Sopenharmony_ci items: 1238c2ecf20Sopenharmony_ci enum: [0, 1] 1248c2ecf20Sopenharmony_ci default: 1 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci snps,max-burst-len: 1278c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 1288c2ecf20Sopenharmony_ci description: | 1298c2ecf20Sopenharmony_ci Maximum length of the burst transactions supported by the controller. 1308c2ecf20Sopenharmony_ci This property defines the upper limit of the run-time burst setting 1318c2ecf20Sopenharmony_ci (CTLx.SRC_MSIZE/CTLx.DST_MSIZE fields) so the allowed burst length 1328c2ecf20Sopenharmony_ci will be from 1 to max-burst-len words. It's an array property with one 1338c2ecf20Sopenharmony_ci cell per channel in the units determined by the value set in the 1348c2ecf20Sopenharmony_ci CTLx.SRC_TR_WIDTH/CTLx.DST_TR_WIDTH fields (data width). 1358c2ecf20Sopenharmony_ci items: 1368c2ecf20Sopenharmony_ci maxItems: 8 1378c2ecf20Sopenharmony_ci items: 1388c2ecf20Sopenharmony_ci enum: [4, 8, 16, 32, 64, 128, 256] 1398c2ecf20Sopenharmony_ci default: 256 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci snps,dma-protection-control: 1428c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/uint32 1438c2ecf20Sopenharmony_ci description: | 1448c2ecf20Sopenharmony_ci Bits one-to-one passed to the AHB HPROT[3:1] bus. Each bit setting 1458c2ecf20Sopenharmony_ci indicates the following features: bit 0 - privileged mode, 1468c2ecf20Sopenharmony_ci bit 1 - DMA is bufferable, bit 2 - DMA is cacheable. 1478c2ecf20Sopenharmony_ci default: 0 1488c2ecf20Sopenharmony_ci minimum: 0 1498c2ecf20Sopenharmony_ci maximum: 7 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ciunevaluatedProperties: false 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_cirequired: 1548c2ecf20Sopenharmony_ci - compatible 1558c2ecf20Sopenharmony_ci - "#dma-cells" 1568c2ecf20Sopenharmony_ci - reg 1578c2ecf20Sopenharmony_ci - interrupts 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ciexamples: 1608c2ecf20Sopenharmony_ci - | 1618c2ecf20Sopenharmony_ci dma-controller@fc000000 { 1628c2ecf20Sopenharmony_ci compatible = "snps,dma-spear1340"; 1638c2ecf20Sopenharmony_ci reg = <0xfc000000 0x1000>; 1648c2ecf20Sopenharmony_ci interrupt-parent = <&vic1>; 1658c2ecf20Sopenharmony_ci interrupts = <12>; 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci dma-channels = <8>; 1688c2ecf20Sopenharmony_ci dma-requests = <16>; 1698c2ecf20Sopenharmony_ci dma-masters = <4>; 1708c2ecf20Sopenharmony_ci #dma-cells = <3>; 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_ci chan_allocation_order = <1>; 1738c2ecf20Sopenharmony_ci chan_priority = <1>; 1748c2ecf20Sopenharmony_ci block_size = <0xfff>; 1758c2ecf20Sopenharmony_ci data-width = <8 8>; 1768c2ecf20Sopenharmony_ci multi-block = <0 0 0 0 0 0 0 0>; 1778c2ecf20Sopenharmony_ci snps,max-burst-len = <16 16 4 4 4 4 4 4>; 1788c2ecf20Sopenharmony_ci }; 1798c2ecf20Sopenharmony_ci... 180