File Index
Files and directories
Sign in
FILE

nvidia,tegra210-ahub.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/sound/nvidia,tegra210-ahub.yaml 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-ahub.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Tegra210 AHUB
  8
  9description: |
 10  The Audio Hub (AHUB) comprises a collection of hardware accelerators
 11  for audio pre-processing, post-processing and a programmable full
 12  crossbar for routing audio data across these accelerators. It has
 13  external interfaces such as I2S, DMIC, DSPK. It interfaces with ADMA
 14  engine through ADMAIF.
 15
 16maintainers:
 17  - Jon Hunter <jonathanh@nvidia.com>
 18  - Sameer Pujar <spujar@nvidia.com>
 19
 20properties:
 21  $nodename:
 22    pattern: "^ahub@[0-9a-f]*$"
 23
 24  compatible:
 25    oneOf:
 26      - enum:
 27          - nvidia,tegra210-ahub
 28          - nvidia,tegra186-ahub
 29          - nvidia,tegra234-ahub
 30          - nvidia,tegra264-ahub
 31      - items:
 32          - const: nvidia,tegra194-ahub
 33          - const: nvidia,tegra186-ahub
 34
 35  reg:
 36    maxItems: 1
 37
 38  clocks:
 39    maxItems: 1
 40
 41  clock-names:
 42    const: ahub
 43
 44  assigned-clocks:
 45    maxItems: 1
 46
 47  assigned-clock-parents:
 48    maxItems: 1
 49
 50  assigned-clock-rates:
 51    maxItems: 1
 52
 53  "#address-cells":
 54    enum: [ 1, 2 ]
 55
 56  "#size-cells":
 57    enum: [ 1, 2 ]
 58
 59  ranges: true
 60
 61  ports:
 62    $ref: /schemas/graph.yaml#/properties/ports
 63    description: |
 64      Contains list of ACIF (Audio CIF) port nodes for AHUB (Audio Hub).
 65      These are connected to ACIF interfaces of AHUB clients. Thus the
 66      number of port nodes depend on the number of clients that AHUB may
 67      have depending on the SoC revision.
 68
 69    patternProperties:
 70      '^port@[0-9]':
 71        $ref: audio-graph-port.yaml#
 72        unevaluatedProperties: false
 73
 74patternProperties:
 75  '^i2s@[0-9a-f]+$':
 76    type: object
 77
 78  '^dmic@[0-9a-f]+$':
 79    type: object
 80    $ref: nvidia,tegra210-dmic.yaml#
 81
 82  '^admaif@[0-9a-f]+$':
 83    type: object
 84    $ref: nvidia,tegra210-admaif.yaml#
 85
 86  '^dspk@[0-9a-f]+$':
 87    type: object
 88    $ref: nvidia,tegra186-dspk.yaml#
 89
 90  '^mvc@[0-9a-f]+$':
 91    type: object
 92    $ref: nvidia,tegra210-mvc.yaml#
 93
 94  '^sfc@[0-9a-f]+$':
 95    type: object
 96    $ref: nvidia,tegra210-sfc.yaml#
 97
 98  '^amx@[0-9a-f]+$':
 99    type: object
100    $ref: nvidia,tegra210-amx.yaml#
101
102  '^adx@[0-9a-f]+$':
103    type: object
104    $ref: nvidia,tegra210-adx.yaml#
105
106  '^amixer@[0-9a-f]+$':
107    type: object
108    $ref: nvidia,tegra210-mixer.yaml#
109
110  '^asrc@[0-9a-f]+$':
111    type: object
112    $ref: nvidia,tegra186-asrc.yaml#
113
114  '^processing-engine@[0-9a-f]+$':
115    type: object
116    $ref: nvidia,tegra210-ope.yaml#
117
118required:
119  - compatible
120  - reg
121  - clocks
122  - clock-names
123  - assigned-clocks
124  - assigned-clock-parents
125  - "#address-cells"
126  - "#size-cells"
127  - ranges
128
129additionalProperties: false
130
131examples:
132  - |
133    #include<dt-bindings/clock/tegra210-car.h>
134
135    ahub@702d0800 {
136        compatible = "nvidia,tegra210-ahub";
137        reg = <0x702d0800 0x800>;
138        clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
139        clock-names = "ahub";
140        assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
141        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
142        #address-cells = <1>;
143        #size-cells = <1>;
144        ranges = <0x702d0000 0x702d0000 0x0000e400>;
145
146        // All AHUB child nodes below
147        admaif@702d0000 {
148            compatible = "nvidia,tegra210-admaif";
149            reg = <0x702d0000 0x800>;
150            dmas = <&adma 1>,  <&adma 1>,
151               <&adma 2>,  <&adma 2>,
152               <&adma 3>,  <&adma 3>,
153               <&adma 4>,  <&adma 4>,
154               <&adma 5>,  <&adma 5>,
155               <&adma 6>,  <&adma 6>,
156               <&adma 7>,  <&adma 7>,
157               <&adma 8>,  <&adma 8>,
158               <&adma 9>,  <&adma 9>,
159               <&adma 10>, <&adma 10>;
160            dma-names = "rx1",  "tx1",
161                    "rx2",  "tx2",
162                    "rx3",  "tx3",
163                    "rx4",  "tx4",
164                    "rx5",  "tx5",
165                    "rx6",  "tx6",
166                    "rx7",  "tx7",
167                    "rx8",  "tx8",
168                    "rx9",  "tx9",
169                    "rx10", "tx10";
170        };
171
172        i2s@702d1000 {
173            compatible = "nvidia,tegra210-i2s";
174            reg = <0x702d1000 0x100>;
175            clocks = <&tegra_car TEGRA210_CLK_I2S0>;
176            clock-names = "i2s";
177            assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
178            assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
179            assigned-clock-rates = <1536000>;
180            sound-name-prefix = "I2S1";
181        };
182
183        dmic@702d4000 {
184            compatible = "nvidia,tegra210-dmic";
185            reg = <0x702d4000 0x100>;
186            clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
187            clock-names = "dmic";
188            assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
189            assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
190            assigned-clock-rates = <3072000>;
191            sound-name-prefix = "DMIC1";
192        };
193
194        // More child nodes to follow
195    };
196
197...
~/ Read-only file preview.