Lines Matching +full:port +full:- +full:endpoint
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-0]
62 * +-+ +-+
63 * cpu1 <--| |<-@--------->| |-> codec1
64 * cpu2 <--| | | |-> codec2
65 * +-+ +-+
67 * [Multi-CPU/Codec-1]
69 * +-+ +-+
70 * | |<-@--------->| |
72 * cpu8 <--| |<----------->| |-> codec14
73 * cpu9 <--| |<---+------->| |-> codec15
74 * +-+ \------>| |-> codec16
75 * +-+
77 * [Multi-CPU/Codec-2]
79 * +-+ +-+
80 * | |<-@--------->| |
82 * cpu10 <-| |<----------->| |-> codec17
83 * cpu11 <-| |<-----+----->| |-> codec18
84 * cpu12 <-| |<----/ +-+
85 * +-+
93 * cpu3 <-@--* *--@-> codec3
94 * cpu4 <-@--* * (44.1kHz)
97 * [DPCM-Multi]
99 * --NOTE--
100 * Multi-FE is not supported by ASoC.
103 * **** +-+
104 * cpu5 <-@--* *--@-> | | -> codec4
105 * cpu6 <-@--* * | | -> codec5
106 * **** +-+
109 * +-@-> codec6
111 * +---> codec7
113 * [Codec2Codec-Multi]
115 * --NOTE--
118 * +-+
119 * +-@->| |-> codec8
120 * | | |-> codec9
121 * | +-+
122 * | +-+
123 * +--->| |-> codec10
124 * | |-> codec11
125 * +-+
127 audio-graph-card2-custom-sample {
129 * You can use audio-graph-card2 directly by using
131 * compatible = "audio-graph-card2";
133 compatible = "audio-graph-card2-custom-sample";
141 /* for [DPCM-Multi] */
154 /* for [Codec2Codec-Multi] */
168 * [Semi-Multi]
174 * [Multi-CPU/Codec-0]: cpu side only
180 * [Multi-CPU/Codec-1]: cpu side only
190 * [Multi-CPU/Codec-2]: cpu side only
206 * [DPCM-Multi]: both FE / BE
218 * [Codec2Codec-Multi]: cpu side only
225 #address-cells = <1>;
226 #size-cells = <0>;
229 * [Multi-CPU-0]
231 * +---+ +---+
232 * cpu1 <--|A X|<-@------->|x a|-> codec1
233 * cpu2 <--|B | | b|-> codec2
234 * +---+ +---+
238 #address-cells = <1>;
239 #size-cells = <0>;
240 …mcpu0: port@0 { reg = <0>; mcpu00_ep: endpoint { remote-endpoint = <&mcodec00_ep>; };};/* (X) to p…
241 …port@1 { reg = <1>; mcpu01_ep: endpoint { remote-endpoint = <&cpu1_ep>; };};/* (A) Multi Eleme…
242 …port@2 { reg = <2>; mcpu02_ep: endpoint { remote-endpoint = <&cpu2_ep>; };};/* (B) Multi Eleme…
246 * [Multi-Codec-0]
248 * +---+ +---+
249 * cpu1 <--|A X|<-@------->|x a|-> codec1
250 * cpu2 <--|B | | b|-> codec2
251 * +---+ +---+
255 #address-cells = <1>;
256 #size-cells = <0>;
257 … port@0 { reg = <0>; mcodec00_ep: endpoint { remote-endpoint = <&mcpu00_ep>; };};/* (x) to pair */
258 …port@1 { reg = <1>; mcodec01_ep: endpoint { remote-endpoint = <&codec1_ep>; };};/* (a) Multi Eleme…
259 …port@2 { reg = <2>; mcodec02_ep: endpoint { remote-endpoint = <&codec2_ep>; };};/* (b) Multi Eleme…
263 * [DPCM-Multi]::BE
266 * **** +---+
267 * cpu5 <-@--* *-----@--->|x a|-> codec4
268 * cpu6 <-@--* * | b|-> codec5
269 * **** +---+
273 #address-cells = <1>;
274 #size-cells = <0>;
275 port@0 { reg = <0>; mbe_ep: endpoint { remote-endpoint = <&be10_ep>; };};/* (x) to pair */
276 …port@1 { reg = <1>; mbe1_ep: endpoint { remote-endpoint = <&codec4_ep>; };};/* (a) Multi Element */
277 …port@2 { reg = <2>; mbe2_ep: endpoint { remote-endpoint = <&codec5_ep>; };};/* (b) Multi Element */
281 * [Codec2Codec-Multi]::CPU
283 * +---+
284 * +-@->|X A|-> codec8
285 * | | B|-> codec9
286 * | +---+
287 * | +---+
288 * +--->|x a|-> codec10
289 * | b|-> codec11
290 * +---+
294 #address-cells = <1>;
295 #size-cells = <0>;
296 port@0 { reg = <0>; mc2c0_ep: endpoint { remote-endpoint = <&c2cmf_ep>; };};/* (X) to pair */
297 …port@1 { reg = <1>; mc2c00_ep: endpoint { remote-endpoint = <&codec8_ep>; };};/* (A) Multi Element…
298 …port@2 { reg = <2>; mc2c01_ep: endpoint { remote-endpoint = <&codec9_ep>; };};/* (B) Multi Element…
302 * [Codec2Codec-Multi]::Codec
304 * +---+
305 * +-@->|X A|-> codec8
306 * | | B|-> codec9
307 * | +---+
308 * | +---+
309 * +--->|x a|-> codec10
310 * | b|-> codec11
311 * +---+
315 #address-cells = <1>;
316 #size-cells = <0>;
317 port@0 { reg = <0>; mc2c1_ep: endpoint { remote-endpoint = <&c2cmb_ep>; };};/* (x) to pair */
318 …port@1 { reg = <1>; mc2c10_ep: endpoint { remote-endpoint = <&codec10_ep>; };};/* (a) Multi Elemen…
319 …port@2 { reg = <2>; mc2c11_ep: endpoint { remote-endpoint = <&codec11_ep>; };};/* (b) Multi Elemen…
323 * [Semi-Multi]
325 * +---+
326 * cpu7 <-@------->|X A|-> codec12
327 * | B|-> codec13
328 * +---+
332 #address-cells = <1>;
333 #size-cells = <0>;
334 … port@0 { reg = <0>; smcodec0_ep: endpoint { remote-endpoint = <&cpu7_ep>; };};/* (X) to pair */
335 …port@1 { reg = <1>; smcodec1_ep: endpoint { remote-endpoint = <&codec12_ep>; };};/* (A) Multi Elem…
336 …port@2 { reg = <2>; smcodec2_ep: endpoint { remote-endpoint = <&codec13_ep>; };};/* (B) Multi Elem…
340 * [Multi-CPU-1]
342 * +---+ +---+
343 * | X|<-@------->|x |
345 * cpu8 <--|A 1|<--------->|3 a|-> codec14
346 * cpu9 <--|B 2|<---+----->|4 b|-> codec15
347 * +---+ \---->|5 c|-> codec16
348 * +---+
352 #address-cells = <1>;
353 #size-cells = <0>;
354 …mcpu1: port@0 { reg = <0>; mcpu10_ep: endpoint { remote-endpoint = <&mcodec10_ep>; };}; /* (X) …
355 port@1 {
356 #address-cells = <1>;
357 #size-cells = <0>;
359 …mcpu11_ep: endpoint@0 { reg = <0>; remote-endpoint = <&cpu8_ep>; }; /* (A) Multi Element */
360 …mcpu11_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcodec11_ep_0>; }; /* (1) connected Codec…
362 port@2 {
363 #address-cells = <1>;
364 #size-cells = <0>;
366 …mcpu12_ep: endpoint@0 { reg = <0>; remote-endpoint = <&cpu9_ep>; }; /* (B) Multi Element */
367 …mcpu12_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcodec12_ep_0>; }; /* (2) connected Codec…
368 …mcpu12_ep_1: endpoint@2 { reg = <2>; remote-endpoint = <&mcodec13_ep_0>; }; /* (2) connected Codec…
373 * [Multi-Codec-1]
375 * +---+ +---+
376 * | X|<-@------->|x |
378 * cpu8 <--|A 1|<--------->|3 a|-> codec14
379 * cpu9 <--|B 2|<---+----->|4 b|-> codec15
380 * +---+ \---->|5 c|-> codec16
381 * +---+
385 #address-cells = <1>;
386 #size-cells = <0>;
387 …port@0 { reg = <0>; mcodec10_ep: endpoint { remote-endpoint = <&mcpu10_ep>; };}; /* (x) to pair…
388 port@1 {
389 #address-cells = <1>;
390 #size-cells = <0>;
392 …mcodec11_ep: endpoint@0 { reg = <0>; remote-endpoint = <&codec14_ep>; }; /* (a) Multi Element */
393 …mcodec11_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcpu11_ep_0>; }; /* (3) connected CPU */
395 port@2 {
396 #address-cells = <1>;
397 #size-cells = <0>;
399 …mcodec12_ep: endpoint@0 { reg = <0>; remote-endpoint = <&codec15_ep>; }; /* (b) Multi Element */
400 …mcodec12_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcpu12_ep_0>; }; /* (4) connected CPU */
402 port@3 {
403 #address-cells = <1>;
404 #size-cells = <0>;
406 …mcodec13_ep: endpoint@0 { reg = <0>; remote-endpoint = <&codec16_ep>; }; /* (c) Multi Element */
407 …mcodec13_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcpu12_ep_1>; }; /* (5) connected CPU */
412 * [Multi-CPU-2]
414 * +---+ +---+
415 * | X|<-@------->|x |
417 * cpu10 <-|A 1|<--------->|4 a|-> codec17
418 * cpu11 <-|B 2|<-----+--->|5 b|-> codec18
419 * cpu12 <-|C 3|<----/ +---+
420 * +---+
424 #address-cells = <1>;
425 #size-cells = <0>;
426 …mcpu2: port@0 { reg = <0>; mcpu20_ep: endpoint { remote-endpoint = <&mcodec20_ep>; };}; /* (X) …
427 port@1 {
428 #address-cells = <1>;
429 #size-cells = <0>;
431 …mcpu21_ep: endpoint@0 { reg = <0>; remote-endpoint = <&cpu10_ep>; }; /* (A) Multi Element */
432 …mcpu21_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcodec21_ep_0>; }; /* (1) connected Codec…
434 port@2 {
435 #address-cells = <1>;
436 #size-cells = <0>;
438 …mcpu22_ep: endpoint@0 { reg = <0>; remote-endpoint = <&cpu11_ep>; }; /* (B) Multi Element */
439 …mcpu22_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcodec22_ep_0>; }; /* (2) connected Codec…
441 port@3 {
442 #address-cells = <1>;
443 #size-cells = <0>;
445 …mcpu23_ep: endpoint@0 { reg = <0>; remote-endpoint = <&cpu12_ep>; }; /* (C) Multi Element */
446 …mcpu23_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcodec22_ep_1>; }; /* (3) connected Codec…
451 * [Multi-Codec-2]
453 * +---+ +---+
454 * | X|<-@------->|x |
456 * cpu10 <-|A 1|<--------->|4 a|-> codec17
457 * cpu11 <-|B 2|<-----+--->|5 b|-> codec18
458 * cpu12 <-|C 3|<----/ +---+
459 * +---+
463 #address-cells = <1>;
464 #size-cells = <0>;
465 …port@0 { reg = <0>; mcodec20_ep: endpoint { remote-endpoint = <&mcpu20_ep>; };}; /* (x) to pair…
466 port@1 {
467 #address-cells = <1>;
468 #size-cells = <0>;
470 …mcodec21_ep: endpoint@0 { reg = <0>; remote-endpoint = <&codec17_ep>; }; /* (a) Multi Element */
471 …mcodec21_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcpu21_ep_0>; }; /* (4) connected CPU */
473 port@2 {
474 #address-cells = <1>;
475 #size-cells = <0>;
477 …mcodec22_ep: endpoint@0 { reg = <0>; remote-endpoint = <&codec18_ep>; }; /* (b) Multi Element */
478 …mcodec22_ep_0: endpoint@1 { reg = <1>; remote-endpoint = <&mcpu22_ep_0>; }; /* (5) connected CPU */
479 …mcodec22_ep_1: endpoint@2 { reg = <2>; remote-endpoint = <&mcpu23_ep_0>; }; /* (5) connected CPU */
485 #address-cells = <1>;
486 #size-cells = <0>;
491 #address-cells = <1>;
492 #size-cells = <0>;
498 * cpu3 <-@(fe00)--* *--(be0)@--> codec3
499 * cpu4 <-@(fe01)--* * (44.1kHz)
502 fe00: port@0 { reg = <0>; fe00_ep: endpoint { remote-endpoint = <&cpu3_ep>; }; };
503 fe01: port@1 { reg = <1>; fe01_ep: endpoint { remote-endpoint = <&cpu4_ep>; }; };
506 * [DPCM-Multi]::FE
509 * **** +-+
510 * cpu5 <-@(fe10)--* *---(be1)@-->| |-> codec4
511 * cpu6 <-@(fe11)--* * | |-> codec5
512 * **** +-+
514 fe10: port@2 { reg = <2>; fe10_ep: endpoint { remote-endpoint = <&cpu5_ep>; }; };
515 fe11: port@3 { reg = <3>; fe11_ep: endpoint { remote-endpoint = <&cpu6_ep>; }; };
521 #address-cells = <1>;
522 #size-cells = <0>;
528 * cpu3 <-@(fe00)--* *--(be0)@--> codec3
529 * cpu4 <-@(fe01)--* * (44.1kHz)
532 be0: port@0 { reg = <0>; be00_ep: endpoint { remote-endpoint = <&codec3_ep>; }; };
535 * [DPCM-Multi]::BE
538 * **** +-+
539 * cpu5 <-@(fe10)--* *---(be1)@-->| |-> codec4
540 * cpu6 <-@(fe11)--* * | |-> codec5
541 * **** +-+
543 be1: port@1 { reg = <1>; be10_ep: endpoint { remote-endpoint = <&mbe_ep>; }; };
548 #address-cells = <1>;
549 #size-cells = <0>;
553 * +-@(c2c)-> codec6
555 * +--------> codec7
560 #address-cells = <1>;
561 #size-cells = <0>;
564 c2c: port@0 { reg = <0>; c2cf_ep: endpoint { remote-endpoint = <&codec6_ep>; }; };
565 port@1 { reg = <1>; c2cb_ep: endpoint { remote-endpoint = <&codec7_ep>; }; };
569 * [Codec2Codec-Multi]
571 * +-+
572 * +-@(c2c_m)-->| |-> codec8
573 * | | |-> codec9
574 * | +-+
575 * | +-+
576 * +----------->| |-> codec10
577 * | |-> codec11
578 * +-+
583 #address-cells = <1>;
584 #size-cells = <0>;
588 c2c_m: port@0 { reg = <0>; c2cmf_ep: endpoint { remote-endpoint = <&mc2c0_ep>; }; };
589 port@1 { reg = <1>; c2cmb_ep: endpoint { remote-endpoint = <&mc2c1_ep>; }; };
597 * if you want. see test-compatible for more detail.
600 * - compatible = "test-cpu";
601 * + compatible = "test-cpu-verbose";
603 compatible = "test-cpu";
605 #address-cells = <1>;
606 #size-cells = <0>;
608 bitclock-master;
609 frame-master;
611 cpu0: port@0 { reg = <0>; cpu0_ep: endpoint { remote-endpoint = <&codec0_ep>; }; };
613 /* [Multi-CPU-0] */
614 port@1 { reg = <1>; cpu1_ep: endpoint { remote-endpoint = <&mcpu01_ep>; }; };
615 port@2 { reg = <2>; cpu2_ep: endpoint { remote-endpoint = <&mcpu02_ep>; }; };
618 port@3 { reg = <3>; cpu3_ep: endpoint { remote-endpoint = <&fe00_ep>; }; };
619 port@4 { reg = <4>; cpu4_ep: endpoint { remote-endpoint = <&fe01_ep>; }; };
621 /* [DPCM-Multi]::FE */
622 port@5 { reg = <5>; cpu5_ep: endpoint { remote-endpoint = <&fe10_ep>; }; };
623 port@6 { reg = <6>; cpu6_ep: endpoint { remote-endpoint = <&fe11_ep>; }; };
625 /* [Semi-Multi] */
626 sm0: port@7 { reg = <7>; cpu7_ep: endpoint { remote-endpoint = <&smcodec0_ep>; }; };
628 /* [Multi-CPU-1] */
629 port@8 { reg = <8>; cpu8_ep: endpoint { remote-endpoint = <&mcpu11_ep>; }; };
630 port@9 { reg = <9>; cpu9_ep: endpoint { remote-endpoint = <&mcpu12_ep>; }; };
631 /* [Multi-CPU-2] */
632 port@a { reg = <10>; cpu10_ep: endpoint { remote-endpoint = <&mcpu21_ep>; }; };
633 port@b { reg = <11>; cpu11_ep: endpoint { remote-endpoint = <&mcpu22_ep>; }; };
634 port@c { reg = <12>; cpu12_ep: endpoint { remote-endpoint = <&mcpu23_ep>; }; };
641 * if you want. see test-compatible for more detail.
644 * - compatible = "test-codec";
645 * + compatible = "test-codec-verbose";
647 compatible = "test-codec";
649 #address-cells = <1>;
650 #size-cells = <0>;
654 * see audio-graph-card2::routing
659 port@0 { reg = <0>; codec0_ep: endpoint { remote-endpoint = <&cpu0_ep>; }; };
661 /* [Multi-Codec-0] */
662 port@1 { reg = <1>; codec1_ep: endpoint { remote-endpoint = <&mcodec01_ep>; }; };
663 port@2 { reg = <2>; codec2_ep: endpoint { remote-endpoint = <&mcodec02_ep>; }; };
666 port@3 {
667 convert-rate = <44100>;
668 reg = <3>; codec3_ep: endpoint { remote-endpoint = <&be00_ep>; };
671 /* [DPCM-Multi]::BE */
672 port@4 { reg = <4>; codec4_ep: endpoint { remote-endpoint = <&mbe1_ep>; }; };
673 port@5 { reg = <5>; codec5_ep: endpoint { remote-endpoint = <&mbe2_ep>; }; };
676 port@6 { bitclock-master;
677 frame-master;
678 reg = <6>; codec6_ep: endpoint { remote-endpoint = <&c2cf_ep>; }; };
679 port@7 { reg = <7>; codec7_ep: endpoint { remote-endpoint = <&c2cb_ep>; }; };
681 /* [Codec2Codec-Multi] */
682 port@8 { bitclock-master;
683 frame-master;
684 reg = <8>; codec8_ep: endpoint { remote-endpoint = <&mc2c00_ep>; }; };
685 port@9 { reg = <9>; codec9_ep: endpoint { remote-endpoint = <&mc2c01_ep>; }; };
686 port@a { reg = <10>; codec10_ep: endpoint { remote-endpoint = <&mc2c10_ep>; }; };
687 port@b { reg = <11>; codec11_ep: endpoint { remote-endpoint = <&mc2c11_ep>; }; };
689 /* [Semi-Multi] */
690 port@c { reg = <12>; codec12_ep: endpoint { remote-endpoint = <&smcodec1_ep>; }; };
691 port@d { reg = <13>; codec13_ep: endpoint { remote-endpoint = <&smcodec2_ep>; }; };
693 /* [Multi-Codec-1] */
694 port@e { reg = <14>; codec14_ep: endpoint { remote-endpoint = <&mcodec11_ep>; }; };
695 port@f { reg = <15>; codec15_ep: endpoint { remote-endpoint = <&mcodec12_ep>; }; };
696 port@10 { reg = <16>; codec16_ep: endpoint { remote-endpoint = <&mcodec13_ep>; }; };
697 /* [Multi-Codec-2] */
698 port@11 { reg = <17>; codec17_ep: endpoint { remote-endpoint = <&mcodec21_ep>; }; };
699 port@12 { reg = <18>; codec18_ep: endpoint { remote-endpoint = <&mcodec22_ep>; }; };