From 81528aacc64df60f2471873deca3f1092d47b6ae Mon Sep 17 00:00:00 2001
From: tienphitran <tien.tran.uw@renesas.com>
Date: Mon, 15 Oct 2018 17:56:29 +0700
Subject: [PATCH 4/4] Update device tree for ADSP sound driver

Signed-off-by: tienphitran <tien.tran.uw@renesas.com>

diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
index 1c8e713..1331a09 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
@@ -2161,6 +2161,11 @@
 			status = "disabled";
 		};
 
+		rcar_adsp_sound: adsp_sound@0 {
+			compatible =  "renesas,rcar_adsp_sound_gen3";
+			status = "disabled";
+		};
+
 		rcar_sound: sound@ec500000 {
 			/*
 			 * #sound-dai-cells is required
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index f25b476..ed332e7 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -2067,6 +2067,11 @@
 			status = "disabled";
 		};
 
+		rcar_adsp_sound: adsp_sound@0 {
+			compatible =  "renesas,rcar_adsp_sound_gen3";
+			status = "disabled";
+		};
+
 		rcar_sound: sound@ec500000 {
 			/*
 			 * #sound-dai-cells is required
diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
index d86bf9e..05861b4 100644
--- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
@@ -1478,6 +1478,11 @@
 			};
 		};
 
+		rcar_adsp_sound: adsp_sound@0 {
+			compatible =  "renesas,rcar_adsp_sound_gen3";
+			status = "disabled";
+		};
+
 		rcar_sound: sound@ec500000 {
 			/*
 			 * #sound-dai-cells is required
diff --git a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
index 10a3403..b96ae07 100644
--- a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
@@ -356,11 +356,26 @@
 	};
 
 	sound_card: sound {
-		compatible = "audio-graph-card";
+		compatible = "audio-graph-scu-card";
 
 		label = "rcar-sound";
-
-		dais = <&rsnd_port0>;
+		prefix = "ak4613";
+		routing = "ak4613 Playback", "DAI0 Playback",
+					"DAI0 Capture",   "ak4613 Capture",
+					"ak4613 Playback", "Playback0",
+					"ak4613 Playback", "Playback1",
+					"ak4613 Playback", "Playback2",
+					"ak4613 Playback", "Playback3",
+					"Capture0", "ak4613 Capture",
+					"Capture1", "ak4613 Capture",
+					"Capture2", "ak4613 Capture",
+					"Capture3", "ak4613 Capture";
+
+		dais = <&adsp_port0
+				&adsp_port1
+				&adsp_port2
+				&adsp_port3
+				&rsnd_port0>;
 	};
 };
 
@@ -567,7 +582,19 @@
 		asahi-kasei,out6-single-end;
 
 		port {
-			ak4613_endpoint: endpoint {
+			ak4613_endpoint0: endpoint@0 {
+				remote-endpoint = <&adsp_endpoint0>;
+			};
+			ak4613_endpoint1: endpoint@1 {
+				remote-endpoint = <&adsp_endpoint1>;
+			};
+			ak4613_endpoint2: endpoint@2 {
+				remote-endpoint = <&adsp_endpoint2>;
+			};
+			ak4613_endpoint3: endpoint@3 {
+				remote-endpoint = <&adsp_endpoint3>;
+			};
+			ak4613_endpoint4: endpoint@4 {
 				remote-endpoint = <&rsnd_endpoint0>;
 			};
 		};
@@ -766,6 +793,39 @@
 	shared-pin;
 };
 
+&rcar_adsp_sound {
+	status = "okay";
+	/* Multiple DAI */
+	#sound-dai-cells = <1>;
+
+	ports {
+		adsp_port0: port@0 {
+			adsp_endpoint0: endpoint@0 {
+				remote-endpoint = <&ak4613_endpoint0>;
+				dai-format = "left_j";
+			};
+		};
+		adsp_port1: port@1 {
+			adsp_endpoint1: endpoint@1 {
+				remote-endpoint = <&ak4613_endpoint1>;
+				dai-format = "left_j";
+			};
+		};
+		adsp_port2: port@2 {
+			adsp_endpoint2: endpoint@2 {
+				remote-endpoint = <&ak4613_endpoint2>;
+				dai-format = "left_j";
+			};
+		};
+		adsp_port3: port@3 {
+			adsp_endpoint3: endpoint@3 {
+				remote-endpoint = <&ak4613_endpoint3>;
+				dai-format = "left_j";
+			};
+		};
+	};
+};
+
 &rcar_sound {
 	pinctrl-0 = <&sound_pins &sound_clk_pins>;
 	pinctrl-names = "default";
@@ -801,7 +861,7 @@
 	ports {
 		rsnd_port0: port@0 {
 			rsnd_endpoint0: endpoint {
-				remote-endpoint = <&ak4613_endpoint>;
+				remote-endpoint = <&ak4613_endpoint4>;
 
 				dai-format = "left_j";
 				bitclock-master = <&rsnd_endpoint0>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
index 242de2c..870bd4e 100644
--- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
@@ -1276,6 +1276,11 @@
 			};
 		};
 
+		rcar_adsp_sound: adsp_sound@0 {
+			compatible =  "renesas,rcar_adsp_sound_gen3";
+			status = "disabled";
+		};
+
 		rcar_sound: sound@ec500000 {
 			/*
 			 * #sound-dai-cells is required
diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
index 6cda028..89fbcf6 100644
--- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi
+++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
@@ -125,12 +125,43 @@
 		regulator-boot-on;
 		regulator-always-on;
 	};
+
 	rsnd_ak4613: sound {
-		compatible = "simple-audio-card";
+		compatible = "simple-scu-audio-card";
 		simple-audio-card,format = "left_j";
 		simple-audio-card,bitclock-master = <&sndcpu>;
 		simple-audio-card,frame-master = <&sndcpu>;
-		sndcpu: simple-audio-card,cpu {
+
+		simple-audio-card,name = "audio-card";
+		simple-audio-card,prefix = "ak4613";
+		simple-audio-card,routing = "ak4613 Playback", "Playback0",
+			"ak4613 Playback", "Playback1",
+			"ak4613 Playback", "Playback2",
+			"ak4613 Playback", "Playback3",
+			"Capture0", "ak4613 Capture",
+			"Capture1", "ak4613 Capture",
+			"Capture2", "ak4613 Capture",
+			"Capture3", "ak4613 Capture",
+			"ak4613 Playback", "DAI0 Playback",
+			"DAI0 Capture", "ak4613 Capture";
+
+		sndcpu: simple-audio-card,cpu@0 {
+			sound-dai = <&rcar_adsp_sound 0>;
+		};
+
+		simple-audio-card,cpu@1 {
+			sound-dai = <&rcar_adsp_sound 1>;
+		};
+
+		simple-audio-card,cpu@2 {
+			sound-dai = <&rcar_adsp_sound 2>;
+		};
+
+		simple-audio-card,cpu@3 {
+			sound-dai = <&rcar_adsp_sound 3>;
+		};
+
+		simple-audio-card,cpu@4 {
 			sound-dai = <&rcar_sound>;
 		};
 
@@ -139,7 +170,6 @@
 		};
 	};
 
-
 	vbus0_usb2: regulator-vbus0-usb2 {
 		compatible = "regulator-fixed";
 
@@ -763,6 +793,12 @@
 	status = "okay";
 };
 
+&rcar_adsp_sound {
+	status = "okay";
+	/* Multiple DAI */
+	#sound-dai-cells = <1>;
+};
+
 &rcar_sound {
 	pinctrl-0 = <&sound_pins &sound_clk_pins>;
 	pinctrl-names = "default";
-- 
2.7.4