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
7title: Tegra210 ADMAIF Device Tree Bindings
8
9description: |
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
16maintainers:
17  - Jon Hunter <jonathanh@nvidia.com>
18  - Sameer Pujar <spujar@nvidia.com>
19
20properties:
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
40if:
41  properties:
42    compatible:
43      contains:
44        const: nvidia,tegra210-admaif
45
46then:
47  properties:
48    dmas:
49      description:
50        DMA channel specifiers, equally divided for Tx and Rx.
51      minItems: 1
52      maxItems: 20
53    dma-names:
54      items:
55        pattern: "^[rt]x(10|[1-9])$"
56      description:
57        Should be "rx1", "rx2" ... "rx10" for DMA Rx channel
58        Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
59      minItems: 1
60      maxItems: 20
61
62else:
63  properties:
64    dmas:
65      description:
66        DMA channel specifiers, equally divided for Tx and Rx.
67      minItems: 1
68      maxItems: 40
69    dma-names:
70      items:
71        pattern: "^[rt]x(1[0-9]|[1-9]|20)$"
72      description:
73        Should be "rx1", "rx2" ... "rx20" for DMA Rx channel
74        Should be "tx1", "tx2" ... "tx20" for DMA Tx channel
75      minItems: 1
76      maxItems: 40
77
78required:
79  - compatible
80  - reg
81  - dmas
82  - dma-names
83
84additionalProperties: false
85
86examples:
87  - |
88    admaif@702d0000 {
89        compatible = "nvidia,tegra210-admaif";
90        reg = <0x702d0000 0x800>;
91        dmas = <&adma 1>,  <&adma 1>,
92               <&adma 2>,  <&adma 2>,
93               <&adma 3>,  <&adma 3>,
94               <&adma 4>,  <&adma 4>,
95               <&adma 5>,  <&adma 5>,
96               <&adma 6>,  <&adma 6>,
97               <&adma 7>,  <&adma 7>,
98               <&adma 8>,  <&adma 8>,
99               <&adma 9>,  <&adma 9>,
100               <&adma 10>, <&adma 10>;
101        dma-names = "rx1",  "tx1",
102                    "rx2",  "tx2",
103                    "rx3",  "tx3",
104                    "rx4",  "tx4",
105                    "rx5",  "tx5",
106                    "rx6",  "tx6",
107                    "rx7",  "tx7",
108                    "rx8",  "tx8",
109                    "rx9",  "tx9",
110                    "rx10", "tx10";
111    };
112
113...
114