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