1665308c0SSameer Pujar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2665308c0SSameer Pujar%YAML 1.2
3665308c0SSameer Pujar---
4665308c0SSameer Pujar$id: http://devicetree.org/schemas/sound/nvidia,tegra210-ahub.yaml#
5665308c0SSameer Pujar$schema: http://devicetree.org/meta-schemas/core.yaml#
6665308c0SSameer Pujar
7dd3cb467SAndrew Lunntitle: Tegra210 AHUB
8665308c0SSameer Pujar
9665308c0SSameer Pujardescription: |
10665308c0SSameer Pujar  The Audio Hub (AHUB) comprises a collection of hardware accelerators
11665308c0SSameer Pujar  for audio pre-processing, post-processing and a programmable full
12665308c0SSameer Pujar  crossbar for routing audio data across these accelerators. It has
13665308c0SSameer Pujar  external interfaces such as I2S, DMIC, DSPK. It interfaces with ADMA
14665308c0SSameer Pujar  engine through ADMAIF.
15665308c0SSameer Pujar
16665308c0SSameer Pujarmaintainers:
17665308c0SSameer Pujar  - Jon Hunter <jonathanh@nvidia.com>
18665308c0SSameer Pujar  - Sameer Pujar <spujar@nvidia.com>
19665308c0SSameer Pujar
20665308c0SSameer Pujarproperties:
21665308c0SSameer Pujar  $nodename:
22665308c0SSameer Pujar    pattern: "^ahub@[0-9a-f]*$"
23665308c0SSameer Pujar
24665308c0SSameer Pujar  compatible:
25665308c0SSameer Pujar    oneOf:
26665308c0SSameer Pujar      - enum:
27665308c0SSameer Pujar          - nvidia,tegra210-ahub
28665308c0SSameer Pujar          - nvidia,tegra186-ahub
29fed44d6cSSameer Pujar          - nvidia,tegra234-ahub
30665308c0SSameer Pujar      - items:
31665308c0SSameer Pujar          - const: nvidia,tegra194-ahub
32665308c0SSameer Pujar          - const: nvidia,tegra186-ahub
33665308c0SSameer Pujar
34665308c0SSameer Pujar  reg:
35665308c0SSameer Pujar    maxItems: 1
36665308c0SSameer Pujar
37665308c0SSameer Pujar  clocks:
38665308c0SSameer Pujar    maxItems: 1
39665308c0SSameer Pujar
40665308c0SSameer Pujar  clock-names:
41665308c0SSameer Pujar    const: ahub
42665308c0SSameer Pujar
43665308c0SSameer Pujar  assigned-clocks:
44665308c0SSameer Pujar    maxItems: 1
45665308c0SSameer Pujar
46665308c0SSameer Pujar  assigned-clock-parents:
47665308c0SSameer Pujar    maxItems: 1
48665308c0SSameer Pujar
49665308c0SSameer Pujar  assigned-clock-rates:
50665308c0SSameer Pujar    maxItems: 1
51665308c0SSameer Pujar
52665308c0SSameer Pujar  "#address-cells":
53*6427569fSThierry Reding    enum: [ 1, 2 ]
54665308c0SSameer Pujar
55665308c0SSameer Pujar  "#size-cells":
56*6427569fSThierry Reding    enum: [ 1, 2 ]
57665308c0SSameer Pujar
58665308c0SSameer Pujar  ranges: true
59665308c0SSameer Pujar
609e0f86fdSSameer Pujar  ports:
619c1e0439SRob Herring    $ref: /schemas/graph.yaml#/properties/ports
629e0f86fdSSameer Pujar    description: |
639e0f86fdSSameer Pujar      Contains list of ACIF (Audio CIF) port nodes for AHUB (Audio Hub).
649e0f86fdSSameer Pujar      These are connected to ACIF interfaces of AHUB clients. Thus the
659e0f86fdSSameer Pujar      number of port nodes depend on the number of clients that AHUB may
669e0f86fdSSameer Pujar      have depending on the SoC revision.
679e0f86fdSSameer Pujar
688b01a0d0SRob Herring    patternProperties:
699c1e0439SRob Herring      '^port@[0-9]':
709c1e0439SRob Herring        $ref: audio-graph-port.yaml#
719c1e0439SRob Herring        unevaluatedProperties: false
729c1e0439SRob Herring
739c1e0439SRob HerringpatternProperties:
748b01a0d0SRob Herring  '^i2s@[0-9a-f]+$':
758b01a0d0SRob Herring    type: object
768b01a0d0SRob Herring
778b01a0d0SRob Herring  '^dmic@[0-9a-f]+$':
788b01a0d0SRob Herring    type: object
798b01a0d0SRob Herring    $ref: nvidia,tegra210-dmic.yaml#
808b01a0d0SRob Herring
818b01a0d0SRob Herring  '^admaif@[0-9a-f]+$':
828b01a0d0SRob Herring    type: object
838b01a0d0SRob Herring    $ref: nvidia,tegra210-admaif.yaml#
848b01a0d0SRob Herring
858b01a0d0SRob Herring  '^dspk@[0-9a-f]+$':
868b01a0d0SRob Herring    type: object
878b01a0d0SRob Herring    $ref: nvidia,tegra186-dspk.yaml#
888b01a0d0SRob Herring
89aa56a9deSSameer Pujar  '^mvc@[0-9a-f]+$':
90aa56a9deSSameer Pujar    type: object
91aa56a9deSSameer Pujar    $ref: nvidia,tegra210-mvc.yaml#
92aa56a9deSSameer Pujar
93aa56a9deSSameer Pujar  '^sfc@[0-9a-f]+$':
94aa56a9deSSameer Pujar    type: object
95aa56a9deSSameer Pujar    $ref: nvidia,tegra210-sfc.yaml#
96aa56a9deSSameer Pujar
97aa56a9deSSameer Pujar  '^amx@[0-9a-f]+$':
98aa56a9deSSameer Pujar    type: object
99aa56a9deSSameer Pujar    $ref: nvidia,tegra210-amx.yaml#
100aa56a9deSSameer Pujar
101aa56a9deSSameer Pujar  '^adx@[0-9a-f]+$':
102aa56a9deSSameer Pujar    type: object
103aa56a9deSSameer Pujar    $ref: nvidia,tegra210-adx.yaml#
104aa56a9deSSameer Pujar
105aa56a9deSSameer Pujar  '^amixer@[0-9a-f]+$':
106aa56a9deSSameer Pujar    type: object
107aa56a9deSSameer Pujar    $ref: nvidia,tegra210-mixer.yaml#
108aa56a9deSSameer Pujar
109c54ce1a1SSameer Pujar  '^asrc@[0-9a-f]+$':
110c54ce1a1SSameer Pujar    type: object
111c54ce1a1SSameer Pujar    $ref: nvidia,tegra186-asrc.yaml#
112c54ce1a1SSameer Pujar
11345c6c5e0SSameer Pujar  '^processing-engine@[0-9a-f]+$':
11445c6c5e0SSameer Pujar    type: object
11545c6c5e0SSameer Pujar    $ref: nvidia,tegra210-ope.yaml#
11645c6c5e0SSameer Pujar
117665308c0SSameer Pujarrequired:
118665308c0SSameer Pujar  - compatible
119665308c0SSameer Pujar  - reg
120665308c0SSameer Pujar  - clocks
121665308c0SSameer Pujar  - clock-names
122665308c0SSameer Pujar  - assigned-clocks
123665308c0SSameer Pujar  - assigned-clock-parents
124665308c0SSameer Pujar  - "#address-cells"
125665308c0SSameer Pujar  - "#size-cells"
126665308c0SSameer Pujar  - ranges
127665308c0SSameer Pujar
1289c1e0439SRob HerringadditionalProperties: false
1296a0e321eSRob Herring
130665308c0SSameer Pujarexamples:
131665308c0SSameer Pujar  - |
132665308c0SSameer Pujar    #include<dt-bindings/clock/tegra210-car.h>
133665308c0SSameer Pujar
134665308c0SSameer Pujar    ahub@702d0800 {
135665308c0SSameer Pujar        compatible = "nvidia,tegra210-ahub";
136665308c0SSameer Pujar        reg = <0x702d0800 0x800>;
137665308c0SSameer Pujar        clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
138665308c0SSameer Pujar        clock-names = "ahub";
139665308c0SSameer Pujar        assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
140665308c0SSameer Pujar        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
141665308c0SSameer Pujar        #address-cells = <1>;
142665308c0SSameer Pujar        #size-cells = <1>;
143665308c0SSameer Pujar        ranges = <0x702d0000 0x702d0000 0x0000e400>;
144665308c0SSameer Pujar
145665308c0SSameer Pujar        // All AHUB child nodes below
146665308c0SSameer Pujar        admaif@702d0000 {
147665308c0SSameer Pujar            compatible = "nvidia,tegra210-admaif";
148665308c0SSameer Pujar            reg = <0x702d0000 0x800>;
149665308c0SSameer Pujar            dmas = <&adma 1>,  <&adma 1>,
150665308c0SSameer Pujar               <&adma 2>,  <&adma 2>,
151665308c0SSameer Pujar               <&adma 3>,  <&adma 3>,
152665308c0SSameer Pujar               <&adma 4>,  <&adma 4>,
153665308c0SSameer Pujar               <&adma 5>,  <&adma 5>,
154665308c0SSameer Pujar               <&adma 6>,  <&adma 6>,
155665308c0SSameer Pujar               <&adma 7>,  <&adma 7>,
156665308c0SSameer Pujar               <&adma 8>,  <&adma 8>,
157665308c0SSameer Pujar               <&adma 9>,  <&adma 9>,
158665308c0SSameer Pujar               <&adma 10>, <&adma 10>;
159665308c0SSameer Pujar            dma-names = "rx1",  "tx1",
160665308c0SSameer Pujar                    "rx2",  "tx2",
161665308c0SSameer Pujar                    "rx3",  "tx3",
162665308c0SSameer Pujar                    "rx4",  "tx4",
163665308c0SSameer Pujar                    "rx5",  "tx5",
164665308c0SSameer Pujar                    "rx6",  "tx6",
165665308c0SSameer Pujar                    "rx7",  "tx7",
166665308c0SSameer Pujar                    "rx8",  "tx8",
167665308c0SSameer Pujar                    "rx9",  "tx9",
168665308c0SSameer Pujar                    "rx10", "tx10";
169665308c0SSameer Pujar        };
170665308c0SSameer Pujar
171665308c0SSameer Pujar        i2s@702d1000 {
172665308c0SSameer Pujar            compatible = "nvidia,tegra210-i2s";
173665308c0SSameer Pujar            reg = <0x702d1000 0x100>;
174665308c0SSameer Pujar            clocks = <&tegra_car TEGRA210_CLK_I2S0>;
175665308c0SSameer Pujar            clock-names = "i2s";
176665308c0SSameer Pujar            assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
177665308c0SSameer Pujar            assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
178665308c0SSameer Pujar            assigned-clock-rates = <1536000>;
179665308c0SSameer Pujar            sound-name-prefix = "I2S1";
180665308c0SSameer Pujar        };
181665308c0SSameer Pujar
182665308c0SSameer Pujar        dmic@702d4000 {
183665308c0SSameer Pujar            compatible = "nvidia,tegra210-dmic";
184665308c0SSameer Pujar            reg = <0x702d4000 0x100>;
185665308c0SSameer Pujar            clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
186665308c0SSameer Pujar            clock-names = "dmic";
187665308c0SSameer Pujar            assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
188665308c0SSameer Pujar            assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
189665308c0SSameer Pujar            assigned-clock-rates = <3072000>;
190665308c0SSameer Pujar            sound-name-prefix = "DMIC1";
191665308c0SSameer Pujar        };
192665308c0SSameer Pujar
193665308c0SSameer Pujar        // More child nodes to follow
194665308c0SSameer Pujar    };
195665308c0SSameer Pujar
196665308c0SSameer Pujar...
197