// SPDX-License-Identifier: GPL-2.0
/*
 * Device Tree for ULCB + Simple Audio Card (MIXer)
 *
 * Copyright (C) 2022 Renesas Electronics Corp.
 */

/*
 * Note:
 * The HDMI output is ignored due to the limited number of subdevices
 *
 *	(A) CPU0 (2ch) <----> (2ch) (X) ak4613	(MIX-0)
 *	(B) CPU1 (2ch)  --/			(MIX-1)
 *
 *	(A) aplay   -D plughw:0,0 xxx.wav
 *	(B) aplay   -D plughw:0,1 xxx.wav
 *
 *	(A) arecord -D plughw:0,0 xxx.wav
 */

/ {
	sound_card: sound {
		#address-cells = <1>;
		#size-cells = <0>;

		compatible = "simple-scu-audio-card";
		label = "rcar-sound";

		simple-audio-card,prefix  = "ak4613";
		simple-audio-card,routing = "ak4613 Playback", "DAI0 Playback",
					    "ak4613 Playback", "DAI1 Playback",
					    "DAI0 Capture",    "ak4613 Capture";

		simple-audio-card,dai-link@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
			convert-rate = <48000>;

			/*
			 * (A) CPU0
			 */
			cpu@0 {
				reg = <0>;
				bitclock-master;
				frame-master;
				sound-dai = <&rcar_sound 0>;
			};
			/*
			 * (B) CPU1
			 */
			cpu@1 {
				reg = <1>;
				sound-dai = <&rcar_sound 1>;
			};
			/*
			 * (X) ak4613
			 */
			codec {
				prefix = "ak4613";
				sound-dai = <&ak4613>;
			};
		};
	};
};

&ak4613 {
	/*
	 * (X) ak4613
	 */
	#sound-dai-cells = <0>;
};

&rcar_sound {
	#sound-dai-cells = <1>;

	rcar_sound,dai {
		/*
		 * (A) CPU0
		 */
		dai0 {
			playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
			capture  = <&ssi1 &src0 &dvc1>;
		};
		/*
		 * (B) CPU1
		 */
		dai1 {
			playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
		};
	};
};
