From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A891486E58; Thu, 24 Sep 2026 13:24:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790256253; cv=none; b=TdABWmlPWCrPx5J5gqLAJo+5H06D2QFxcpGGVHece+FhHLAxZqOY/UY1fAFKnwjAy8EHcu1OLVOedBON67F+/v8kuCQ2Q9yrWL/fbhuVch+vqDRpV3kT7PwX7lYZ+wWL85rTrvFmzOCkEMM1zgIZbeMsIGtIBynKBNs8OQyQjVI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790256253; c=relaxed/simple; bh=wkTCh+YRV07VoOMEXG6zubWH53OsIa2qXqy1N+C7HlM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NtGzrz2qvqYtpVILUn+pNkX/UPM8a3YZg3WSO29p7uZwtn2u05TwD+R7w5Rh92/jrUm+ftKiLtC81Qw27SxMWnV/X5OsSxobP7DPSCkeuBI8kV+ZQUxG0BntXx66XRrXz7DoAELkaS+z9K7Dj/ShtQFHNgZrLlAPTV6qElzIqZo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LWavCkmG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LWavCkmG" Received: by smtp.kernel.org (Postfix) with ESMTPS id D7B2FC4AF51; Thu, 24 Sep 2026 13:24:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790256251; bh=wkTCh+YRV07VoOMEXG6zubWH53OsIa2qXqy1N+C7HlM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=LWavCkmGwRlj/JsoHCkNcS5NCUv6NQSDQqgY367FfiVwnxQY9i6Z3nUSnXHrQXMNI EO6oCEpikH4pXd+PcoRPvB/aTyE4WZ5+t4ZeBrw5pt9GM96iT7AVRtXm3XHpD8G3qu OE7igyGK5yG2p0wEQ7FPb0/BlhX6GSe5tIDgIC0MDDX+lTCgFfkebDBteVmvAmzZ4B lnJQnoXZwTAkXBwDj6kl3UpbOuM9bfJ52WGebVcxIFljAmiL8GcaYF1Mr3WxOlQZOa GJlybLOEA6zlYz0EB7gP1951Egx3On6iFLrVfrh57tTeBTXHdcFTSBsUDtooXjcUXJ AprByfMY+Qvag== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C382EC9831E; Thu, 24 Sep 2026 13:24:11 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 24 Sep 2026 15:24:13 +0200 Subject: [PATCH v4 8/8] arm64: dts: qcom: sdm845-google: Add WCD9340 codec and microphone capture Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260924-pixel3-audio-v4-8-85b5d133aa5e@ixit.cz> References: <20260924-pixel3-audio-v4-0-85b5d133aa5e@ixit.cz> In-Reply-To: <20260924-pixel3-audio-v4-0-85b5d133aa5e@ixit.cz> To: Srinivas Kandagatla , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , David Rhodes , Richard Fitzgerald , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , David Rhodes , Conor Dooley Cc: linux-sound@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com, devicetree@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4449; i=david@ixit.cz; h=from:subject:message-id; bh=nbrH1t92jHfWppnVh1CzV5L+VSGiY477xlctoTpElqs=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtSR5jrcyq49VtewDuEWFFhvKNUKV588A3rvGG n9Mrmg9+IuJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCarUkeQAKCRBgAj/E00kg cqmWEADAdvorgaQm0CyB+5itIATT8MiYnaK3WnzW7lG2pOy4QqgnHmkN83BV/YRDDwDIPjidK5h y9D5tLCvS5Pysr4Hsk+PYh2+ITo6e8d5IjRJxapmiJHpqAC5+r2ZNIhHCZ9cGqrnGU7qNBNau9G YdnmBBMkNRxOOHItUFadCspyIrrFtHOXWB/03YW+p7vJ6N4LiT0Yhqs1pAq+wY1Dck8a7f19OVj HLASuPM3evBjK6/15AYRpMOYMQVvqP/NxBiQFXLRWW041QWdHDts/7G0/FY3HY/a7XGLS0RyzO/ Zfxe0kVVZD0JGRpHCc52e4t5GJ6MbCYHb6D42aCEaq2MNTr6HAbUavnr5ZN3Xq9SNMxCAl696L3 jtzi6Zm+gKFGQdktDvLwtifJWajhqNaxl6kHA0bvbpnN1GwgAgiwHGWDQRdPEmyGnT0+HXYPq2s z31OK6Xo2NSV6UuoVQdDYKtKHgQNfoZ2kB0pxY6k+Dk/+cWrwG3pb0BcpOLnUH9moGOzYQv8DMN v5bYQuHe7N08UjXc32vlqbvit0o9iXefo7m4KTrdO86En9rlyRji2RkrB+zrscb7RSPRbdTUSj9 Gj6H3FCVe7d9pl5Hm0OBvR9EsjKHC4qMlNZdiZib2e2dYOt75+PMZkcT4jrA9Ru5yt446MXvQn5 kwbWl1s5qFdorEA== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg The Pixel 3 sound card so far only drove the two CS35L36 speaker amplifiers. Wire in the WCD9340 codec , add a SLIMbus capture link for it and route the three digital microphones Based on work done by Casey Tunturi. Assisted-by: Claude:claude-fable-5-1 Signed-off-by: David Heidelberg --- arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi index bc826d211e4a7..47ed525acb55e 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi @@ -4,18 +4,20 @@ #include #include #include #include #include #include #include +#include #include "sdm845.dtsi" +#include "sdm845-wcd9340.dtsi" #include "pm8998.dtsi" #include "pmi8998.dtsi" /delete-node/ &mpss_region; /delete-node/ &venus_mem; /delete-node/ &cdsp_mem; /delete-node/ &mba_region; /delete-node/ &slpi_mem; @@ -512,16 +514,20 @@ dai@72 { qcom,tdm-data-align = <0>; }; }; &q6asmdai { dai@0 { reg = ; }; + + dai@1 { + reg = ; + }; }; &qupv3_id_0 { status = "okay"; }; &qupv3_id_1 { status = "okay"; @@ -539,40 +545,81 @@ &qup_uart9_tx { &sound { compatible = "qcom,sdm845-sndcard"; model = "blueline"; pinctrl-0 = <&quat_mi2s_active>, <&quat_mi2s_sd0_active>, <&quat_mi2s_sd1_active>; pinctrl-names = "default"; + audio-routing = "DMIC0", "MCLK", /* Top mic */ + "DMIC0", "MIC BIAS1", + "DMIC3", "MCLK", /* Top-edge mic */ + "DMIC3", "MIC BIAS3", + "DMIC4", "MCLK", /* Bottom mic */ + "DMIC4", "MIC BIAS4"; + /* mm[0-9]-dai-link nodes must be positioned first regardless of sorting */ mm1-dai-link { link-name = "MultiMedia1"; cpu { sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; }; }; + mm2-dai-link { + link-name = "MultiMedia2"; + + cpu { + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; + }; + }; + cs35l36-dai-link { link-name = "Speaker Playback"; codec { sound-dai = <&cs35l36_bottom>, <&cs35l36_top>; }; cpu { sound-dai = <&q6afedai QUATERNARY_TDM_RX_0>; }; platform { sound-dai = <&q6routing>; }; }; + + slimcap-dai-link { + link-name = "SLIM Capture 1"; + + codec { + sound-dai = <&wcd9340 AIF1_CAP>; + }; + + cpu { + sound-dai = <&q6afedai SLIMBUS_0_TX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + }; +}; + +&swm { + /* + * Nothing hangs off the codec's SoundWire bus on this board: the + * speakers are CS35L36 amplifiers on QUAT_TDM. With an empty bus the + * controller reports port mismatches and frame-generator timeouts on + * every boot. + */ + status = "disabled"; }; &tlmm { gpio-reserved-ranges = < 0 4>, /* SPI (Intel MNH Pixel Visual Core) */ <81 4>; /* SPI (most likely Fingerprint Cards FPC1075) */ nfc_default: nfc-default-state { enable-pins { @@ -718,16 +765,32 @@ &usb_1_qmpphy { }; &venus { firmware-name = "qcom/sdm845/Google/blueline/venus.mbn"; status = "okay"; }; +&wcd9340 { + /* + * PM8998 LN_BB_CLK2 feeds the Pixel Visual Core on this board; the + * codec MCLK comes from LN_BB_CLK3. With the wrong buffer the codec + * never sees 19.2 MHz: eFuse sensing times out and every capture + * path reads zeros while SLIMbus control traffic still works. + */ + clocks = <&rpmhcc RPMH_LN_BB_CLK3>; + reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>; + vdd-buck-supply = <&vreg_s4a_1p8>; + vdd-buck-sido-supply = <&vreg_s4a_1p8>; + vdd-tx-supply = <&vreg_s4a_1p8>; + vdd-rx-supply = <&vreg_s4a_1p8>; + vdd-io-supply = <&vreg_s4a_1p8>; +}; + &wifi { vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; vdd-1.8-xo-supply = <&vreg_pmu_xo>; vdd-1.3-rfa-supply = <&vreg_pmu_rf>; vdd-3.3-ch0-supply = <&vreg_pmu_ch0>; qcom,snoc-host-cap-8bit-quirk; -- 2.55.0