xref: /freebsd/sys/contrib/device-tree/src/arm64/renesas/ulcb-audio-graph-card-mix+split.dtsi (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1cb7aa33aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2cb7aa33aSEmmanuel Vadot/*
3cb7aa33aSEmmanuel Vadot * Device Tree for ULCB + Audio Graph Card (MIX)
4cb7aa33aSEmmanuel Vadot *
5cb7aa33aSEmmanuel Vadot * Copyright (C) 2022 Renesas Electronics Corp.
6cb7aa33aSEmmanuel Vadot */
7cb7aa33aSEmmanuel Vadot
8cb7aa33aSEmmanuel Vadot/*
9cb7aa33aSEmmanuel Vadot * Note:
10cb7aa33aSEmmanuel Vadot * The HDMI output is ignored due to the limited number of subdevices
11cb7aa33aSEmmanuel Vadot *
12cb7aa33aSEmmanuel Vadot *	(A) CPU0 (2ch) <-----> (2ch) (X) ak4613	(MIX-0)
13cb7aa33aSEmmanuel Vadot *	(B) CPU1 (2ch)  --/			(MIX-1)
14cb7aa33aSEmmanuel Vadot *
15cb7aa33aSEmmanuel Vadot *	(A) aplay   -D plughw:0,0 xxx.wav
16cb7aa33aSEmmanuel Vadot *	(B) aplay   -D plughw:0,1 xxx.wav
17cb7aa33aSEmmanuel Vadot *
18cb7aa33aSEmmanuel Vadot *	(A) arecord -D plughw:0,0 xxx.wav
19cb7aa33aSEmmanuel Vadot */
20cb7aa33aSEmmanuel Vadot
21cb7aa33aSEmmanuel Vadot/ {
22cb7aa33aSEmmanuel Vadot	sound_card: sound {
23cb7aa33aSEmmanuel Vadot		compatible = "audio-graph-scu-card";
24*84943d6fSEmmanuel Vadot		label = "snd-ulcb-mix";
25cb7aa33aSEmmanuel Vadot
26cb7aa33aSEmmanuel Vadot		routing = "ak4613 Playback", "DAI0 Playback",
27cb7aa33aSEmmanuel Vadot			  "ak4613 Playback", "DAI1 Playback",
28cb7aa33aSEmmanuel Vadot			  "DAI0 Capture",    "ak4613 Capture";
29cb7aa33aSEmmanuel Vadot
30*84943d6fSEmmanuel Vadot		dais = <&snd_ulcb1 /* (A) CPU0 */
31*84943d6fSEmmanuel Vadot			&snd_ulcb2 /* (B) CPU1 */
32cb7aa33aSEmmanuel Vadot		>;
33cb7aa33aSEmmanuel Vadot	};
34cb7aa33aSEmmanuel Vadot};
35cb7aa33aSEmmanuel Vadot
36cb7aa33aSEmmanuel Vadot&ak4613 {
37cb7aa33aSEmmanuel Vadot	port {
38cb7aa33aSEmmanuel Vadot		#address-cells = <1>;
39cb7aa33aSEmmanuel Vadot		#size-cells = <0>;
40cb7aa33aSEmmanuel Vadot
41cb7aa33aSEmmanuel Vadot		/*
42cb7aa33aSEmmanuel Vadot		 * (X) ak4613
43cb7aa33aSEmmanuel Vadot		 */
44cb7aa33aSEmmanuel Vadot		prefix = "ak4613";
45cb7aa33aSEmmanuel Vadot		convert-rate = <48000>;
46cb7aa33aSEmmanuel Vadot
47cb7aa33aSEmmanuel Vadot		/* (A) CPU0 <-> (X) ak4613 */
48cb7aa33aSEmmanuel Vadot		ak4613_ep1: endpoint@0 {
49cb7aa33aSEmmanuel Vadot			reg = <0>;
50cb7aa33aSEmmanuel Vadot			remote-endpoint = <&rsnd_for_ak4613_1>;
51cb7aa33aSEmmanuel Vadot		};
52cb7aa33aSEmmanuel Vadot		/* (B) CPU1 -> (X) ak4613 */
53cb7aa33aSEmmanuel Vadot		ak4613_ep2: endpoint@1 {
54cb7aa33aSEmmanuel Vadot			reg = <1>;
55cb7aa33aSEmmanuel Vadot			remote-endpoint = <&rsnd_for_ak4613_2>;
56cb7aa33aSEmmanuel Vadot		};
57cb7aa33aSEmmanuel Vadot	};
58cb7aa33aSEmmanuel Vadot};
59cb7aa33aSEmmanuel Vadot
60cb7aa33aSEmmanuel Vadot&rcar_sound {
61cb7aa33aSEmmanuel Vadot	#address-cells = <1>;
62cb7aa33aSEmmanuel Vadot	#size-cells = <0>;
63cb7aa33aSEmmanuel Vadot
64*84943d6fSEmmanuel Vadot	ports@0 {
65*84943d6fSEmmanuel Vadot		#address-cells = <1>;
66*84943d6fSEmmanuel Vadot		#size-cells = <0>;
67*84943d6fSEmmanuel Vadot		reg = <0>;
68*84943d6fSEmmanuel Vadot
69cb7aa33aSEmmanuel Vadot		/*
70cb7aa33aSEmmanuel Vadot		 * (A) CPU0
71cb7aa33aSEmmanuel Vadot		 */
72*84943d6fSEmmanuel Vadot		snd_ulcb1: port@0 {
73cb7aa33aSEmmanuel Vadot			reg = <0>;
74cb7aa33aSEmmanuel Vadot			rsnd_for_ak4613_1: endpoint {
75cb7aa33aSEmmanuel Vadot				remote-endpoint = <&ak4613_ep1>;
76cb7aa33aSEmmanuel Vadot				bitclock-master;
77cb7aa33aSEmmanuel Vadot				frame-master;
78cb7aa33aSEmmanuel Vadot				playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
79cb7aa33aSEmmanuel Vadot				capture  = <&ssi1 &src0 &dvc1>;
80cb7aa33aSEmmanuel Vadot			};
81cb7aa33aSEmmanuel Vadot		};
82cb7aa33aSEmmanuel Vadot		/*
83cb7aa33aSEmmanuel Vadot		 * (B) CPU1
84cb7aa33aSEmmanuel Vadot		 */
85*84943d6fSEmmanuel Vadot		snd_ulcb2: port@1 {
86cb7aa33aSEmmanuel Vadot			reg = <1>;
87cb7aa33aSEmmanuel Vadot			rsnd_for_ak4613_2: endpoint {
88cb7aa33aSEmmanuel Vadot				remote-endpoint = <&ak4613_ep2>;
89cb7aa33aSEmmanuel Vadot				bitclock-master;
90cb7aa33aSEmmanuel Vadot				frame-master;
91cb7aa33aSEmmanuel Vadot				playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
92cb7aa33aSEmmanuel Vadot			};
93cb7aa33aSEmmanuel Vadot		};
94cb7aa33aSEmmanuel Vadot	};
95cb7aa33aSEmmanuel Vadot};
96