1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree for ULCB + Kingfisher + Audio Graph Card
4 *
5 * Copyright (C) 2022 Renesas Electronics Corp.
6 */
7
8/*
9 *	(A) CPU0 <----> ak4613
10 *	(B) CPU1  ----> HDMI
11 *	(C) CPU2  ----> PCM3168A-p (8ch)
12 *	(D) CPU3 <----  PCM3168A-c (6ch)
13 *
14 *	(A) aplay   -D plughw:0,0 xxx.wav
15 *	(B) aplay   -D plughw:0,1 xxx.wav
16 *	(C) aplay   -D plughw:1,0 xxx.wav
17 *
18 *	(A) arecord -D plughw:0,0 xxx.wav
19 *	(D) arecord -D plughw:1,1 xxx.wav
20 */
21/ {
22	sound_card_kf: expand-sound {
23		compatible = "audio-graph-card";
24		label = "snd-kf";
25
26		dais = <&snd_kf1 /* (C) CPU2  -> PCM3168A-p */
27			&snd_kf2 /* (D) CPU3 <-  PCM3168A-c */
28		>;
29	};
30};
31
32&pcm3168a {
33	ports {
34		#address-cells = <1>;
35		#size-cells = <0>;
36		mclk-fs = <512>;
37		/*
38		 * (C) CPU2 -> PCM3168A-p
39		 */
40		port@0 {
41			reg = <0>;
42			pcm3168a_endpoint_p: endpoint {
43				remote-endpoint = <&rsnd_for_pcm3168a_play>;
44				clocks = <&clksndsel>;
45			};
46		};
47		/*
48		 * (D) CPU3 <- PCM3168A-c
49		 */
50		port@1 {
51			reg = <1>;
52			pcm3168a_endpoint_c: endpoint {
53				remote-endpoint = <&rsnd_for_pcm3168a_capture>;
54				clocks = <&clksndsel>;
55			};
56		};
57	};
58};
59
60&rcar_sound {
61	ports@1 {
62		#address-cells = <1>;
63		#size-cells = <0>;
64		reg = <1>;
65
66		/*
67		 * (C) CPU2 -> PCM3168A-p
68		 */
69		snd_kf1: port@2 {
70			reg = <2>;
71			rsnd_for_pcm3168a_play: endpoint {
72				remote-endpoint = <&pcm3168a_endpoint_p>;
73				bitclock-master;
74				frame-master;
75				dai-tdm-slot-num = <8>;
76				playback = <&ssi3>;
77			};
78		};
79		/*
80		 * (D) CPU3 <- PCM3168A-c
81		 */
82		snd_kf2: port@3 {
83			reg = <3>;
84			rsnd_for_pcm3168a_capture: endpoint {
85				remote-endpoint = <&pcm3168a_endpoint_c>;
86				bitclock-master;
87				frame-master;
88				dai-tdm-slot-num = <6>;
89				capture = <&ssi4>;
90			};
91		};
92	};
93};
94