]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: qcom: hamoa-iot-evk: Fix 4-speaker playback support
authorLe Qi <le.qi@oss.qualcomm.com>
Fri, 10 Oct 2025 03:37:28 +0000 (11:37 +0800)
committerBjorn Andersson <andersson@kernel.org>
Mon, 27 Oct 2025 16:47:05 +0000 (11:47 -0500)
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.

Signed-off-by: Le Qi <le.qi@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20251010033728.1808133-1-le.qi@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts

index df8d6e5c1f45e04a9f225b1df2ac6d4c4930e83f..36dd6599402b4650b7f8ad2c0cd22212116a25fe 100644 (file)
 };
 
 &lpass_tlmm {
-       spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+       spkr_0_sd_n_active: spkr-0-sd-n-active-state {
                pins = "gpio12";
                function = "gpio";
                drive-strength = <16>;
                bias-disable;
-               output-low;
        };
 
-       spkr_23_sd_n_active: spkr-23-sd-n-active-state {
+       spkr_1_sd_n_active: spkr-1-sd-n-active-state {
                pins = "gpio13";
                function = "gpio";
                drive-strength = <16>;
                bias-disable;
-               output-low;
+       };
+
+       spkr_2_sd_n_active: spkr-2-sd-n-active-state {
+               pins = "gpio17";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       spkr_3_sd_n_active: spkr-3-sd-n-active-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
        };
 };
 
 &swr0 {
        status = "okay";
 
-       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+       pinctrl-0 = <&wsa_swr_active>;
        pinctrl-names = "default";
 
        /* WSA8845, Left Woofer */
        left_woofer: speaker@0,0 {
                compatible = "sdw20217020400";
+               pinctrl-0 = <&spkr_0_sd_n_active>;
+               pinctrl-names = "default";
                reg = <0 0>;
                reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
        /* WSA8845, Left Tweeter */
        left_tweeter: speaker@0,1 {
                compatible = "sdw20217020400";
+               pinctrl-0 = <&spkr_1_sd_n_active>;
+               pinctrl-names = "default";
                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>;
 &swr3 {
        status = "okay";
 
-       pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
+       pinctrl-0 = <&wsa2_swr_active>;
        pinctrl-names = "default";
 
        /* WSA8845, Right Woofer */
        right_woofer: speaker@0,0 {
                compatible = "sdw20217020400";
+               pinctrl-0 = <&spkr_2_sd_n_active>;
+               pinctrl-names = "default";
                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>;
        /* WSA8845, Right Tweeter */
        right_tweeter: speaker@0,1 {
                compatible = "sdw20217020400";
+               pinctrl-0 = <&spkr_3_sd_n_active>;
+               pinctrl-names = "default";
                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>;