Merge tag 'gvt-fixes-2021-07-15' of https://github.com/intel/gvt-linux into drm-intel...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / nvidia,tegra210-admaif.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/nvidia,tegra210-admaif.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Tegra210 ADMAIF Device Tree Bindings
8
9 description: |
10   ADMAIF is the interface between ADMA and AHUB. Each ADMA channel
11   that sends/receives data to/from AHUB must interface through an
12   ADMAIF channel. ADMA channel sending data to AHUB pairs with ADMAIF
13   Tx channel and ADMA channel receiving data from AHUB pairs with
14   ADMAIF Rx channel.
15
16 maintainers:
17   - Jon Hunter <jonathanh@nvidia.com>
18   - Sameer Pujar <spujar@nvidia.com>
19
20 properties:
21   $nodename:
22     pattern: "^admaif@[0-9a-f]*$"
23
24   compatible:
25     oneOf:
26       - enum:
27           - nvidia,tegra210-admaif
28           - nvidia,tegra186-admaif
29       - items:
30           - const: nvidia,tegra194-admaif
31           - const: nvidia,tegra186-admaif
32
33   reg:
34     maxItems: 1
35
36   dmas: true
37
38   dma-names: true
39
40   ports:
41     $ref: /schemas/graph.yaml#/properties/ports
42     description: |
43       Contains list of ACIF (Audio CIF) port nodes for ADMAIF channels.
44       The number of port nodes depends on the number of ADMAIF channels
45       that SoC may have. These are interfaced with respective ACIF ports
46       in AHUB (Audio Hub). Each port is capable of data transfers in
47       both directions.
48
49     patternProperties:
50       '^port@[0-9]':
51         $ref: audio-graph-port.yaml#
52         unevaluatedProperties: false
53
54 if:
55   properties:
56     compatible:
57       contains:
58         const: nvidia,tegra210-admaif
59
60 then:
61   properties:
62     dmas:
63       description:
64         DMA channel specifiers, equally divided for Tx and Rx.
65       minItems: 1
66       maxItems: 20
67     dma-names:
68       items:
69         pattern: "^[rt]x(10|[1-9])$"
70       description:
71         Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
72         Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
73       minItems: 1
74       maxItems: 20
75
76 else:
77   properties:
78     dmas:
79       description:
80         DMA channel specifiers, equally divided for Tx and Rx.
81       minItems: 1
82       maxItems: 40
83     dma-names:
84       items:
85         pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
86       description:
87         Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
88         Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
89       minItems: 1
90       maxItems: 40
91
92 required:
93   - compatible
94   - reg
95   - dmas
96   - dma-names
97
98 additionalProperties: false
99
100 examples:
101   - |
102     admaif@702d0000 {
103         compatible = "nvidia,tegra210-admaif";
104         reg = <0x702d0000 0x800>;
105         dmas = <&adma 1>,  <&adma 1>,
106                <&adma 2>,  <&adma 2>,
107                <&adma 3>,  <&adma 3>,
108                <&adma 4>,  <&adma 4>,
109                <&adma 5>,  <&adma 5>,
110                <&adma 6>,  <&adma 6>,
111                <&adma 7>,  <&adma 7>,
112                <&adma 8>,  <&adma 8>,
113                <&adma 9>,  <&adma 9>,
114                <&adma 10>, <&adma 10>;
115         dma-names = "rx1",  "tx1",
116                     "rx2",  "tx2",
117                     "rx3",  "tx3",
118                     "rx4",  "tx4",
119                     "rx5",  "tx5",
120                     "rx6",  "tx6",
121                     "rx7",  "tx7",
122                     "rx8",  "tx8",
123                     "rx9",  "tx9",
124                     "rx10", "tx10";
125     };
126
127 ...