From a74f60eaa225e0729234522582681d8c63abdc63 Mon Sep 17 00:00:00 2001 From: Khang Nguyen Date: Mon, 15 Oct 2018 09:16:25 -0400 Subject: rcar-gen3: linux-renesas: Add support ADSP ALSA driver This commit modifies recipes to support building ADSP ALSA driver when enabling adsp distro feature. Signed-off-by: Khang Nguyen Signed-off-by: Takamitsu Honda --- ...-Update-device-tree-for-ADSP-sound-driver.patch | 249 +++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-Update-device-tree-for-ADSP-sound-driver.patch (limited to 'meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-Update-device-tree-for-ADSP-sound-driver.patch') diff --git a/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-Update-device-tree-for-ADSP-sound-driver.patch b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-Update-device-tree-for-ADSP-sound-driver.patch new file mode 100644 index 0000000..2586dac --- /dev/null +++ b/meta-rcar-gen3/recipes-kernel/linux/linux-renesas/0004-Update-device-tree-for-ADSP-sound-driver.patch @@ -0,0 +1,249 @@ +From 81528aacc64df60f2471873deca3f1092d47b6ae Mon Sep 17 00:00:00 2001 +From: tienphitran +Date: Mon, 15 Oct 2018 17:56:29 +0700 +Subject: [PATCH 4/4] Update device tree for ADSP sound driver + +Signed-off-by: tienphitran + +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 + -- cgit 1.2.3-korg