]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: lemans-evk: Add sound card
authorMohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Fri, 22 Aug 2025 13:19:02 +0000 (18:49 +0530)
committerBjorn Andersson <andersson@kernel.org>
Tue, 9 Sep 2025 15:09:04 +0000 (10:09 -0500)
Add the sound card node with tested playback over max98357a
I2S speakers amplifier and I2S mic.

Introduce HS (High-Speed) MI2S pin control support.
The I2S max98357a speaker amplifier is connected via HS0 and I2S
microphones utilize the HS2 interface.

Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250822131902.1848802-3-mohammad.rafi.shaik@oss.qualcomm.com
[bjorn: Sorted nodes]
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/lemans-evk.dts
arch/arm64/boot/dts/qcom/lemans.dtsi

index 9e415012140b8a0c17c36580b9c6d3ad6cadcbca..f79e826bd5d48fabc196a05a22a892e6432171d2 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "lemans.dtsi"
                serial0 = &uart10;
        };
 
+       dmic: audio-codec-0 {
+               compatible = "dmic-codec";
+               #sound-dai-cells = <0>;
+               num-channels = <1>;
+       };
+
+       max98357a: audio-codec-1 {
+               compatible = "maxim,max98357a";
+               #sound-dai-cells = <0>;
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
                        };
                };
        };
+
+       sound {
+               compatible = "qcom,qcs9100-sndcard";
+               model = "LEMANS-EVK";
+
+               pinctrl-0 = <&hs0_mi2s_active>, <&hs2_mi2s_active>;
+               pinctrl-names = "default";
+
+               hs0-mi2s-playback-dai-link {
+                       link-name = "HS0 MI2S Playback";
+
+                       codec {
+                               sound-dai = <&max98357a>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               hs2-mi2s-capture-dai-link {
+                       link-name = "HS2 MI2S Capture";
+
+                       codec {
+                               sound-dai = <&dmic>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai TERTIARY_MI2S_TX>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+       };
 };
 
 &apps_rsc {
index 77724805ae8cf7d1263a4df3ba1dc53e98e6798c..fd6eb6fbe29a177d5323a2f58ed85c35750c26aa 100644 (file)
                                bias-disable;
                        };
 
+                       hs0_mi2s_active: hs0-mi2s-active-state {
+                               pins = "gpio114", "gpio115", "gpio116", "gpio117";
+                               function = "hs0_mi2s";
+                               drive-strength = <8>;
+                               bias-disable;
+                       };
+
+                       hs2_mi2s_active: hs2-mi2s-active-state {
+                               pins = "gpio122", "gpio123", "gpio124", "gpio125";
+                               function = "hs2_mi2s";
+                               drive-strength = <8>;
+                               bias-disable;
+                       };
+
                        qup_i2c0_default: qup-i2c0-state {
                                pins = "gpio20", "gpio21";
                                function = "qup0_se0";