3 Audio Graph Card specifies audio DAI connections of SoC <-> codec.
4 It is based on common bindings for device graphs.
5 see ${LINUX}/Documentation/devicetree/bindings/graph.txt
7 Basically, Audio Graph Card property is same as Simple Card.
8 see ${LINUX}/Documentation/devicetree/bindings/sound/simple-card.txt
10 Below are same as Simple-Card.
25 - clocks / system-clock-frequency
29 - compatible : "audio-graph-card";
30 - dais : list of CPU DAI port{s}
33 - pa-gpios: GPIO used to control external amplifier.
35 -----------------------
36 Example: Single DAI case
37 -----------------------
40 compatible = "audio-graph-card";
48 cpu_endpoint: endpoint {
49 remote-endpoint = <&codec_endpoint>;
51 dai-format = "left_j";
60 codec_endpoint: endpoint {
61 remote-endpoint = <&cpu_endpoint>;
66 -----------------------
67 Example: Multi DAI case
68 -----------------------
71 compatible = "audio-graph-card";
83 codec0_endpoint: endpoint {
84 remote-endpoint = <&cpu_endpoint0>;
92 codec1_endpoint: endpoint {
93 remote-endpoint = <&cpu_endpoint1>;
101 codec2_endpoint: endpoint {
102 remote-endpoint = <&cpu_endpoint2>;
111 cpu_endpoint0: endpoint {
112 remote-endpoint = <&codec0_endpoint>;
114 dai-format = "left_j";
119 cpu_endpoint1: endpoint {
120 remote-endpoint = <&codec1_endpoint>;
127 cpu_endpoint2: endpoint {
128 remote-endpoint = <&codec2_endpoint>;
138 -----------------------
139 Example: Sampling Rate Conversion
140 -----------------------
143 compatible = "audio-graph-card";
145 label = "sound-card";
147 routing = "codec Playback", "DAI0 Playback",
148 "DAI0 Capture", "codec Capture";
149 convert-rate = <48000>;
157 codec_endpoint: endpoint {
158 remote-endpoint = <&cpu_endpoint>;
166 cpu_endpoint: endpoint {
167 remote-endpoint = <&codec_endpoint>;
169 dai-format = "left_j";
175 -----------------------
176 Example: 2 CPU 1 Codec (Mixing)
177 -----------------------
180 compatible = "audio-graph-card";
182 label = "sound-card";
183 routing = "codec Playback", "DAI0 Playback",
184 "codec Playback", "DAI1 Playback",
185 "DAI0 Capture", "codec Capture";
193 audio-graph-card,prefix = "codec";
194 audio-graph-card,convert-rate = <48000>;
197 codec_endpoint0: endpoint@0 {
198 remote-endpoint = <&cpu_endpoint0>;
200 codec_endpoint1: endpoint@1 {
201 remote-endpoint = <&cpu_endpoint1>;
209 cpu_endpoint0: endpoint@0 {
210 remote-endpoint = <&codec_endpoint0>;
212 dai-format = "left_j";
215 cpu_endpoint1: endpoint@1 {
216 remote-endpoint = <&codec_endpoint1>;
218 dai-format = "left_j";
224 -----------------------
225 Example: Multi DAI with DPCM
226 -----------------------
230 CPU2 ------ PCM3168A-p /* DPCM 1ch/2ch */
231 CPU3 --/ /* DPCM 3ch/4ch */
232 CPU4 --/ /* DPCM 5ch/6ch */
233 CPU5 --/ /* DPCM 7ch/8ch */
234 CPU6 ------ PCM3168A-c
237 compatible = "audio-graph-card";
239 label = "sound-card";
241 routing = "pcm3168a Playback", "DAI2 Playback",
242 "pcm3168a Playback", "DAI3 Playback",
243 "pcm3168a Playback", "DAI4 Playback",
244 "pcm3168a Playback", "DAI5 Playback";
246 dais = <&snd_port0 /* ak4613 */
247 &snd_port1 /* HDMI0 */
248 &snd_port2 /* pcm3168a playback */
249 &snd_port3 /* pcm3168a capture */
256 ak4613_endpoint: endpoint {
257 remote-endpoint = <&rsnd_endpoint0>;
262 pcm3168a: audio-codec@44 {
264 audio-graph-card,prefix = "pcm3168a";
265 audio-graph-card,convert-channels = <8>; /* TDM Split */
269 pcm3168a_endpoint_p1: endpoint@1 {
270 remote-endpoint = <&rsnd_endpoint2>;
273 pcm3168a_endpoint_p2: endpoint@2 {
274 remote-endpoint = <&rsnd_endpoint3>;
277 pcm3168a_endpoint_p3: endpoint@3 {
278 remote-endpoint = <&rsnd_endpoint4>;
281 pcm3168a_endpoint_p4: endpoint@4 {
282 remote-endpoint = <&rsnd_endpoint5>;
288 pcm3168a_endpoint_c: endpoint {
289 remote-endpoint = <&rsnd_endpoint6>;
299 rsnd_endpoint0: endpoint {
300 remote-endpoint = <&ak4613_endpoint>;
305 rsnd_endpoint1: endpoint {
306 remote-endpoint = <&dw_hdmi0_snd_in>;
311 #address-cells = <1>;
313 rsnd_endpoint2: endpoint@2 {
314 remote-endpoint = <&pcm3168a_endpoint_p1>;
317 rsnd_endpoint3: endpoint@3 {
318 remote-endpoint = <&pcm3168a_endpoint_p2>;
321 rsnd_endpoint4: endpoint@4 {
322 remote-endpoint = <&pcm3168a_endpoint_p3>;
325 rsnd_endpoint5: endpoint@5 {
326 remote-endpoint = <&pcm3168a_endpoint_p4>;
331 rsnd_endpoint6: endpoint {
332 remote-endpoint = <&pcm3168a_endpoint_c>;