xref: /linux/arch/arm64/boot/dts/renesas/ulcb-audio-graph-card.dtsi (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1baa19ec4SKuninori Morimoto// SPDX-License-Identifier: GPL-2.0
2baa19ec4SKuninori Morimoto/*
3baa19ec4SKuninori Morimoto * Device Tree for ULCB + Audio Graph Card
4baa19ec4SKuninori Morimoto *
5baa19ec4SKuninori Morimoto * Copyright (C) 2022 Renesas Electronics Corp.
6baa19ec4SKuninori Morimoto */
7baa19ec4SKuninori Morimoto
8baa19ec4SKuninori Morimoto/*
9baa19ec4SKuninori Morimoto *	(A) CPU0 <-----> ak4613
10baa19ec4SKuninori Morimoto *	(B) CPU1  -----> HDMI
11baa19ec4SKuninori Morimoto *
12baa19ec4SKuninori Morimoto *	(A) aplay   -D plughw:0,0 xxx.wav
13baa19ec4SKuninori Morimoto *	(B) aplay   -D plughw:0,1 xxx.wav
14baa19ec4SKuninori Morimoto *
15baa19ec4SKuninori Morimoto *	(A) arecord -D plughw:0,0 xxx.wav
16baa19ec4SKuninori Morimoto */
17baa19ec4SKuninori Morimoto
18baa19ec4SKuninori Morimoto/ {
19baa19ec4SKuninori Morimoto	sound_card: sound {
20baa19ec4SKuninori Morimoto		compatible = "audio-graph-card";
21*d70be079SKuninori Morimoto		label = "snd-ulcb";
22baa19ec4SKuninori Morimoto
23*d70be079SKuninori Morimoto		dais = <&snd_ulcb1 /* (A) CPU0 <-> ak4613 */
24*d70be079SKuninori Morimoto			&snd_ulcb2 /* (B) CPU1  -> HDMI   */
25baa19ec4SKuninori Morimoto		>;
26baa19ec4SKuninori Morimoto	};
27baa19ec4SKuninori Morimoto};
28baa19ec4SKuninori Morimoto
29baa19ec4SKuninori Morimoto&ak4613 {
30baa19ec4SKuninori Morimoto	#sound-dai-cells = <0>;
31baa19ec4SKuninori Morimoto
32baa19ec4SKuninori Morimoto	port {
33baa19ec4SKuninori Morimoto		/*
34baa19ec4SKuninori Morimoto		 * (A) CPU0 <-> ak4613
35baa19ec4SKuninori Morimoto		 */
36baa19ec4SKuninori Morimoto		ak4613_endpoint: endpoint {
37baa19ec4SKuninori Morimoto			remote-endpoint = <&rsnd_for_ak4613>;
38baa19ec4SKuninori Morimoto		};
39baa19ec4SKuninori Morimoto	};
40baa19ec4SKuninori Morimoto};
41baa19ec4SKuninori Morimoto
42baa19ec4SKuninori Morimoto&hdmi0 {
43baa19ec4SKuninori Morimoto	ports {
44baa19ec4SKuninori Morimoto		port@2 {
45baa19ec4SKuninori Morimoto			/*
46baa19ec4SKuninori Morimoto			 * (B) CPU1 -> HDMI
47baa19ec4SKuninori Morimoto			 */
48baa19ec4SKuninori Morimoto			dw_hdmi0_snd_in: endpoint {
49baa19ec4SKuninori Morimoto				remote-endpoint = <&rsnd_for_hdmi>;
50baa19ec4SKuninori Morimoto			};
51baa19ec4SKuninori Morimoto		};
52baa19ec4SKuninori Morimoto	};
53baa19ec4SKuninori Morimoto};
54baa19ec4SKuninori Morimoto
55baa19ec4SKuninori Morimoto&rcar_sound {
56baa19ec4SKuninori Morimoto	#address-cells = <1>;
57baa19ec4SKuninori Morimoto	#size-cells = <0>;
58*d70be079SKuninori Morimoto
59*d70be079SKuninori Morimoto	ports@0 {
60*d70be079SKuninori Morimoto		#address-cells = <1>;
61*d70be079SKuninori Morimoto		#size-cells = <0>;
62*d70be079SKuninori Morimoto		reg = <0>;
63*d70be079SKuninori Morimoto
64*d70be079SKuninori Morimoto		snd_ulcb1: port@0 {
65baa19ec4SKuninori Morimoto			/*
66baa19ec4SKuninori Morimoto			 * (A) CPU0 <-> ak4613
67baa19ec4SKuninori Morimoto			 */
68baa19ec4SKuninori Morimoto			reg = <0>;
69baa19ec4SKuninori Morimoto			rsnd_for_ak4613: endpoint {
70baa19ec4SKuninori Morimoto				remote-endpoint = <&ak4613_endpoint>;
71baa19ec4SKuninori Morimoto				bitclock-master;
72baa19ec4SKuninori Morimoto				frame-master;
73baa19ec4SKuninori Morimoto				playback = <&ssi0>, <&src0>, <&dvc0>;
74baa19ec4SKuninori Morimoto				capture  = <&ssi1>, <&src1>, <&dvc1>;
75baa19ec4SKuninori Morimoto			};
76baa19ec4SKuninori Morimoto		};
77*d70be079SKuninori Morimoto		snd_ulcb2: port@1 {
78baa19ec4SKuninori Morimoto			/*
79baa19ec4SKuninori Morimoto			 * (B) CPU1 -> HDMI
80baa19ec4SKuninori Morimoto			 */
81baa19ec4SKuninori Morimoto			reg = <1>;
82baa19ec4SKuninori Morimoto			rsnd_for_hdmi: endpoint {
83baa19ec4SKuninori Morimoto				remote-endpoint = <&dw_hdmi0_snd_in>;
84baa19ec4SKuninori Morimoto				bitclock-master;
85baa19ec4SKuninori Morimoto				frame-master;
86baa19ec4SKuninori Morimoto				playback = <&ssi2>;
87baa19ec4SKuninori Morimoto			};
88baa19ec4SKuninori Morimoto		};
89baa19ec4SKuninori Morimoto	};
90baa19ec4SKuninori Morimoto};
91