xref: /freebsd/sys/contrib/device-tree/src/arm64/renesas/ulcb-kf-audio-graph-card.dtsi (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
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:0,2 xxx.wav
17 *
18 *	(A) arecord -D plughw:0,0 xxx.wav
19 *	(D) arecord -D plughw:0,3 xxx.wav
20 */
21
22&sound_card {
23	dais = <&rsnd_port0 /* (A) CPU0 <-> ak4613 */
24		&rsnd_port1 /* (B) CPU1  -> HDMI   */
25		&rsnd_port2 /* (C) CPU2  -> PCM3168A-p */
26		&rsnd_port3 /* (D) CPU3 <-  PCM3168A-c */
27		>;
28};
29
30&pcm3168a {
31	ports {
32		#address-cells = <1>;
33		#size-cells = <0>;
34		mclk-fs = <512>;
35		/*
36		 * (C) CPU2 -> PCM3168A-p
37		 */
38		port@0 {
39			reg = <0>;
40			pcm3168a_endpoint_p: endpoint {
41				remote-endpoint = <&rsnd_for_pcm3168a_play>;
42				clocks = <&clksndsel>;
43			};
44		};
45		/*
46		 * (D) CPU3 <- PCM3168A-c
47		 */
48		port@1 {
49			reg = <1>;
50			pcm3168a_endpoint_c: endpoint {
51				remote-endpoint = <&rsnd_for_pcm3168a_capture>;
52				clocks = <&clksndsel>;
53			};
54		};
55	};
56};
57
58&rcar_sound {
59	ports {
60		/* rsnd_port0/1 are defined in ulcb.dtsi */
61		/*
62		 * (C) CPU2 -> PCM3168A-p
63		 */
64		rsnd_port2: port@2 {
65			reg = <2>;
66			rsnd_for_pcm3168a_play: endpoint {
67				remote-endpoint = <&pcm3168a_endpoint_p>;
68				bitclock-master;
69				frame-master;
70				dai-tdm-slot-num = <8>;
71				playback = <&ssi3>;
72			};
73		};
74		/*
75		 * (D) CPU3 <- PCM3168A-c
76		 */
77		rsnd_port3: port@3 {
78			reg = <3>;
79			rsnd_for_pcm3168a_capture: endpoint {
80				remote-endpoint = <&pcm3168a_endpoint_c>;
81				bitclock-master;
82				frame-master;
83				dai-tdm-slot-num = <6>;
84				capture = <&ssi4>;
85			};
86		};
87	};
88};
89