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 024D04C33F3; Fri, 25 Sep 2026 15:28:08 +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=1790350089; cv=none; b=pOIZjZltfIGJy9GVY1CMci6BkPdSYFaXq7MqVyDroT5A30+OZjZBds8SHDQRB6bNqEZMwUpwmu8MSRAz4YlICRKTH9VlQkFeWxtzXIQNofmuzwcFUjUouKwDry39u0E9Hm2tsnjM/p9MK0h2Um72p/8PwH6Cn1+vhQZLcUVDLcg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790350089; c=relaxed/simple; bh=Y7iisFh3ZCviZxgIaJgWp1FlB1cs3Rph6RL8qnHn0PE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VHoCWOzTUpiVXJb1BjoATuHWf2D2VIgLOuYTWrWH5rc7PuUwtjczXI8scdFVWlpAHco6tLJJHpTR5CeoJBBMH2rrSUplhHJfzHvXJ8Oa3DR/w5qJVBwMEZgbwdoDy2VZbWJbhuMLE3YjgovjcHZ2oSBa1snGq5r72JCOnw8wYOI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IE5SA4Gk; 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="IE5SA4Gk" Received: by smtp.kernel.org (Postfix) with ESMTPS id 90D7CC2BD04; Fri, 25 Sep 2026 15:28:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790350088; bh=Y7iisFh3ZCviZxgIaJgWp1FlB1cs3Rph6RL8qnHn0PE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=IE5SA4GkeTsYcSmFNbqQmdqtLVsb37nE9xkW22T/tk2yz41/+JJDbGRcXBQs1cw2Y OX6J2RccAGXh8ToYJnl3Ny401avthQ8iVYxfKKl3lnTDUC9nZ92oIHuz4bFMDg+Hvj cYleK92bbmbxLH8FOZLaCsxVhogStLC5oP/L+mhjS+F7uPd/oK68FZEzKHgyR2sRB+ zh6hIjS4F1Lrr/nfaFKG1/MdrqLi43G8Ajx4QD2JYgrPeUruJwl66X+EZGl51WGe3R 8cPvIZPI4hAbP11B2eZAetjxXwIseYCJtZy74AxVlQS80LBP3hbsPvIOVx5uMPuvml RGFlG44Ar6UQA== 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 7E276C98325; Fri, 25 Sep 2026 15:28:08 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Fri, 25 Sep 2026 17:28:07 +0200 Subject: [PATCH v5 6/7] arm64: dts: qcom: sdm845-google: Add basic audio support 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: <20260925-pixel3-audio-v5-6-7ffb32c980bf@ixit.cz> References: <20260925-pixel3-audio-v5-0-7ffb32c980bf@ixit.cz> In-Reply-To: <20260925-pixel3-audio-v5-0-7ffb32c980bf@ixit.cz> To: Srinivas Kandagatla , 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 , Abel Vesa Cc: Viken Dadhaniya , 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=5501; i=david@ixit.cz; h=from:subject:message-id; bh=OPuhAiGiwh1F0hU4jXrVkMpTLkDrYHqdITX3pk25rWU=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBqtpMFKj3tuXOpjCWJtLDo/fLWXPS+AJM8W76Ff e0Ua4/4ZHWJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaraTBQAKCRBgAj/E00kg cnK9D/41xeiUjBEWHCv/6OTr6/8IrEizwyIPn9+cOOiTk8/3y929ii0CtG/r8ISC6ceqlmMIiCc 2tzqkXZkjGQbN3UwXeLCOk8SB0KVjGUL7BBjMx80kM+K2UHTNiz0hOaRaKJJOAJB5E34nO8t0ms 3DMu3yc+yxF7q9MoNTmpi46YUI4M6KE8Q6wsVQ3TACrprktNdfpa5i/JJ0CAgSF5m7HZ4WPiQDB JFGUruPhIDAHZa0cniCHHc18+2N483q2aLRKDyZo5U1gPh9bX5y8sInj9wXfUhg8eXXHGLWlaj/ R6bv823VvPV71jFXkYh9E2sCUbPMTVGq5y/uWpkua2NLtL5NiC3TMgZnolss1eRl+Wy1CXTAI1n zkDfo+3xgey8gHXnCi5upE+V39gdu4SYeg7OqMqjWYlDhMwLcFqqlWBus3CWFjCUBKx26qVbNOb KYSxRJZYsOR02IidgnH1r5GzBh3niwT/MgKGDOLoIew9Brg0I394rmgZZOxeG/InUXqZE/kmS+r SZDHDmULBb2ZRbFKQz5eNCmebdP61VAhlnue9Ko6uGDkFKK6KaCvqeogpW1HADmbogDduwEffaX HHba/qLXpiCkWnRxTMU9vLq/wpfOgGjmk0ukNOY0yOTF7U3pVe1/XguefPw6F1f0whud6savFw2 XYXRqwtEAn+Tf4Q== 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 Introduce support for sound card and wire two CS35L36 audio codecs for top and bottom speakers. Inspired by commit from Joel Selvaraj. Signed-off-by: David Heidelberg --- arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi | 132 ++++++++++++++++++++- 1 file changed, 130 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi index f1379857e2742..68d26c1a06d0c 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi @@ -2,16 +2,18 @@ /dts-v1/; #include #include #include #include #include +#include +#include #include "sdm845.dtsi" #include "pm8998.dtsi" #include "pmi8998.dtsi" /delete-node/ &mpss_region; /delete-node/ &venus_mem; /delete-node/ &cdsp_mem; @@ -406,19 +408,61 @@ nfc@28 { firmware-gpios = <&tlmm 79 GPIO_ACTIVE_HIGH>; pinctrl-0 = <&nfc_default>; pinctrl-names = "default"; }; }; &i2c12 { - /* Bottom spkr (right) CS35L36 @ 40 */ + status = "okay"; + + cs35l36_bottom: audio-codec@40 { + compatible = "cirrus,cs35l36"; + reg = <0x40>; + reset-gpios = <&tlmm 112 GPIO_ACTIVE_HIGH>; + #sound-dai-cells = <0>; + sound-name-prefix = "Right"; /* Bottom */ + VA-supply = <&vreg_s4a_1p8>; + interrupts-extended = <&tlmm 115 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-0 = <&cs35l36_bottom_default_state>; + pinctrl-names = "default"; + + cirrus,boost-ind-nanohenry = <1000>; + cirrus,boost-ctl-select = <1>; + cirrus,boost-ctl-millivolt = <10000>; + cirrus,boost-peak-milliamp = <3700>; + cirrus,temp-warn-threshold = <1>; + cirrus,multi-amp-mode; + cirrus,irq-drive-select = <0>; + cirrus,irq-gpio-select = <0>; + }; + + cs35l36_top: audio-codec@41 { + compatible = "cirrus,cs35l36"; + reg = <0x41>; + reset-gpios = <&tlmm 75 GPIO_ACTIVE_HIGH>; + #sound-dai-cells = <0>; + sound-name-prefix = "Left"; /* Top */ + VA-supply = <&vreg_s4a_1p8>; + interrupts-extended = <&tlmm 40 IRQ_TYPE_LEVEL_LOW>; - /* Top spkr (left) CS35L36 @ 41 */ + pinctrl-0 = <&cs35l36_top_default_state>; + pinctrl-names = "default"; + + cirrus,boost-ind-nanohenry = <1000>; + cirrus,boost-ctl-select = <0x01>; + cirrus,boost-ctl-millivolt = <10000>; + cirrus,boost-peak-milliamp = <3700>; + cirrus,temp-warn-threshold = <1>; + cirrus,multi-amp-mode; + cirrus,irq-drive-select = <0>; + cirrus,irq-gpio-select = <0>; + }; }; &ipa { firmware-name = "qcom/sdm845/Google/blueline/ipa_fws.mbn"; memory-region = <&ipa_fw_mem>; status = "okay"; }; @@ -451,16 +495,35 @@ &pm8998_resin { }; &pmi8998_charger { monitored-battery = <&battery>; status = "okay"; }; +&q6afedai { + dai@72 { + reg = ; + + qcom,tdm-sync-mode = <0>; + qcom,tdm-sync-src = <1>; + qcom,tdm-data-out = <0>; + qcom,tdm-invert-sync = <0>; + qcom,tdm-data-delay = <1>; + qcom,tdm-data-align = <0>; + }; +}; + +&q6asmdai { + dai@0 { + reg = ; + }; +}; + &qupv3_id_0 { status = "okay"; }; &qupv3_id_1 { status = "okay"; }; @@ -469,16 +532,49 @@ &qup_uart9_rx { bias-pull-up; }; &qup_uart9_tx { drive-strength = <2>; bias-disable; }; +&sound { + compatible = "qcom,sdm845-sndcard"; + model = "Pixel 3"; + pinctrl-0 = <&quat_mi2s_active>, <&quat_mi2s_sd0_active>, + <&quat_mi2s_sd1_active>; + pinctrl-names = "default"; + + /* 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>; + }; + }; + + 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>; + }; + }; +}; + &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 { pins = "gpio25"; function = "gpio"; @@ -517,16 +613,48 @@ touchscreen_pins: ts-pins-gpio-state { }; touchscreen_i2c_pins: qup-i2c2-gpio-state { pins = "gpio27", "gpio28"; function = "gpio"; drive-strength = <2>; bias-disable; }; + + cs35l36_bottom_default_state: cs35l36-bottom-default-state { + reset-pins { + pins = "gpio112"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + irq-pins { + pins = "gpio115"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + cs35l36_top_default_state: cs35l36-top-default-state { + irq-pins { + pins = "gpio40"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + + reset-pins { + pins = "gpio75"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + }; }; &uart6 { pinctrl-0 = <&qup_uart6_4pin>; status = "okay"; bluetooth { -- 2.55.0