From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
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>
Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/lemans-evk.dts | 52 +++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/lemans.dtsi | 14 +++++++++
2 files changed, 66 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index 642b66c4ad1e..4adf0f956580 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -7,6 +7,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
#include "lemans.dtsi"
#include "lemans-pmics.dtsi"
@@ -26,6 +27,17 @@ chosen {
stdout-path = "serial0:115200n8";
};
+ 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>;
+ };
+
edp0-connector {
compatible = "dp-connector";
label = "EDP0";
@@ -73,6 +85,46 @@ vreg_sdc: regulator-vreg-sdc {
states = <1800000 0x1
2950000 0x0>;
};
+
+ 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 {
diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index 28f0976ab526..c8e6246b6062 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -5047,6 +5047,20 @@ dp1_hot_plug_det: dp1-hot-plug-det-state {
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";
--
2.51.0
On Tue, Aug 26, 2025 at 11:51:04PM +0530, Wasim Nazir wrote:
> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>
> 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.
Please rewrite this as one fluent description of the hardware, not as 3
separate things thrown into the same commit message.
Regards,
Bjorn
>
> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/lemans-evk.dts | 52 +++++++++++++++++++++++++++++++++
> arch/arm64/boot/dts/qcom/lemans.dtsi | 14 +++++++++
> 2 files changed, 66 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index 642b66c4ad1e..4adf0f956580 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -7,6 +7,7 @@
>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include <dt-bindings/sound/qcom,q6afe.h>
>
> #include "lemans.dtsi"
> #include "lemans-pmics.dtsi"
> @@ -26,6 +27,17 @@ chosen {
> stdout-path = "serial0:115200n8";
> };
>
> + 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>;
> + };
> +
> edp0-connector {
> compatible = "dp-connector";
> label = "EDP0";
> @@ -73,6 +85,46 @@ vreg_sdc: regulator-vreg-sdc {
> states = <1800000 0x1
> 2950000 0x0>;
> };
> +
> + 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 {
> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> index 28f0976ab526..c8e6246b6062 100644
> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> @@ -5047,6 +5047,20 @@ dp1_hot_plug_det: dp1-hot-plug-det-state {
> 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";
>
> --
> 2.51.0
>
On 8/28/2025 4:37 AM, Bjorn Andersson wrote:
> On Tue, Aug 26, 2025 at 11:51:04PM +0530, Wasim Nazir wrote:
>> From: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>>
>> 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.
>
> Please rewrite this as one fluent description of the hardware, not as 3
> separate things thrown into the same commit message.
>
ACK,
Sure, will rewrite proper commit description in next version.
Thanks & Regards,
Rafi.
> Regards,
> Bjorn
>
>>
>> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
>> Signed-off-by: Wasim Nazir <wasim.nazir@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/lemans-evk.dts | 52 +++++++++++++++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/lemans.dtsi | 14 +++++++++
>> 2 files changed, 66 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> index 642b66c4ad1e..4adf0f956580 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
>> @@ -7,6 +7,7 @@
>>
>> #include <dt-bindings/gpio/gpio.h>
>> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>> +#include <dt-bindings/sound/qcom,q6afe.h>
>>
>> #include "lemans.dtsi"
>> #include "lemans-pmics.dtsi"
>> @@ -26,6 +27,17 @@ chosen {
>> stdout-path = "serial0:115200n8";
>> };
>>
>> + 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>;
>> + };
>> +
>> edp0-connector {
>> compatible = "dp-connector";
>> label = "EDP0";
>> @@ -73,6 +85,46 @@ vreg_sdc: regulator-vreg-sdc {
>> states = <1800000 0x1
>> 2950000 0x0>;
>> };
>> +
>> + 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 {
>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
>> index 28f0976ab526..c8e6246b6062 100644
>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
>> @@ -5047,6 +5047,20 @@ dp1_hot_plug_det: dp1-hot-plug-det-state {
>> 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";
>>
>> --
>> 2.51.0
>>
© 2016 - 2026 Red Hat, Inc.