xref: /freebsd/sys/contrib/device-tree/Bindings/dma/nvidia,tegra186-gpc-dma.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
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