From 2b826242a70a9dca0c65fe8cb4e87ea9994806e6 Mon Sep 17 00:00:00 2001 From: Le Qi Date: Thu, 2 Apr 2026 12:20:42 +0800 Subject: [PATCH 1/4] Revert "FROMLIST: arm64: dts: qcom: talos: Add GPR node, audio services, and MI2S1 TLMM pins" This reverts commit 392c660ca2c06d74fb5bcfce12566040fd7925c7. Signed-off-by: Le Qi --- arch/arm64/boot/dts/qcom/talos.dtsi | 47 ----------------------------- 1 file changed, 47 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi index dd0af33d905bc..abdf6baa1266a 100644 --- a/arch/arm64/boot/dts/qcom/talos.dtsi +++ b/arch/arm64/boot/dts/qcom/talos.dtsi @@ -20,7 +20,6 @@ #include #include #include -#include / { interrupt-parent = <&intc>; @@ -1610,13 +1609,6 @@ #interrupt-cells = <2>; wakeup-parent = <&pdc>; - mi2s1_pins: mi2s1-state { - pins = "gpio108", "gpio109", "gpio110", "gpio111"; - function = "mi2s_1"; - drive-strength = <8>; - bias-disable; - }; - cam0_default: cam0-default-state { pins = "gpio28"; function = "cam_mclk"; @@ -5197,45 +5189,6 @@ dma-coherent; }; }; - - gpr: gpr { - compatible = "qcom,gpr"; - qcom,glink-channels = "adsp_apps"; - qcom,domain = ; - qcom,intents = <512 20>; - #address-cells = <1>; - #size-cells = <0>; - - q6apm: service@1 { - compatible = "qcom,q6apm"; - reg = ; - #sound-dai-cells = <0>; - qcom,protection-domain = "avs/audio", - "msm/adsp/audio_pd"; - - q6apmbedai: bedais { - compatible = "qcom,q6apm-lpass-dais"; - #sound-dai-cells = <1>; - }; - - q6apmdai: dais { - compatible = "qcom,q6apm-dais"; - iommus = <&apps_smmu 0x1721 0x0>; - }; - }; - - q6prm: service@2 { - compatible = "qcom,q6prm"; - reg = ; - qcom,protection-domain = "avs/audio", - "msm/adsp/audio_pd"; - - q6prmcc: clock-controller { - compatible = "qcom,q6prm-lpass-clocks"; - #clock-cells = <2>; - }; - }; - }; }; }; From a416aecd107f7e4f6da09443f5b8a75e9d7a6534 Mon Sep 17 00:00:00 2001 From: Le Qi Date: Thu, 2 Apr 2026 12:20:53 +0800 Subject: [PATCH 2/4] Revert "FROMLIST: arm64: dts: qcom: talos-evk: Add sound card support with DA7212 codec" This reverts commit 9b6d6100a71b2a98a30ada43d34edeb55a386236. Signed-off-by: Le Qi --- arch/arm64/boot/dts/qcom/talos-evk.dts | 52 -------------------------- 1 file changed, 52 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/talos-evk.dts b/arch/arm64/boot/dts/qcom/talos-evk.dts index 42f8a3944b29b..af100e22beeec 100644 --- a/arch/arm64/boot/dts/qcom/talos-evk.dts +++ b/arch/arm64/boot/dts/qcom/talos-evk.dts @@ -5,7 +5,6 @@ /dts-v1/; #include "talos-evk-som.dtsi" -#include / { model = "Qualcomm QCS615 IQ 615 EVK"; @@ -41,46 +40,6 @@ }; }; - sound { - compatible = "qcom,qcs615-sndcard"; - model = "TALOS-EVK"; - - pinctrl-0 = <&mi2s1_pins>; - pinctrl-names = "default"; - - pri-mi2s-capture-dai-link { - link-name = "Primary MI2S Capture"; - - codec { - sound-dai = <&codec_da7212>; - }; - - cpu { - sound-dai = <&q6apmbedai PRIMARY_MI2S_TX>; - }; - - platform { - sound-dai = <&q6apm>; - }; - }; - - pri-mi2s-playback-dai-link { - link-name = "Primary MI2S Playback"; - - codec { - sound-dai = <&codec_da7212>; - }; - - cpu { - sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>; - }; - - platform { - sound-dai = <&q6apm>; - }; - }; - }; - vreg_v1p8_out: regulator-v1p8-out { compatible = "regulator-fixed"; regulator-name = "vreg-v1p8-out"; @@ -150,17 +109,6 @@ }; }; -&i2c5 { - codec_da7212: codec@1a { - compatible = "dlg,da7212"; - reg = <0x1a>; - #sound-dai-cells = <0>; - VDDA-supply = <&vreg_v1p8_out>; - VDDIO-supply = <&vreg_v1p8_out>; - VDDMIC-supply = <&vreg_v3p3_out>; - }; -}; - &mdss_dsi0_out { remote-endpoint = <&adv7535_in>; data-lanes = <0 1 2 3>; From 2d9f990554bed83e1811545331af24b7820c03fd Mon Sep 17 00:00:00 2001 From: Le Qi Date: Thu, 2 Apr 2026 12:24:43 +0800 Subject: [PATCH 3/4] FROMLIST: arm64: dts: qcom: talos: Add GPR node, audio services, and MI2S1 TLMM pins This patch adds the Generic Pack Router (GPR) node together with Audio Process Manager (APM) and Proxy Resource Manager (PRM) audio service nodes to the Talos device tree description. It also introduces MI2S1 pinctrl states for data0, data1, sck, and ws lines, grouped into a single entry at the SoC-level DTSI for better reuse and clarity. Link: https://lore.kernel.org/all/20260324060405.3098891-1-le.qi@oss.qualcomm.com/ Reviewed-by: Konrad Dybcio Signed-off-by: Le Qi --- arch/arm64/boot/dts/qcom/talos.dtsi | 54 +++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi index abdf6baa1266a..d1c7507cc23e1 100644 --- a/arch/arm64/boot/dts/qcom/talos.dtsi +++ b/arch/arm64/boot/dts/qcom/talos.dtsi @@ -19,6 +19,7 @@ #include #include #include +#include #include / { @@ -1653,6 +1654,20 @@ bias-pull-up; }; + mi2s1_pins: mi2s1-state { + pins = "gpio108", "gpio109", "gpio110", "gpio111"; + function = "mi2s_1"; + drive-strength = <8>; + bias-disable; + }; + + mi2s_mclk: mi2s-mclk-state { + pins = "gpio122"; + function = "mclk2"; + drive-strength = <8>; + bias-disable; + }; + qup_i2c1_data_clk: qup-i2c1-data-clk-state { pins = "gpio4", "gpio5"; function = "qup0"; @@ -5189,6 +5204,45 @@ dma-coherent; }; }; + + gpr: gpr { + compatible = "qcom,gpr"; + qcom,glink-channels = "adsp_apps"; + qcom,domain = ; + qcom,intents = <512 20>; + #address-cells = <1>; + #size-cells = <0>; + + q6apm: service@1 { + compatible = "qcom,q6apm"; + reg = ; + #sound-dai-cells = <0>; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + + q6apmbedai: bedais { + compatible = "qcom,q6apm-lpass-dais"; + #sound-dai-cells = <1>; + }; + + q6apmdai: dais { + compatible = "qcom,q6apm-dais"; + iommus = <&apps_smmu 0x1721 0x0>; + }; + }; + + q6prm: service@2 { + compatible = "qcom,q6prm"; + reg = ; + qcom,protection-domain = "avs/audio", + "msm/adsp/audio_pd"; + + q6prmcc: clock-controller { + compatible = "qcom,q6prm-lpass-clocks"; + #clock-cells = <2>; + }; + }; + }; }; }; From ef6c34ca2b436723df67f0b667acccfa2469f5fe Mon Sep 17 00:00:00 2001 From: Le Qi Date: Thu, 2 Apr 2026 12:28:32 +0800 Subject: [PATCH 4/4] FROMLIST: arm64: dts: qcom: talos-evk: Add sound card support with DA7212 codec Add the sound card node for QCS615 Talos EVK with DA7212 codec connected over the Primary MI2S interface. The configuration enables headphone playback and headset microphone capture, both of which have been tested to work. Link: https://lore.kernel.org/all/20260324060405.3098891-1-le.qi@oss.qualcomm.com/ Reviewed-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio Signed-off-by: Le Qi --- arch/arm64/boot/dts/qcom/talos-evk.dts | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/talos-evk.dts b/arch/arm64/boot/dts/qcom/talos-evk.dts index af100e22beeec..6352d614e288c 100644 --- a/arch/arm64/boot/dts/qcom/talos-evk.dts +++ b/arch/arm64/boot/dts/qcom/talos-evk.dts @@ -5,6 +5,7 @@ /dts-v1/; #include "talos-evk-som.dtsi" +#include / { model = "Qualcomm QCS615 IQ 615 EVK"; @@ -40,6 +41,46 @@ }; }; + sound { + compatible = "qcom,qcs615-sndcard"; + model = "TALOS-EVK"; + + pinctrl-0 = <&mi2s1_pins>, <&mi2s_mclk>; + pinctrl-names = "default"; + + pri-mi2s-capture-dai-link { + link-name = "Primary MI2S Capture"; + + codec { + sound-dai = <&codec_da7212>; + }; + + cpu { + sound-dai = <&q6apmbedai PRIMARY_MI2S_TX>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + + pri-mi2s-playback-dai-link { + link-name = "Primary MI2S Playback"; + + codec { + sound-dai = <&codec_da7212>; + }; + + cpu { + sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + }; + vreg_v1p8_out: regulator-v1p8-out { compatible = "regulator-fixed"; regulator-name = "vreg-v1p8-out"; @@ -109,6 +150,19 @@ }; }; +&i2c5 { + status = "okay"; + + codec_da7212: codec@1a { + compatible = "dlg,da7212"; + reg = <0x1a>; + #sound-dai-cells = <0>; + VDDA-supply = <&vreg_v1p8_out>; + VDDIO-supply = <&vreg_v1p8_out>; + VDDMIC-supply = <&vreg_v3p3_out>; + }; +}; + &mdss_dsi0_out { remote-endpoint = <&adv7535_in>; data-lanes = <0 1 2 3>; @@ -124,6 +178,17 @@ status = "okay"; }; +&q6apmbedai { + #address-cells = <1>; + #size-cells = <0>; + + dai@17 { + reg = ; + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>; + clock-names = "mclk"; + }; +}; + &sdhc_2 { pinctrl-0 = <&sdc2_state_on>; pinctrl-1 = <&sdc2_state_off>;