xref: /freebsd/sys/contrib/device-tree/Bindings/sound/nvidia,tegra210-admaif.yaml (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c66ec88fSEmmanuel Vadot%YAML 1.2
3*c66ec88fSEmmanuel Vadot---
4*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/nvidia,tegra210-admaif.yaml#
5*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadottitle: Tegra210 ADMAIF Device Tree Bindings
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadotdescription: |
10*c66ec88fSEmmanuel Vadot  ADMAIF is the interface between ADMA and AHUB. Each ADMA channel
11*c66ec88fSEmmanuel Vadot  that sends/receives data to/from AHUB must interface through an
12*c66ec88fSEmmanuel Vadot  ADMAIF channel. ADMA channel sending data to AHUB pairs with ADMAIF
13*c66ec88fSEmmanuel Vadot  Tx channel and ADMA channel receiving data from AHUB pairs with
14*c66ec88fSEmmanuel Vadot  ADMAIF Rx channel.
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel Vadotmaintainers:
17*c66ec88fSEmmanuel Vadot  - Jon Hunter <jonathanh@nvidia.com>
18*c66ec88fSEmmanuel Vadot  - Sameer Pujar <spujar@nvidia.com>
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel Vadotproperties:
21*c66ec88fSEmmanuel Vadot  $nodename:
22*c66ec88fSEmmanuel Vadot    pattern: "^admaif@[0-9a-f]*$"
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot  compatible:
25*c66ec88fSEmmanuel Vadot    oneOf:
26*c66ec88fSEmmanuel Vadot      - enum:
27*c66ec88fSEmmanuel Vadot          - nvidia,tegra210-admaif
28*c66ec88fSEmmanuel Vadot          - nvidia,tegra186-admaif
29*c66ec88fSEmmanuel Vadot      - items:
30*c66ec88fSEmmanuel Vadot          - const: nvidia,tegra194-admaif
31*c66ec88fSEmmanuel Vadot          - const: nvidia,tegra186-admaif
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot  reg:
34*c66ec88fSEmmanuel Vadot    maxItems: 1
35*c66ec88fSEmmanuel Vadot
36*c66ec88fSEmmanuel Vadot  dmas: true
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot  dma-names: true
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel Vadotif:
41*c66ec88fSEmmanuel Vadot  properties:
42*c66ec88fSEmmanuel Vadot    compatible:
43*c66ec88fSEmmanuel Vadot      contains:
44*c66ec88fSEmmanuel Vadot        const: nvidia,tegra210-admaif
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadotthen:
47*c66ec88fSEmmanuel Vadot  properties:
48*c66ec88fSEmmanuel Vadot    dmas:
49*c66ec88fSEmmanuel Vadot      description:
50*c66ec88fSEmmanuel Vadot        DMA channel specifiers, equally divided for Tx and Rx.
51*c66ec88fSEmmanuel Vadot      minItems: 1
52*c66ec88fSEmmanuel Vadot      maxItems: 20
53*c66ec88fSEmmanuel Vadot    dma-names:
54*c66ec88fSEmmanuel Vadot      items:
55*c66ec88fSEmmanuel Vadot        pattern: "^[rt]x(10|[1-9])$"
56*c66ec88fSEmmanuel Vadot      description:
57*c66ec88fSEmmanuel Vadot        Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
58*c66ec88fSEmmanuel Vadot        Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
59*c66ec88fSEmmanuel Vadot      minItems: 1
60*c66ec88fSEmmanuel Vadot      maxItems: 20
61*c66ec88fSEmmanuel Vadot
62*c66ec88fSEmmanuel Vadotelse:
63*c66ec88fSEmmanuel Vadot  properties:
64*c66ec88fSEmmanuel Vadot    dmas:
65*c66ec88fSEmmanuel Vadot      description:
66*c66ec88fSEmmanuel Vadot        DMA channel specifiers, equally divided for Tx and Rx.
67*c66ec88fSEmmanuel Vadot      minItems: 1
68*c66ec88fSEmmanuel Vadot      maxItems: 40
69*c66ec88fSEmmanuel Vadot    dma-names:
70*c66ec88fSEmmanuel Vadot      items:
71*c66ec88fSEmmanuel Vadot        pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
72*c66ec88fSEmmanuel Vadot      description:
73*c66ec88fSEmmanuel Vadot        Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
74*c66ec88fSEmmanuel Vadot        Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
75*c66ec88fSEmmanuel Vadot      minItems: 1
76*c66ec88fSEmmanuel Vadot      maxItems: 40
77*c66ec88fSEmmanuel Vadot
78*c66ec88fSEmmanuel Vadotrequired:
79*c66ec88fSEmmanuel Vadot  - compatible
80*c66ec88fSEmmanuel Vadot  - reg
81*c66ec88fSEmmanuel Vadot  - dmas
82*c66ec88fSEmmanuel Vadot  - dma-names
83*c66ec88fSEmmanuel Vadot
84*c66ec88fSEmmanuel Vadotexamples:
85*c66ec88fSEmmanuel Vadot  - |
86*c66ec88fSEmmanuel Vadot    admaif@702d0000 {
87*c66ec88fSEmmanuel Vadot        compatible = "nvidia,tegra210-admaif";
88*c66ec88fSEmmanuel Vadot        reg = <0x702d0000 0x800>;
89*c66ec88fSEmmanuel Vadot        dmas = <&adma 1>,  <&adma 1>,
90*c66ec88fSEmmanuel Vadot               <&adma 2>,  <&adma 2>,
91*c66ec88fSEmmanuel Vadot               <&adma 3>,  <&adma 3>,
92*c66ec88fSEmmanuel Vadot               <&adma 4>,  <&adma 4>,
93*c66ec88fSEmmanuel Vadot               <&adma 5>,  <&adma 5>,
94*c66ec88fSEmmanuel Vadot               <&adma 6>,  <&adma 6>,
95*c66ec88fSEmmanuel Vadot               <&adma 7>,  <&adma 7>,
96*c66ec88fSEmmanuel Vadot               <&adma 8>,  <&adma 8>,
97*c66ec88fSEmmanuel Vadot               <&adma 9>,  <&adma 9>,
98*c66ec88fSEmmanuel Vadot               <&adma 10>, <&adma 10>;
99*c66ec88fSEmmanuel Vadot        dma-names = "rx1",  "tx1",
100*c66ec88fSEmmanuel Vadot                    "rx2",  "tx2",
101*c66ec88fSEmmanuel Vadot                    "rx3",  "tx3",
102*c66ec88fSEmmanuel Vadot                    "rx4",  "tx4",
103*c66ec88fSEmmanuel Vadot                    "rx5",  "tx5",
104*c66ec88fSEmmanuel Vadot                    "rx6",  "tx6",
105*c66ec88fSEmmanuel Vadot                    "rx7",  "tx7",
106*c66ec88fSEmmanuel Vadot                    "rx8",  "tx8",
107*c66ec88fSEmmanuel Vadot                    "rx9",  "tx9",
108*c66ec88fSEmmanuel Vadot                    "rx10", "tx10";
109*c66ec88fSEmmanuel Vadot    };
110*c66ec88fSEmmanuel Vadot
111*c66ec88fSEmmanuel Vadot...
112