From c30d77ba3bcb47735c5c5876bb932064e5ef1d65 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 b95e707128b12..41b69be2d7690 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>; @@ -1629,13 +1628,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"; @@ -5277,45 +5269,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 c7af6ae91500838e32367a90476c2c6a74b813b0 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 db7b33d0c44de49f5154a0b488361e8e122e8586 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/20260409030156.155455-2-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 41b69be2d7690..dcbacbde54a3d 100644 --- a/arch/arm64/boot/dts/qcom/talos.dtsi +++ b/arch/arm64/boot/dts/qcom/talos.dtsi @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -1672,6 +1673,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; + }; + qspi_cs0: qspi-cs0-state { pins = "gpio44"; function = "qspi"; @@ -5269,6 +5284,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 fdc6407cf1596aa715501901a7e8c915f032ed54 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/20260409030156.155455-3-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 | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/talos-evk.dts b/arch/arm64/boot/dts/qcom/talos-evk.dts index af100e22beeec..b7f514fbc7b2d 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,21 @@ }; }; +&i2c5 { + status = "okay"; + + codec_da7212: codec@1a { + compatible = "dlg,da7212"; + reg = <0x1a>; + #sound-dai-cells = <0>; + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>; + clock-names = "mclk"; + 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>;