From 86affd7dbfba53148ea6d96129fa94ff7df74961 Mon Sep 17 00:00:00 2001 From: Le Qi Date: Wed, 10 Dec 2025 20:38:56 +0800 Subject: [PATCH] FROMLIST: arm64: dts: qcom: hamoa-iot-evk: Fix 4-speaker playback support On the HAMOA-IOT-EVK board only 2 out of 4 speakers were functional. Unlike the CRD, which shares a single GPIO reset line for WSA1/2, this board provides a dedicated GPIO reset for each WSA, resulting in 4 separate reset lines. Update the device tree accordingly so that all 4 speakers can playback audio as expected. Link: https://lore.kernel.org/all/20251010033728.1808133-1-le.qi@oss.qualcomm.com/ Signed-off-by: Le Qi --- arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 30 +++++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts index df8d6e5c1f45e..de9af19be6e84 100644 --- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts @@ -743,7 +743,7 @@ }; &lpass_tlmm { - spkr_01_sd_n_active: spkr-01-sd-n-active-state { + spkr0_sd_n_active: spkr0-sd-n-active-state { pins = "gpio12"; function = "gpio"; drive-strength = <16>; @@ -751,13 +751,29 @@ output-low; }; - spkr_23_sd_n_active: spkr-23-sd-n-active-state { + spkr1_sd_n_active: spkr1-sd-n-active-state { pins = "gpio13"; function = "gpio"; drive-strength = <16>; bias-disable; output-low; }; + + spkr2_sd_n_active: spkr2-sd-n-active-state { + pins = "gpio17"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-low; + }; + + spkr3_sd_n_active: spkr3-sd-n-active-state { + pins = "gpio18"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-low; + }; }; &lpass_vamacro { @@ -908,7 +924,7 @@ &swr0 { status = "okay"; - pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>; + pinctrl-0 = <&wsa_swr_active>, <&spkr0_sd_n_active>, <&spkr1_sd_n_active>; pinctrl-names = "default"; /* WSA8845, Left Woofer */ @@ -927,7 +943,7 @@ left_tweeter: speaker@0,1 { compatible = "sdw20217020400"; reg = <0 1>; - reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; + reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; #sound-dai-cells = <0>; sound-name-prefix = "TweeterLeft"; vdd-1p8-supply = <&vreg_l15b_1p8>; @@ -961,14 +977,14 @@ &swr3 { status = "okay"; - pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>; + pinctrl-0 = <&wsa2_swr_active>, <&spkr2_sd_n_active>, <&spkr3_sd_n_active>; pinctrl-names = "default"; /* WSA8845, Right Woofer */ right_woofer: speaker@0,0 { compatible = "sdw20217020400"; reg = <0 0>; - reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; + reset-gpios = <&lpass_tlmm 17 GPIO_ACTIVE_LOW>; #sound-dai-cells = <0>; sound-name-prefix = "WooferRight"; vdd-1p8-supply = <&vreg_l15b_1p8>; @@ -980,7 +996,7 @@ right_tweeter: speaker@0,1 { compatible = "sdw20217020400"; reg = <0 1>; - reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; + reset-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_LOW>; #sound-dai-cells = <0>; sound-name-prefix = "TweeterRight"; vdd-1p8-supply = <&vreg_l15b_1p8>;