[PATCH v1 2/2] arm64: dts: qcom: talos-evk: Add sound card support with DA7212 codec

From: Le Qi

Date: Thu Oct 23 2025 - 22:37:34 EST


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.

The sound card integrates:
- DA7212 codec on I2C5
- Primary MI2S playback and capture DAI links
- Pin control for MI2S1 signals

Signed-off-by: Le Qi <le.qi@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 78 +++++++++++++++++++++
1 file changed, 78 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
index b58cae02c9cb..523a61b5e0c8 100644
--- a/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
+++ b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
@@ -6,6 +6,7 @@

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
#include "sm6150.dtsi"
#include "pm8150.dtsi"
/ {
@@ -50,6 +51,46 @@ regulator-usb2-vbus {
regulator-always-on;
};

+ sound {
+ compatible = "qcom,qcs615-sndcard";
+ model = "qcs615-snd-card";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&mi2s1_data0>, <&mi2s1_data1>, <&mi2s1_sck>, <&mi2s1_ws>;
+
+ 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>;
+ };
+ };
+
+ 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>;
+ };
+ };
+ };
+
vreg_v3p3_can: regulator-v3p3-can {
compatible = "regulator-fixed";
regulator-name = "vreg-v3p3-can";
@@ -231,6 +272,15 @@ vreg_l17a: ldo17 {
&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>;
+ };
+
eeprom@57 {
compatible = "atmel,24c02";
reg = <0x57>;
@@ -360,6 +410,34 @@ mcp2515@0 {
};

&tlmm {
+ mi2s1_data0: mi2s1-data0-state {
+ pins = "gpio110";
+ function = "mi2s_1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ mi2s1_data1: mi2s1-data1-state {
+ pins = "gpio111";
+ function = "mi2s_1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ mi2s1_sck: mi2s1-sck-state {
+ pins = "gpio108";
+ function = "mi2s_1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ mi2s1_ws: mi2s1-ws-state {
+ pins = "gpio109";
+ function = "mi2s_1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
pcie_default_state: pcie-default-state {
clkreq-pins {
pins = "gpio90";
--
2.34.1