From 455f26d0de1cf6eaeb0aa5b58725e3e34d8d34bd Mon Sep 17 00:00:00 2001 From: Nguyen Dang Date: Tue, 6 Nov 2018 11:36:15 +0700 Subject: [PATCH 5/6] ADSP: integrate ADSP sound for E3 board Signed-off-by: Nguyen Dang [takeshi.kihara.df: fix W=1 dtc warning] [takeshi.kihara.df: support for dt file separation by E3 ES1.0 SoC] Signed-off-by: Takeshi Kihara --- .../arm64/boot/dts/renesas/r8a77990-ebisu.dts | 84 +++++++++++++++++-- .../boot/dts/renesas/r8a77990-es10-ebisu.dts | 84 +++++++++++++++++-- arch/arm64/boot/dts/renesas/r8a77990.dtsi | 5 ++ 3 files changed, 163 insertions(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts index 26081a6e1866..20fdb4085d87 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts +++ b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts @@ -221,11 +221,27 @@ }; 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>; }; vbus0_usb2: regulator-vbus0-usb2 { @@ -501,8 +517,27 @@ asahi-kasei,out5-single-end; asahi-kasei,out6-single-end; - port { - ak4613_endpoint: endpoint { + ports { + #address-cells = <1>; + #size-cells = <0>; + ak4613_endpoint0: endpoint@0 { + reg = <0>; + remote-endpoint = <&adsp_endpoint0>; + }; + ak4613_endpoint1: endpoint@1 { + reg = <1>; + remote-endpoint = <&adsp_endpoint1>; + }; + ak4613_endpoint2: endpoint@2 { + reg = <2>; + remote-endpoint = <&adsp_endpoint2>; + }; + ak4613_endpoint3: endpoint@3 { + reg = <3>; + remote-endpoint = <&adsp_endpoint3>; + }; + ak4613_endpoint4: endpoint@4 { + reg = <4>; remote-endpoint = <&rsnd_endpoint0>; }; }; @@ -702,6 +737,45 @@ status = "okay"; }; +&rcar_adsp_sound { + status = "okay"; + /* Multiple DAI */ + #sound-dai-cells = <1>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + adsp_port0: port@0 { + reg = <0>; + adsp_endpoint0: endpoint { + remote-endpoint = <&ak4613_endpoint0>; + dai-format = "left_j"; + }; + }; + adsp_port1: port@1 { + reg = <1>; + adsp_endpoint1: endpoint { + remote-endpoint = <&ak4613_endpoint1>; + dai-format = "left_j"; + }; + }; + adsp_port2: port@2 { + reg = <2>; + adsp_endpoint2: endpoint { + remote-endpoint = <&ak4613_endpoint2>; + dai-format = "left_j"; + }; + }; + adsp_port3: port@3 { + reg = <3>; + adsp_endpoint3: endpoint { + remote-endpoint = <&ak4613_endpoint3>; + dai-format = "left_j"; + }; + }; + }; +}; + &rcar_sound { pinctrl-0 = <&sound_pins &sound_clk_pins>; pinctrl-names = "default"; @@ -737,7 +811,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-es10-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-es10-ebisu.dts index 087d5533f3db..61e18309c4a4 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990-es10-ebisu.dts +++ b/arch/arm64/boot/dts/renesas/r8a77990-es10-ebisu.dts @@ -221,11 +221,27 @@ }; 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>; }; vbus0_usb2: regulator-vbus0-usb2 { @@ -501,8 +517,27 @@ asahi-kasei,out5-single-end; asahi-kasei,out6-single-end; - port { - ak4613_endpoint: endpoint { + ports { + #address-cells = <1>; + #size-cells = <0>; + ak4613_endpoint0: endpoint@0 { + reg = <0>; + remote-endpoint = <&adsp_endpoint0>; + }; + ak4613_endpoint1: endpoint@1 { + reg = <1>; + remote-endpoint = <&adsp_endpoint1>; + }; + ak4613_endpoint2: endpoint@2 { + reg = <2>; + remote-endpoint = <&adsp_endpoint2>; + }; + ak4613_endpoint3: endpoint@3 { + reg = <3>; + remote-endpoint = <&adsp_endpoint3>; + }; + ak4613_endpoint4: endpoint@4 { + reg = <4>; remote-endpoint = <&rsnd_endpoint0>; }; }; @@ -702,6 +737,45 @@ status = "okay"; }; +&rcar_adsp_sound { + status = "okay"; + /* Multiple DAI */ + #sound-dai-cells = <1>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + adsp_port0: port@0 { + reg = <0>; + adsp_endpoint0: endpoint { + remote-endpoint = <&ak4613_endpoint0>; + dai-format = "left_j"; + }; + }; + adsp_port1: port@1 { + reg = <1>; + adsp_endpoint1: endpoint { + remote-endpoint = <&ak4613_endpoint1>; + dai-format = "left_j"; + }; + }; + adsp_port2: port@2 { + reg = <2>; + adsp_endpoint2: endpoint { + remote-endpoint = <&ak4613_endpoint2>; + dai-format = "left_j"; + }; + }; + adsp_port3: port@3 { + reg = <3>; + adsp_endpoint3: endpoint { + remote-endpoint = <&ak4613_endpoint3>; + dai-format = "left_j"; + }; + }; + }; +}; + &rcar_sound { pinctrl-0 = <&sound_pins &sound_clk_pins>; pinctrl-names = "default"; @@ -737,7 +811,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 bd4d71e2b93e..845399adcbdb 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi @@ -181,6 +181,11 @@ method = "smc"; }; + rcar_adsp_sound: adsp_sound { + compatible = "renesas,rcar_adsp_sound_gen3"; + status = "disabled"; + }; + /* External SCIF clock - to be overridden by boards that provide it */ scif_clk: scif { compatible = "fixed-clock"; -- 2.19.1