Lines Matching +full:multi +full:-
1 // SPDX-License-Identifier: GPL-2.0
3 * audio-graph-card2-custom-sample.dtsi
8 * This sample indicates how to use audio-graph-card2 and its
9 * custom driver. "audio-graph-card2-custom-sample" is the custome driver
10 * which is using audio-graph-card2.
15 * #include "../../../../../sound/soc/generic/audio-graph-card2-custom-sample.dtsi"
23 * "compatible" on each test-component. see below
26 * - compatible = "test-cpu";
27 * + compatible = "test-cpu-verbose";
32 * - compatible = "test-codec";
33 * + compatible = "test-codec-verbose";
39 * because test-component driver (test-cpu/test-codec) is supporting
43 * linux/sound/soc/generic/test-component.c :: test_dai_formats
50 * cpu0 <-@-----------------> codec0
52 * [Semi-Multi]
56 * +-+
57 * cpu7 <-@------->| |-> codec12
58 * | |-> codec13
59 * +-+
61 * [Multi-CPU/Codec]
62 * +-+ +-+
63 * cpu1 <--| |<-@--------->| |-> codec1
64 * cpu2 <--| | | |-> codec2
65 * +-+ +-+
73 * cpu3 <-@--* *--@-> codec3
74 * cpu4 <-@--* * (44.1kHz)
77 * [DPCM-Multi]
79 * --NOTE--
80 * Multi-FE is not supported by ASoC.
83 * **** +-+
84 * cpu5 <-@--* *--@-> | | -> codec4
85 * cpu6 <-@--* * | | -> codec5
86 * **** +-+
89 * +-@-> codec6
91 * +---> codec7
93 * [Codec2Codec-Multi]
95 * --NOTE--
96 * Multi connect N:M is not supported by ASoC.
98 * +-+
99 * +-@->| |-> codec8
100 * | | |-> codec9
101 * | +-+
102 * | +-+
103 * +--->| |-> codec10
104 * | |-> codec11
105 * +-+
107 audio-graph-card2-custom-sample {
109 * You can use audio-graph-card2 directly by using
111 * compatible = "audio-graph-card2";
113 compatible = "audio-graph-card2-custom-sample";
121 /* for [DPCM-Multi] */
134 /* for [Codec2Codec-Multi] */
147 /* [Semi-Multi] */
151 * [Multi-CPU/Codec]: cpu side only
163 * [DPCM-Multi]: both FE / BE
175 * [Codec2Codec-Multi]: cpu side only
181 multi {
182 #address-cells = <1>;
183 #size-cells = <0>;
187 #address-cells = <1>;
188 #size-cells = <0>;
189 /* [Multi-CPU] */
190 mcpu0: port@0 { reg = <0>; mcpu0_ep: endpoint { remote-endpoint = <&mcodec0_ep>; }; };
191 port@1 { reg = <1>; mcpu1_ep: endpoint { remote-endpoint = <&cpu1_ep>; }; };
192 port@2 { reg = <2>; mcpu2_ep: endpoint { remote-endpoint = <&cpu2_ep>; }; };
195 /* [Multi-Codec] */
198 #address-cells = <1>;
199 #size-cells = <0>;
200 port@0 { reg = <0>; mcodec0_ep: endpoint { remote-endpoint = <&mcpu0_ep>; }; };
201 port@1 { reg = <1>; mcodec1_ep: endpoint { remote-endpoint = <&codec1_ep>; }; };
202 port@2 { reg = <2>; mcodec2_ep: endpoint { remote-endpoint = <&codec2_ep>; }; };
205 /* [DPCM-Multi]::BE */
208 #address-cells = <1>;
209 #size-cells = <0>;
210 port@0 { reg = <0>; mbe_ep: endpoint { remote-endpoint = <&be10_ep>; }; };
211 port@1 { reg = <1>; mbe1_ep: endpoint { remote-endpoint = <&codec4_ep>; }; };
212 port@2 { reg = <2>; mbe2_ep: endpoint { remote-endpoint = <&codec5_ep>; }; };
215 /* [Codec2Codec-Multi]::CPU */
218 #address-cells = <1>;
219 #size-cells = <0>;
220 port@0 { reg = <0>; mc2c0_ep: endpoint { remote-endpoint = <&c2cmf_ep>; }; };
221 port@1 { reg = <1>; mc2c00_ep: endpoint { remote-endpoint = <&codec8_ep>; }; };
222 port@2 { reg = <2>; mc2c01_ep: endpoint { remote-endpoint = <&codec9_ep>; }; };
225 /* [Codec2Codec-Multi]::Codec */
228 #address-cells = <1>;
229 #size-cells = <0>;
230 port@0 { reg = <0>; mc2c1_ep: endpoint { remote-endpoint = <&c2cmb_ep>; }; };
231 port@1 { reg = <1>; mc2c10_ep: endpoint { remote-endpoint = <&codec10_ep>; }; };
232 port@2 { reg = <2>; mc2c11_ep: endpoint { remote-endpoint = <&codec11_ep>; }; };
235 /* [Semi-Multi] */
238 #address-cells = <1>;
239 #size-cells = <0>;
240 port@0 { reg = <0>; smcodec0_ep: endpoint { remote-endpoint = <&cpu7_ep>; }; };
241 port@1 { reg = <1>; smcodec1_ep: endpoint { remote-endpoint = <&codec12_ep>; }; };
242 port@2 { reg = <2>; smcodec2_ep: endpoint { remote-endpoint = <&codec13_ep>; }; };
247 #address-cells = <1>;
248 #size-cells = <0>;
253 #address-cells = <1>;
254 #size-cells = <0>;
256 fe00: port@0 { reg = <0>; fe00_ep: endpoint { remote-endpoint = <&cpu3_ep>; }; };
257 fe01: port@1 { reg = <1>; fe01_ep: endpoint { remote-endpoint = <&cpu4_ep>; }; };
259 /* [DPCM-Multi]::FE */
260 fe10: port@2 { reg = <2>; fe10_ep: endpoint { remote-endpoint = <&cpu5_ep>; }; };
261 fe11: port@3 { reg = <3>; fe11_ep: endpoint { remote-endpoint = <&cpu6_ep>; }; };
267 #address-cells = <1>;
268 #size-cells = <0>;
270 be0: port@0 { reg = <0>; be00_ep: endpoint { remote-endpoint = <&codec3_ep>; }; };
272 /* [DPCM-Multi]::BE */
273 be1: port@1 { reg = <1>; be10_ep: endpoint { remote-endpoint = <&mbe_ep>; }; };
278 #address-cells = <1>;
279 #size-cells = <0>;
284 #address-cells = <1>;
285 #size-cells = <0>;
288 c2c: port@0 { reg = <0>; c2cf_ep: endpoint { remote-endpoint = <&codec6_ep>; }; };
289 port@1 { reg = <1>; c2cb_ep: endpoint { remote-endpoint = <&codec7_ep>; }; };
292 /* [Codec2Codec-Multi] */
296 #address-cells = <1>;
297 #size-cells = <0>;
301 c2c_m: port@0 { reg = <0>; c2cmf_ep: endpoint { remote-endpoint = <&mc2c0_ep>; }; };
302 port@1 { reg = <1>; c2cmb_ep: endpoint { remote-endpoint = <&mc2c1_ep>; }; };
310 * if you want. see test-compatible for more detail.
313 * - compatible = "test-cpu";
314 * + compatible = "test-cpu-verbose";
316 compatible = "test-cpu";
318 #address-cells = <1>;
319 #size-cells = <0>;
321 bitclock-master;
322 frame-master;
324 cpu0: port@0 { reg = <0>; cpu0_ep: endpoint { remote-endpoint = <&codec0_ep>; }; };
326 /* [Multi-CPU] */
327 port@1 { reg = <1>; cpu1_ep: endpoint { remote-endpoint = <&mcpu1_ep>; }; };
328 port@2 { reg = <2>; cpu2_ep: endpoint { remote-endpoint = <&mcpu2_ep>; }; };
331 port@3 { reg = <3>; cpu3_ep: endpoint { remote-endpoint = <&fe00_ep>; }; };
332 port@4 { reg = <4>; cpu4_ep: endpoint { remote-endpoint = <&fe01_ep>; }; };
334 /* [DPCM-Multi]::FE */
335 port@5 { reg = <5>; cpu5_ep: endpoint { remote-endpoint = <&fe10_ep>; }; };
336 port@6 { reg = <6>; cpu6_ep: endpoint { remote-endpoint = <&fe11_ep>; }; };
338 /* [Semi-Multi] */
339 sm0: port@7 { reg = <7>; cpu7_ep: endpoint { remote-endpoint = <&smcodec0_ep>; }; };
346 * if you want. see test-compatible for more detail.
349 * - compatible = "test-codec";
350 * + compatible = "test-codec-verbose";
352 compatible = "test-codec";
354 #address-cells = <1>;
355 #size-cells = <0>;
359 * see audio-graph-card2::routing
364 port@0 { reg = <0>; codec0_ep: endpoint { remote-endpoint = <&cpu0_ep>; }; };
366 /* [Multi-Codec] */
367 port@1 { reg = <1>; codec1_ep: endpoint { remote-endpoint = <&mcodec1_ep>; }; };
368 port@2 { reg = <2>; codec2_ep: endpoint { remote-endpoint = <&mcodec2_ep>; }; };
372 convert-rate = <44100>;
373 reg = <3>; codec3_ep: endpoint { remote-endpoint = <&be00_ep>; };
376 /* [DPCM-Multi]::BE */
377 port@4 { reg = <4>; codec4_ep: endpoint { remote-endpoint = <&mbe1_ep>; }; };
378 port@5 { reg = <5>; codec5_ep: endpoint { remote-endpoint = <&mbe2_ep>; }; };
381 port@6 { bitclock-master;
382 frame-master;
383 reg = <6>; codec6_ep: endpoint { remote-endpoint = <&c2cf_ep>; }; };
384 port@7 { reg = <7>; codec7_ep: endpoint { remote-endpoint = <&c2cb_ep>; }; };
386 /* [Codec2Codec-Multi] */
387 port@8 { bitclock-master;
388 frame-master;
389 reg = <8>; codec8_ep: endpoint { remote-endpoint = <&mc2c00_ep>; }; };
390 port@9 { reg = <9>; codec9_ep: endpoint { remote-endpoint = <&mc2c01_ep>; }; };
391 port@a { reg = <10>; codec10_ep: endpoint { remote-endpoint = <&mc2c10_ep>; }; };
392 port@b { reg = <11>; codec11_ep: endpoint { remote-endpoint = <&mc2c11_ep>; }; };
394 /* [Semi-Multi] */
395 port@c { reg = <12>; codec12_ep: endpoint { remote-endpoint = <&smcodec1_ep>; }; };
396 port@d { reg = <13>; codec13_ep: endpoint { remote-endpoint = <&smcodec2_ep>; }; };