162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Device Tree for ULCB + Audio Graph Card (MIX)
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2022 Renesas Electronics Corp.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/*
962306a36Sopenharmony_ci * Note:
1062306a36Sopenharmony_ci * The HDMI output is ignored due to the limited number of subdevices
1162306a36Sopenharmony_ci *
1262306a36Sopenharmony_ci *	(A) CPU0 (2ch) <-----> (2ch) (X) ak4613	(MIX-0)
1362306a36Sopenharmony_ci *	(B) CPU1 (2ch)  --/			(MIX-1)
1462306a36Sopenharmony_ci *
1562306a36Sopenharmony_ci *	(A) aplay   -D plughw:0,0 xxx.wav
1662306a36Sopenharmony_ci *	(B) aplay   -D plughw:0,1 xxx.wav
1762306a36Sopenharmony_ci *
1862306a36Sopenharmony_ci *	(A) arecord -D plughw:0,0 xxx.wav
1962306a36Sopenharmony_ci */
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci/ {
2262306a36Sopenharmony_ci	sound_card: sound {
2362306a36Sopenharmony_ci		compatible = "audio-graph-scu-card";
2462306a36Sopenharmony_ci		label = "rcar-sound";
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci		routing = "ak4613 Playback", "DAI0 Playback",
2762306a36Sopenharmony_ci			  "ak4613 Playback", "DAI1 Playback",
2862306a36Sopenharmony_ci			  "DAI0 Capture",    "ak4613 Capture";
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci		dais = <&rsnd_port0 /* (A) CPU0 */
3162306a36Sopenharmony_ci			&rsnd_port1 /* (B) CPU1 */
3262306a36Sopenharmony_ci		>;
3362306a36Sopenharmony_ci	};
3462306a36Sopenharmony_ci};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci&ak4613 {
3762306a36Sopenharmony_ci	port {
3862306a36Sopenharmony_ci		#address-cells = <1>;
3962306a36Sopenharmony_ci		#size-cells = <0>;
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci		/*
4262306a36Sopenharmony_ci		 * (X) ak4613
4362306a36Sopenharmony_ci		 */
4462306a36Sopenharmony_ci		prefix = "ak4613";
4562306a36Sopenharmony_ci		convert-rate = <48000>;
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci		/* (A) CPU0 <-> (X) ak4613 */
4862306a36Sopenharmony_ci		ak4613_ep1: endpoint@0 {
4962306a36Sopenharmony_ci			reg = <0>;
5062306a36Sopenharmony_ci			remote-endpoint = <&rsnd_for_ak4613_1>;
5162306a36Sopenharmony_ci		};
5262306a36Sopenharmony_ci		/* (B) CPU1 -> (X) ak4613 */
5362306a36Sopenharmony_ci		ak4613_ep2: endpoint@1 {
5462306a36Sopenharmony_ci			reg = <1>;
5562306a36Sopenharmony_ci			remote-endpoint = <&rsnd_for_ak4613_2>;
5662306a36Sopenharmony_ci		};
5762306a36Sopenharmony_ci	};
5862306a36Sopenharmony_ci};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci&rcar_sound {
6162306a36Sopenharmony_ci	ports {
6262306a36Sopenharmony_ci		#address-cells = <1>;
6362306a36Sopenharmony_ci		#size-cells = <0>;
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci		/*
6662306a36Sopenharmony_ci		 * (A) CPU0
6762306a36Sopenharmony_ci		 */
6862306a36Sopenharmony_ci		rsnd_port0: port@0 {
6962306a36Sopenharmony_ci			reg = <0>;
7062306a36Sopenharmony_ci			rsnd_for_ak4613_1: endpoint {
7162306a36Sopenharmony_ci				remote-endpoint = <&ak4613_ep1>;
7262306a36Sopenharmony_ci				bitclock-master;
7362306a36Sopenharmony_ci				frame-master;
7462306a36Sopenharmony_ci				playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
7562306a36Sopenharmony_ci				capture  = <&ssi1 &src0 &dvc1>;
7662306a36Sopenharmony_ci			};
7762306a36Sopenharmony_ci		};
7862306a36Sopenharmony_ci		/*
7962306a36Sopenharmony_ci		 * (B) CPU1
8062306a36Sopenharmony_ci		 */
8162306a36Sopenharmony_ci		rsnd_port1: port@1 {
8262306a36Sopenharmony_ci			reg = <1>;
8362306a36Sopenharmony_ci			rsnd_for_ak4613_2: endpoint {
8462306a36Sopenharmony_ci				remote-endpoint = <&ak4613_ep2>;
8562306a36Sopenharmony_ci				bitclock-master;
8662306a36Sopenharmony_ci				frame-master;
8762306a36Sopenharmony_ci				playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
8862306a36Sopenharmony_ci			};
8962306a36Sopenharmony_ci		};
9062306a36Sopenharmony_ci	};
9162306a36Sopenharmony_ci};
92