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