[RFC PATCH 22/23] arm64: dts: qcom: glymur-crd: add WSA speaker protection VI feedback
From: Srinivas Kandagatla
Date: Fri Oct 23 2026 - 13:34:03 EST
From: Ravi Hothi <ravi.hothi@xxxxxxxxxxxxxxxx>
Add the V/I sense DAIs of the four WSA8845 speakers, the SoundWire VI
ports and the WSA macro VI capture DAIs to the WSA Playback link, for
speaker protection. The speakers now expose two DAIs, so give them a
'#sound-dai-cells' of 1 and address the playback DAI explicitly.
Signed-off-by: Ravi Hothi <ravi.hothi@xxxxxxxxxxxxxxxx>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/glymur-crd.dtsi | 29 ++++++++++++++++++------
1 file changed, 22 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
index 58158b51fe29..fddc76f59557 100644
--- a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
@@ -256,11 +256,26 @@ cpu {
sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
};
+ /*
+ * WSA SPKR playback-side codec DAIs plus the WSA
+ * speaker-protection VI capture-side DAIs on both
+ * WSA (left) and WSA2 (right) buses. One MM1
+ * playback open brings up both chains via the
+ * machine driver's multi_direction_codecs flag;
+ * the SP<->SP_VI control link in the tplg handles
+ * the DSP-side pairing.
+ */
codec {
- sound-dai = <&left_woofer>, <&left_tweeter>,
+ sound-dai = <&left_woofer 0>, <&left_tweeter 0>,
<&swr0 0>, <&lpass_wsamacro 0>,
- <&right_woofer>, <&right_tweeter>,
- <&swr3 0>, <&lpass_wsa2macro 0>;
+ <&left_woofer 1>, <&left_tweeter 1>,
+ <&swr0 12>, <&swr0 13>,
+ <&lpass_wsamacro 2>,
+ <&right_woofer 0>, <&right_tweeter 0>,
+ <&swr3 0>, <&lpass_wsa2macro 0>,
+ <&right_woofer 1>, <&right_tweeter 1>,
+ <&swr3 12>, <&swr3 13>,
+ <&lpass_wsa2macro 2>;
};
platform {
@@ -923,7 +938,7 @@ left_woofer: speaker@0,0 {
compatible = "sdw20217020400";
reg = <0 0>;
reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
- #sound-dai-cells = <0>;
+ #sound-dai-cells = <1>;
sound-name-prefix = "WooferLeft";
vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
vdd-io-supply = <&vreg_l18b_e0_1p2>;
@@ -935,7 +950,7 @@ left_tweeter: speaker@0,1 {
compatible = "sdw20217020400";
reg = <0 1>;
reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
- #sound-dai-cells = <0>;
+ #sound-dai-cells = <1>;
sound-name-prefix = "TweeterLeft";
vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
vdd-io-supply = <&vreg_l18b_e0_1p2>;
@@ -951,7 +966,7 @@ right_woofer: speaker@0,0 {
compatible = "sdw20217020400";
reg = <0 0>;
reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
- #sound-dai-cells = <0>;
+ #sound-dai-cells = <1>;
sound-name-prefix = "WooferRight";
vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
vdd-io-supply = <&vreg_l18b_e0_1p2>;
@@ -963,7 +978,7 @@ right_tweeter: speaker@0,1 {
compatible = "sdw20217020400";
reg = <0 1>;
reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
- #sound-dai-cells = <0>;
+ #sound-dai-cells = <1>;
sound-name-prefix = "TweeterRight";
vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
vdd-io-supply = <&vreg_l18b_e0_1p2>;
--
2.47.3