1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2d5b0e70fSEmmanuel Vadot%YAML 1.2 3d5b0e70fSEmmanuel Vadot--- 4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/dma/nvidia,tegra186-gpc-dma.yaml# 5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6d5b0e70fSEmmanuel Vadot 77ef62cebSEmmanuel Vadottitle: NVIDIA Tegra GPC DMA Controller 8d5b0e70fSEmmanuel Vadot 9d5b0e70fSEmmanuel Vadotdescription: | 10d5b0e70fSEmmanuel Vadot The Tegra General Purpose Central (GPC) DMA controller is used for faster 11d5b0e70fSEmmanuel Vadot data transfers between memory to memory, memory to device and device to 12d5b0e70fSEmmanuel Vadot memory. 13d5b0e70fSEmmanuel Vadot 14d5b0e70fSEmmanuel Vadotmaintainers: 15d5b0e70fSEmmanuel Vadot - Jon Hunter <jonathanh@nvidia.com> 16d5b0e70fSEmmanuel Vadot - Rajesh Gumasta <rgumasta@nvidia.com> 17d5b0e70fSEmmanuel Vadot 18d5b0e70fSEmmanuel VadotallOf: 19*cb7aa33aSEmmanuel Vadot - $ref: dma-controller.yaml# 20d5b0e70fSEmmanuel Vadot 21d5b0e70fSEmmanuel Vadotproperties: 22d5b0e70fSEmmanuel Vadot compatible: 23d5b0e70fSEmmanuel Vadot oneOf: 24d5b0e70fSEmmanuel Vadot - const: nvidia,tegra186-gpcdma 25d5b0e70fSEmmanuel Vadot - items: 26b97ee269SEmmanuel Vadot - enum: 27b97ee269SEmmanuel Vadot - nvidia,tegra234-gpcdma 28b97ee269SEmmanuel Vadot - nvidia,tegra194-gpcdma 29d5b0e70fSEmmanuel Vadot - const: nvidia,tegra186-gpcdma 30d5b0e70fSEmmanuel Vadot 31d5b0e70fSEmmanuel Vadot "#dma-cells": 32d5b0e70fSEmmanuel Vadot const: 1 33d5b0e70fSEmmanuel Vadot 34d5b0e70fSEmmanuel Vadot reg: 35d5b0e70fSEmmanuel Vadot maxItems: 1 36d5b0e70fSEmmanuel Vadot 37d5b0e70fSEmmanuel Vadot interrupts: 38d5b0e70fSEmmanuel Vadot description: 39d5b0e70fSEmmanuel Vadot Should contain all of the per-channel DMA interrupts in 40d5b0e70fSEmmanuel Vadot ascending order with respect to the DMA channel index. 41d5b0e70fSEmmanuel Vadot minItems: 1 428bab661aSEmmanuel Vadot maxItems: 32 43d5b0e70fSEmmanuel Vadot 44d5b0e70fSEmmanuel Vadot resets: 45d5b0e70fSEmmanuel Vadot maxItems: 1 46d5b0e70fSEmmanuel Vadot 47d5b0e70fSEmmanuel Vadot reset-names: 48d5b0e70fSEmmanuel Vadot const: gpcdma 49d5b0e70fSEmmanuel Vadot 50d5b0e70fSEmmanuel Vadot iommus: 51d5b0e70fSEmmanuel Vadot maxItems: 1 52d5b0e70fSEmmanuel Vadot 53d5b0e70fSEmmanuel Vadot dma-coherent: true 54d5b0e70fSEmmanuel Vadot 558bab661aSEmmanuel Vadot dma-channel-mask: 568bab661aSEmmanuel Vadot maxItems: 1 578bab661aSEmmanuel Vadot 58d5b0e70fSEmmanuel Vadotrequired: 59d5b0e70fSEmmanuel Vadot - compatible 60d5b0e70fSEmmanuel Vadot - reg 61d5b0e70fSEmmanuel Vadot - interrupts 62d5b0e70fSEmmanuel Vadot - resets 63d5b0e70fSEmmanuel Vadot - reset-names 64d5b0e70fSEmmanuel Vadot - "#dma-cells" 65d5b0e70fSEmmanuel Vadot - iommus 668bab661aSEmmanuel Vadot - dma-channel-mask 67d5b0e70fSEmmanuel Vadot 68d5b0e70fSEmmanuel VadotadditionalProperties: false 69d5b0e70fSEmmanuel Vadot 70d5b0e70fSEmmanuel Vadotexamples: 71d5b0e70fSEmmanuel Vadot - | 72d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 73d5b0e70fSEmmanuel Vadot #include <dt-bindings/memory/tegra186-mc.h> 74d5b0e70fSEmmanuel Vadot #include <dt-bindings/reset/tegra186-reset.h> 75d5b0e70fSEmmanuel Vadot 76d5b0e70fSEmmanuel Vadot dma-controller@2600000 { 77d5b0e70fSEmmanuel Vadot compatible = "nvidia,tegra186-gpcdma"; 78d5b0e70fSEmmanuel Vadot reg = <0x2600000 0x210000>; 79d5b0e70fSEmmanuel Vadot resets = <&bpmp TEGRA186_RESET_GPCDMA>; 80d5b0e70fSEmmanuel Vadot reset-names = "gpcdma"; 81d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 82d5b0e70fSEmmanuel Vadot <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, 83d5b0e70fSEmmanuel Vadot <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, 84d5b0e70fSEmmanuel Vadot <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>, 85d5b0e70fSEmmanuel Vadot <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, 86d5b0e70fSEmmanuel Vadot <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>, 87d5b0e70fSEmmanuel Vadot <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, 88d5b0e70fSEmmanuel Vadot <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, 89d5b0e70fSEmmanuel Vadot <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, 90d5b0e70fSEmmanuel Vadot <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 91d5b0e70fSEmmanuel Vadot <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>, 92d5b0e70fSEmmanuel Vadot <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, 93d5b0e70fSEmmanuel Vadot <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, 94d5b0e70fSEmmanuel Vadot <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, 95d5b0e70fSEmmanuel Vadot <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, 96d5b0e70fSEmmanuel Vadot <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, 97d5b0e70fSEmmanuel Vadot <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, 98d5b0e70fSEmmanuel Vadot <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>, 99d5b0e70fSEmmanuel Vadot <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>, 100d5b0e70fSEmmanuel Vadot <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 101d5b0e70fSEmmanuel Vadot <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 102d5b0e70fSEmmanuel Vadot <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 103d5b0e70fSEmmanuel Vadot <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, 104d5b0e70fSEmmanuel Vadot <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 105d5b0e70fSEmmanuel Vadot <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 106d5b0e70fSEmmanuel Vadot <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 107d5b0e70fSEmmanuel Vadot <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 108d5b0e70fSEmmanuel Vadot <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 109d5b0e70fSEmmanuel Vadot <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 110d5b0e70fSEmmanuel Vadot <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 111d5b0e70fSEmmanuel Vadot <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 112d5b0e70fSEmmanuel Vadot #dma-cells = <1>; 113d5b0e70fSEmmanuel Vadot iommus = <&smmu TEGRA186_SID_GPCDMA_0>; 114d5b0e70fSEmmanuel Vadot dma-coherent; 1158bab661aSEmmanuel Vadot dma-channel-mask = <0xfffffffe>; 116d5b0e70fSEmmanuel Vadot }; 117d5b0e70fSEmmanuel Vadot... 118