xref: /freebsd/sys/contrib/device-tree/Bindings/dma/nvidia,tegra20-apbdma.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/dma/nvidia,tegra20-apbdma.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: NVIDIA Tegra APB DMA Controller
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotdescription:
10*ae5de77eSEmmanuel Vadot  The NVIDIA Tegra APB DMA controller is a hardware component that
11*ae5de77eSEmmanuel Vadot  enables direct memory access (DMA) on Tegra systems. It facilitates
12*ae5de77eSEmmanuel Vadot  data transfer between I/O devices and main memory without constant
13*ae5de77eSEmmanuel Vadot  CPU intervention.
14*ae5de77eSEmmanuel Vadot
15*ae5de77eSEmmanuel Vadotmaintainers:
16*ae5de77eSEmmanuel Vadot  - Jonathan Hunter <jonathanh@nvidia.com>
17*ae5de77eSEmmanuel Vadot
18*ae5de77eSEmmanuel Vadotproperties:
19*ae5de77eSEmmanuel Vadot  compatible:
20*ae5de77eSEmmanuel Vadot    oneOf:
21*ae5de77eSEmmanuel Vadot      - const: nvidia,tegra20-apbdma
22*ae5de77eSEmmanuel Vadot      - items:
23*ae5de77eSEmmanuel Vadot          - const: nvidia,tegra30-apbdma
24*ae5de77eSEmmanuel Vadot          - const: nvidia,tegra20-apbdma
25*ae5de77eSEmmanuel Vadot
26*ae5de77eSEmmanuel Vadot  reg:
27*ae5de77eSEmmanuel Vadot    maxItems: 1
28*ae5de77eSEmmanuel Vadot
29*ae5de77eSEmmanuel Vadot  "#dma-cells":
30*ae5de77eSEmmanuel Vadot    const: 1
31*ae5de77eSEmmanuel Vadot
32*ae5de77eSEmmanuel Vadot  clocks:
33*ae5de77eSEmmanuel Vadot    maxItems: 1
34*ae5de77eSEmmanuel Vadot
35*ae5de77eSEmmanuel Vadot  interrupts:
36*ae5de77eSEmmanuel Vadot    description:
37*ae5de77eSEmmanuel Vadot      Should contain all of the per-channel DMA interrupts in
38*ae5de77eSEmmanuel Vadot      ascending order with respect to the DMA channel index.
39*ae5de77eSEmmanuel Vadot    minItems: 1
40*ae5de77eSEmmanuel Vadot    maxItems: 32
41*ae5de77eSEmmanuel Vadot
42*ae5de77eSEmmanuel Vadot  resets:
43*ae5de77eSEmmanuel Vadot    maxItems: 1
44*ae5de77eSEmmanuel Vadot
45*ae5de77eSEmmanuel Vadot  reset-names:
46*ae5de77eSEmmanuel Vadot    const: dma
47*ae5de77eSEmmanuel Vadot
48*ae5de77eSEmmanuel Vadotrequired:
49*ae5de77eSEmmanuel Vadot  - compatible
50*ae5de77eSEmmanuel Vadot  - reg
51*ae5de77eSEmmanuel Vadot  - "#dma-cells"
52*ae5de77eSEmmanuel Vadot  - clocks
53*ae5de77eSEmmanuel Vadot  - interrupts
54*ae5de77eSEmmanuel Vadot  - resets
55*ae5de77eSEmmanuel Vadot  - reset-names
56*ae5de77eSEmmanuel Vadot
57*ae5de77eSEmmanuel VadotallOf:
58*ae5de77eSEmmanuel Vadot  - $ref: dma-controller.yaml#
59*ae5de77eSEmmanuel Vadot
60*ae5de77eSEmmanuel VadotunevaluatedProperties: false
61*ae5de77eSEmmanuel Vadot
62*ae5de77eSEmmanuel Vadotexamples:
63*ae5de77eSEmmanuel Vadot  - |
64*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
65*ae5de77eSEmmanuel Vadot    #include <dt-bindings/reset/tegra186-reset.h>
66*ae5de77eSEmmanuel Vadot    dma-controller@6000a000 {
67*ae5de77eSEmmanuel Vadot        compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
68*ae5de77eSEmmanuel Vadot        reg = <0x6000a000 0x1200>;
69*ae5de77eSEmmanuel Vadot        interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
70*ae5de77eSEmmanuel Vadot                     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
71*ae5de77eSEmmanuel Vadot                     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
72*ae5de77eSEmmanuel Vadot                     <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
73*ae5de77eSEmmanuel Vadot                     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
74*ae5de77eSEmmanuel Vadot                     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
75*ae5de77eSEmmanuel Vadot                     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
76*ae5de77eSEmmanuel Vadot                     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
77*ae5de77eSEmmanuel Vadot                     <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
78*ae5de77eSEmmanuel Vadot                     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
79*ae5de77eSEmmanuel Vadot                     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
80*ae5de77eSEmmanuel Vadot                     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
81*ae5de77eSEmmanuel Vadot                     <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
82*ae5de77eSEmmanuel Vadot                     <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
83*ae5de77eSEmmanuel Vadot                     <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
84*ae5de77eSEmmanuel Vadot                     <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
85*ae5de77eSEmmanuel Vadot        clocks = <&tegra_car 34>;
86*ae5de77eSEmmanuel Vadot        resets = <&tegra_car 34>;
87*ae5de77eSEmmanuel Vadot        reset-names = "dma";
88*ae5de77eSEmmanuel Vadot        #dma-cells = <1>;
89*ae5de77eSEmmanuel Vadot    };
90*ae5de77eSEmmanuel Vadot...
91