Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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,tegra-audio-graph-card.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Audio Graph based Tegra sound card driver
8
9description: |
10 This is based on generic audio graph card driver along with additional
11 customizations for Tegra platforms. It uses the same bindings with
12 additional standard clock DT bindings required for Tegra.
13
14maintainers:
15 - Jon Hunter <jonathanh@nvidia.com>
16 - Sameer Pujar <spujar@nvidia.com>
17
18allOf:
19 - $ref: audio-graph.yaml#
20
21properties:
22 compatible:
23 enum:
24 - nvidia,tegra210-audio-graph-card
25 - nvidia,tegra186-audio-graph-card
26
27 clocks:
28 minItems: 2
29
30 clock-names:
31 items:
32 - const: pll_a
33 - const: plla_out0
34
35 assigned-clocks:
36 minItems: 1
37 maxItems: 3
38
39 assigned-clock-parents:
40 minItems: 1
41 maxItems: 3
42
43 assigned-clock-rates:
44 minItems: 1
45 maxItems: 3
46
47 iommus:
48 maxItems: 1
49
50required:
51 - clocks
52 - clock-names
53 - assigned-clocks
54 - assigned-clock-parents
55
56unevaluatedProperties: false
57
58examples:
59 - |
60 #include<dt-bindings/clock/tegra210-car.h>
61
62 tegra_sound {
63 compatible = "nvidia,tegra210-audio-graph-card";
64
65 clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
66 <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
67 clock-names = "pll_a", "plla_out0";
68
69 assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
70 <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
71 <&tegra_car TEGRA210_CLK_EXTERN1>;
72 assigned-clock-parents = <0>, <0>, <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
73 assigned-clock-rates = <368640000>, <49152000>, <12288000>;
74
75 dais = /* FE */
76 <&admaif1_port>,
77 /* Router */
78 <&xbar_i2s1_port>,
79 /* I/O DAP Ports */
80 <&i2s1_port>;
81
82 label = "jetson-tx1-ape";
83 };
84
85 // The ports are defined for AHUB and its child devices.
86 ahub@702d0800 {
87 compatible = "nvidia,tegra210-ahub";
88 reg = <0x702d0800 0x800>;
89 clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
90 clock-names = "ahub";
91 assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
92 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
93 #address-cells = <1>;
94 #size-cells = <1>;
95 ranges = <0x702d0000 0x702d0000 0x0000e400>;
96
97 ports {
98 #address-cells = <1>;
99 #size-cells = <0>;
100
101 port@0 {
102 reg = <0x0>;
103 xbar_admaif1_ep: endpoint {
104 remote-endpoint = <&admaif1_ep>;
105 };
106 };
107
108 // ...
109
110 xbar_i2s1_port: port@a {
111 reg = <0xa>;
112 xbar_i2s1_ep: endpoint {
113 remote-endpoint = <&i2s1_cif_ep>;
114 };
115 };
116 };
117
118 admaif@702d0000 {
119 compatible = "nvidia,tegra210-admaif";
120 reg = <0x702d0000 0x800>;
121 dmas = <&adma 1>, <&adma 1>,
122 <&adma 2>, <&adma 2>,
123 <&adma 3>, <&adma 3>,
124 <&adma 4>, <&adma 4>,
125 <&adma 5>, <&adma 5>,
126 <&adma 6>, <&adma 6>,
127 <&adma 7>, <&adma 7>,
128 <&adma 8>, <&adma 8>,
129 <&adma 9>, <&adma 9>,
130 <&adma 10>, <&adma 10>;
131 dma-names = "rx1", "tx1",
132 "rx2", "tx2",
133 "rx3", "tx3",
134 "rx4", "tx4",
135 "rx5", "tx5",
136 "rx6", "tx6",
137 "rx7", "tx7",
138 "rx8", "tx8",
139 "rx9", "tx9",
140 "rx10", "tx10";
141
142 ports {
143 #address-cells = <1>;
144 #size-cells = <0>;
145
146 admaif1_port: port@0 {
147 reg = <0x0>;
148 admaif1_ep: endpoint {
149 remote-endpoint = <&xbar_admaif1_ep>;
150 };
151 };
152
153 // More ADMAIF ports to follow
154 };
155 };
156
157 i2s@702d1000 {
158 compatible = "nvidia,tegra210-i2s";
159 clocks = <&tegra_car TEGRA210_CLK_I2S0>;
160 clock-names = "i2s";
161 assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
162 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
163 assigned-clock-rates = <1536000>;
164 reg = <0x702d1000 0x100>;
165
166 ports {
167 #address-cells = <1>;
168 #size-cells = <0>;
169
170 port@0 {
171 reg = <0x0>;
172
173 i2s1_cif_ep: endpoint {
174 remote-endpoint = <&xbar_i2s1_ep>;
175 };
176 };
177
178 i2s1_port: port@1 {
179 reg = <0x1>;
180
181 i2s1_dap: endpoint {
182 dai-format = "i2s";
183 };
184 };
185 };
186 };
187 };
188
189...