162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/dma/ingenic,dma.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Ingenic SoCs DMA Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Paul Cercueil <paul@crapouillou.net> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciallOf: 1362306a36Sopenharmony_ci - $ref: dma-controller.yaml# 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciproperties: 1662306a36Sopenharmony_ci compatible: 1762306a36Sopenharmony_ci oneOf: 1862306a36Sopenharmony_ci - enum: 1962306a36Sopenharmony_ci - ingenic,jz4740-dma 2062306a36Sopenharmony_ci - ingenic,jz4725b-dma 2162306a36Sopenharmony_ci - ingenic,jz4755-dma 2262306a36Sopenharmony_ci - ingenic,jz4760-dma 2362306a36Sopenharmony_ci - ingenic,jz4760-bdma 2462306a36Sopenharmony_ci - ingenic,jz4760-mdma 2562306a36Sopenharmony_ci - ingenic,jz4760b-dma 2662306a36Sopenharmony_ci - ingenic,jz4760b-bdma 2762306a36Sopenharmony_ci - ingenic,jz4760b-mdma 2862306a36Sopenharmony_ci - ingenic,jz4770-dma 2962306a36Sopenharmony_ci - ingenic,jz4780-dma 3062306a36Sopenharmony_ci - ingenic,x1000-dma 3162306a36Sopenharmony_ci - ingenic,x1830-dma 3262306a36Sopenharmony_ci - items: 3362306a36Sopenharmony_ci - const: ingenic,jz4770-bdma 3462306a36Sopenharmony_ci - const: ingenic,jz4760b-bdma 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci reg: 3762306a36Sopenharmony_ci items: 3862306a36Sopenharmony_ci - description: Channel-specific registers 3962306a36Sopenharmony_ci - description: System control registers 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci interrupts: 4262306a36Sopenharmony_ci maxItems: 1 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci clocks: 4562306a36Sopenharmony_ci maxItems: 1 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci "#dma-cells": 4862306a36Sopenharmony_ci enum: [2, 3] 4962306a36Sopenharmony_ci description: > 5062306a36Sopenharmony_ci DMA clients must use the format described in dma.txt, giving a phandle 5162306a36Sopenharmony_ci to the DMA controller plus the following integer cells: 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci - Request type: The DMA request type specifies the device endpoint that 5462306a36Sopenharmony_ci will be the source or destination of the DMA transfer. 5562306a36Sopenharmony_ci If "#dma-cells" is 2, the request type is a single cell, and the 5662306a36Sopenharmony_ci direction will be unidirectional (either RX or TX but not both). 5762306a36Sopenharmony_ci If "#dma-cells" is 3, the request type has two cells; the first 5862306a36Sopenharmony_ci one corresponds to the host to device direction (TX), the second one 5962306a36Sopenharmony_ci corresponds to the device to host direction (RX). The DMA channel is 6062306a36Sopenharmony_ci then bidirectional. 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci - Channel: If set to 0xffffffff, any available channel will be allocated 6362306a36Sopenharmony_ci for the client. Otherwise, the exact channel specified will be used. 6462306a36Sopenharmony_ci The channel should be reserved on the DMA controller using the 6562306a36Sopenharmony_ci ingenic,reserved-channels property. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci ingenic,reserved-channels: 6862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6962306a36Sopenharmony_ci description: > 7062306a36Sopenharmony_ci Bitmask of channels to reserve for devices that need a specific 7162306a36Sopenharmony_ci channel. These channels will only be assigned when explicitly 7262306a36Sopenharmony_ci requested by a client. The primary use for this is channels 0 and 7362306a36Sopenharmony_ci 1, which can be configured to have special behaviour for NAND/BCH 7462306a36Sopenharmony_ci when using programmable firmware. 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_cirequired: 7762306a36Sopenharmony_ci - compatible 7862306a36Sopenharmony_ci - reg 7962306a36Sopenharmony_ci - interrupts 8062306a36Sopenharmony_ci - clocks 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ciunevaluatedProperties: false 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ciexamples: 8562306a36Sopenharmony_ci - | 8662306a36Sopenharmony_ci #include <dt-bindings/clock/ingenic,jz4780-cgu.h> 8762306a36Sopenharmony_ci dma: dma-controller@13420000 { 8862306a36Sopenharmony_ci compatible = "ingenic,jz4780-dma"; 8962306a36Sopenharmony_ci reg = <0x13420000 0x400>, <0x13421000 0x40>; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci interrupt-parent = <&intc>; 9262306a36Sopenharmony_ci interrupts = <10>; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci clocks = <&cgu JZ4780_CLK_PDMA>; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci #dma-cells = <2>; 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci ingenic,reserved-channels = <0x3>; 9962306a36Sopenharmony_ci }; 100