* [PATCH 0/5] Enable soundcard on Motorola Edge 30
@ 2026-10-16 7:31 Val Packett
2026-10-16 7:31 ` [PATCH 1/5] ASoC: qcom: qdsp6: q6routing: add Senary MI2S ports Val Packett
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Val Packett @ 2026-10-16 7:31 UTC (permalink / raw)
Cc: Val Packett, Mark Brown, Bjorn Andersson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Luca Weiss,
Srinivas Kandagatla, Conor Dooley, ~postmarketos/upstreaming,
phone-devel, linux-arm-msm, devicetree, linux-kernel
This series enables sound support on motorola-dubai, at least the
speakers.. The WCD that handles microphones and analog USB-C sound
is left out because it would first need:
https://lore.kernel.org/all/20260522-kodiak-elite-macros-v1-1-487661ac1270@fairphone.com/
The senary MI2S patches were previously part of:
https://lore.kernel.org/all/20260506204142.659778-1-val@packett.cool/
and that series mixed up too many things and got bogged down due to
the TDM stuff that's not relevant to this device..
Thanks,
~val
---
Val Packett (5):
ASoC: qcom: qdsp6: q6routing: add Senary MI2S ports
ASoC: qcom: sm8250: add Senary MI2S RX support
ASoC: dt-bindings: qcom,sm8250: Add Motorola Edge 30 sound card
ASoC: qcom: sm8250: Add motorola-dubai soundcard compatible
arm64: dts: qcom: motorola-dubai: Add sound card with aw88261 speakers
.../bindings/sound/qcom,sm8250.yaml | 1 +
.../qcom/sm7325-motorola-dubai-common.dtsi | 119 ++++++++++++++++++
sound/soc/qcom/qdsp6/q6routing.c | 11 ++
sound/soc/qcom/sm8250.c | 9 ++
4 files changed, 140 insertions(+)
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/5] ASoC: qcom: qdsp6: q6routing: add Senary MI2S ports
2026-10-16 7:31 [PATCH 0/5] Enable soundcard on Motorola Edge 30 Val Packett
@ 2026-10-16 7:31 ` Val Packett
2026-10-16 7:31 ` [PATCH 2/5] ASoC: qcom: sm8250: add Senary MI2S RX support Val Packett
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Val Packett @ 2026-10-16 7:31 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai
Cc: Val Packett, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Luca Weiss, Srinivas Kandagatla,
Conor Dooley, ~postmarketos/upstreaming, phone-devel,
linux-arm-msm, devicetree, linux-kernel, linux-sound
This commit adds support for senary MI2S mixers.
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Signed-off-by: Val Packett <val@packett.cool>
---
sound/soc/qcom/qdsp6/q6routing.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/soc/qcom/qdsp6/q6routing.c b/sound/soc/qcom/qdsp6/q6routing.c
index d076c99f197f..ea511200c8d7 100644
--- a/sound/soc/qcom/qdsp6/q6routing.c
+++ b/sound/soc/qcom/qdsp6/q6routing.c
@@ -68,6 +68,7 @@
{ mix_name, "SEC_MI2S_TX", "SEC_MI2S_TX" }, \
{ mix_name, "QUAT_MI2S_TX", "QUAT_MI2S_TX" }, \
{ mix_name, "QUIN_MI2S_TX", "QUIN_MI2S_TX" }, \
+ { mix_name, "SEN_MI2S_TX", "SEN_MI2S_TX" }, \
{ mix_name, "TERT_MI2S_TX", "TERT_MI2S_TX" }, \
{ mix_name, "SLIMBUS_0_TX", "SLIMBUS_0_TX" }, \
{ mix_name, "SLIMBUS_1_TX", "SLIMBUS_1_TX" }, \
@@ -152,6 +153,9 @@
SOC_SINGLE_EXT("QUIN_MI2S_TX", QUINARY_MI2S_TX, \
id, 1, 0, msm_routing_get_audio_mixer, \
msm_routing_put_audio_mixer), \
+ SOC_SINGLE_EXT("SEN_MI2S_TX", SENARY_MI2S_TX, \
+ id, 1, 0, msm_routing_get_audio_mixer, \
+ msm_routing_put_audio_mixer), \
SOC_SINGLE_EXT("SLIMBUS_0_TX", SLIMBUS_0_TX, \
id, 1, 0, msm_routing_get_audio_mixer, \
msm_routing_put_audio_mixer), \
@@ -563,6 +567,9 @@ static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Q6ROUTING_RX_MIXERS(QUINARY_MI2S_RX) };
+static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
+ Q6ROUTING_RX_MIXERS(SENARY_MI2S_RX) };
+
static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Q6ROUTING_RX_MIXERS(TERTIARY_MI2S_RX) };
@@ -825,6 +832,9 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
quinary_mi2s_rx_mixer_controls,
ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
+ SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
+ senary_mi2s_rx_mixer_controls,
+ ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
tertiary_mi2s_rx_mixer_controls,
ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
@@ -1038,6 +1048,7 @@ static const struct snd_soc_dapm_route intercon[] = {
Q6ROUTING_RX_DAPM_ROUTE("SLIMBUS_6_RX Audio Mixer", "SLIMBUS_6_RX"),
Q6ROUTING_RX_DAPM_ROUTE("QUAT_MI2S_RX Audio Mixer", "QUAT_MI2S_RX"),
Q6ROUTING_RX_DAPM_ROUTE("QUIN_MI2S_RX Audio Mixer", "QUIN_MI2S_RX"),
+ Q6ROUTING_RX_DAPM_ROUTE("SEN_MI2S_RX Audio Mixer", "SEN_MI2S_RX"),
Q6ROUTING_RX_DAPM_ROUTE("TERT_MI2S_RX Audio Mixer", "TERT_MI2S_RX"),
Q6ROUTING_RX_DAPM_ROUTE("SEC_MI2S_RX Audio Mixer", "SEC_MI2S_RX"),
Q6ROUTING_RX_DAPM_ROUTE("PRI_MI2S_RX Audio Mixer", "PRI_MI2S_RX"),
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/5] ASoC: qcom: sm8250: add Senary MI2S RX support
2026-10-16 7:31 [PATCH 0/5] Enable soundcard on Motorola Edge 30 Val Packett
2026-10-16 7:31 ` [PATCH 1/5] ASoC: qcom: qdsp6: q6routing: add Senary MI2S ports Val Packett
@ 2026-10-16 7:31 ` Val Packett
2026-10-16 7:31 ` [PATCH 3/5] ASoC: dt-bindings: qcom,sm8250: Add Motorola Edge 30 sound card Val Packett
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Val Packett @ 2026-10-16 7:31 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai
Cc: Val Packett, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Luca Weiss, Srinivas Kandagatla,
Conor Dooley, ~postmarketos/upstreaming, phone-devel,
linux-arm-msm, devicetree, linux-kernel, linux-sound
Add support for the SENARY_MI2S_RX DAI which is used on some devices to
send audio data to speaker amplifiers.
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Signed-off-by: Val Packett <val@packett.cool>
---
sound/soc/qcom/sm8250.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c
index 76dc3a3f4a31..2d49b04cb1f6 100644
--- a/sound/soc/qcom/sm8250.c
+++ b/sound/soc/qcom/sm8250.c
@@ -112,6 +112,14 @@ static int sm8250_snd_startup(struct snd_pcm_substream *substream)
snd_soc_dai_set_fmt(cpu_dai, fmt);
snd_soc_dai_set_fmt(codec_dai, codec_dai_fmt);
break;
+ case SENARY_MI2S_RX:
+ codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_I2S;
+ snd_soc_dai_set_sysclk(cpu_dai,
+ Q6AFE_LPASS_CLK_ID_SEN_MI2S_IBIT,
+ MI2S_BCLK_RATE, SNDRV_PCM_STREAM_PLAYBACK);
+ snd_soc_dai_set_fmt(cpu_dai, fmt);
+ snd_soc_dai_set_fmt(codec_dai, codec_dai_fmt);
+ break;
case LPI_MI2S_RX_0:
codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_I2S;
snd_soc_dai_set_sysclk(cpu_dai,
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/5] ASoC: dt-bindings: qcom,sm8250: Add Motorola Edge 30 sound card
2026-10-16 7:31 [PATCH 0/5] Enable soundcard on Motorola Edge 30 Val Packett
2026-10-16 7:31 ` [PATCH 1/5] ASoC: qcom: qdsp6: q6routing: add Senary MI2S ports Val Packett
2026-10-16 7:31 ` [PATCH 2/5] ASoC: qcom: sm8250: add Senary MI2S RX support Val Packett
@ 2026-10-16 7:31 ` Val Packett
2026-10-16 7:31 ` [PATCH 4/5] ASoC: qcom: sm8250: Add motorola-dubai soundcard compatible Val Packett
2026-10-16 7:31 ` [PATCH 5/5] arm64: dts: qcom: motorola-dubai: Add sound card with aw88261 speakers Val Packett
4 siblings, 0 replies; 6+ messages in thread
From: Val Packett @ 2026-10-16 7:31 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Val Packett, Bjorn Andersson, Konrad Dybcio, Luca Weiss,
Srinivas Kandagatla, ~postmarketos/upstreaming, phone-devel,
linux-arm-msm, devicetree, linux-kernel, linux-sound
Document the bindings for the sound card on motorola-dubai which uses the
Elite DSP architecture.
Signed-off-by: Val Packett <val@packett.cool>
---
Documentation/devicetree/bindings/sound/qcom,sm8250.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
index fc7bccdace0f..c76c9c670bc1 100644
--- a/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
+++ b/Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
@@ -36,6 +36,7 @@ properties:
- ayaneo,pocket-s2-sndcard
- fairphone,fp4-sndcard
- fairphone,fp5-sndcard
+ - motorola,dubai-sndcard
- qcom,apq8096-sndcard
- qcom,glymur-sndcard
- qcom,qcm6490-idp-sndcard
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 4/5] ASoC: qcom: sm8250: Add motorola-dubai soundcard compatible
2026-10-16 7:31 [PATCH 0/5] Enable soundcard on Motorola Edge 30 Val Packett
` (2 preceding siblings ...)
2026-10-16 7:31 ` [PATCH 3/5] ASoC: dt-bindings: qcom,sm8250: Add Motorola Edge 30 sound card Val Packett
@ 2026-10-16 7:31 ` Val Packett
2026-10-16 7:31 ` [PATCH 5/5] arm64: dts: qcom: motorola-dubai: Add sound card with aw88261 speakers Val Packett
4 siblings, 0 replies; 6+ messages in thread
From: Val Packett @ 2026-10-16 7:31 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai
Cc: Val Packett, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Luca Weiss, Srinivas Kandagatla,
Conor Dooley, ~postmarketos/upstreaming, phone-devel,
linux-arm-msm, devicetree, linux-kernel, linux-sound
Add a compatible for the SM7325-based Motorola Edge 30 which can use this
machine driver.
Signed-off-by: Val Packett <val@packett.cool>
---
sound/soc/qcom/sm8250.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c
index 2d49b04cb1f6..5866f1f34b3d 100644
--- a/sound/soc/qcom/sm8250.c
+++ b/sound/soc/qcom/sm8250.c
@@ -215,6 +215,7 @@ static int sm8250_platform_probe(struct platform_device *pdev)
static const struct of_device_id snd_sm8250_dt_match[] = {
{ .compatible = "fairphone,fp4-sndcard", .data = "sm7225" },
{ .compatible = "fairphone,fp5-sndcard", .data = "qcm6490" },
+ { .compatible = "motorola,dubai-sndcard", .data = "sm7325" },
{ .compatible = "qcom,qrb2210-sndcard", .data = "qcm2290" },
{ .compatible = "qcom,qrb4210-rb2-sndcard", .data = "sm4250" },
{ .compatible = "qcom,qrb5165-rb5-sndcard", .data = "sm8250" },
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 5/5] arm64: dts: qcom: motorola-dubai: Add sound card with aw88261 speakers
2026-10-16 7:31 [PATCH 0/5] Enable soundcard on Motorola Edge 30 Val Packett
` (3 preceding siblings ...)
2026-10-16 7:31 ` [PATCH 4/5] ASoC: qcom: sm8250: Add motorola-dubai soundcard compatible Val Packett
@ 2026-10-16 7:31 ` Val Packett
4 siblings, 0 replies; 6+ messages in thread
From: Val Packett @ 2026-10-16 7:31 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Val Packett, Mark Brown, Luca Weiss, Srinivas Kandagatla,
~postmarketos/upstreaming, phone-devel, linux-arm-msm,
devicetree, linux-kernel
Enable the sndcard node with three MultiMedia frontends, a USB offload
RX link, and two Awinic AW88261 speaker amps on senary MI2S.
While here, use the correct compatible for audiocc for this phone,
and remove references to power-domains from a 'reserved' node.
Signed-off-by: Val Packett <val@packett.cool>
---
.../qcom/sm7325-motorola-dubai-common.dtsi | 119 ++++++++++++++++++
1 file changed, 119 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm7325-motorola-dubai-common.dtsi b/arch/arm64/boot/dts/qcom/sm7325-motorola-dubai-common.dtsi
index 3860ab8508a0..1e1c195de1af 100644
--- a/arch/arm64/boot/dts/qcom/sm7325-motorola-dubai-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm7325-motorola-dubai-common.dtsi
@@ -16,6 +16,8 @@
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
#include "sm7325.dtsi"
#include "pm7325.dtsi"
@@ -699,6 +701,40 @@ &gpu_zap_shader {
firmware-name = "qcom/sm7325/motorola/dubai/a660_zap.mbn";
};
+&i2c1 {
+ clock-frequency = <100000>;
+
+ status = "okay";
+
+ /* Bottom speaker */
+ aw88261_r: audio-codec@34 {
+ compatible = "awinic,aw88261";
+ reg = <0x34>;
+
+ dvdd-supply = <&vreg_l18b_1p8>;
+ sound-name-prefix = "Amplifier R";
+ firmware-name = "qcom/sm7325/motorola/dubai/aw88261_acf.bin";
+
+ awinic,audio-channel = <0>;
+
+ #sound-dai-cells = <0>;
+ };
+
+ /* Top speaker / ear speaker */
+ aw88261_l: audio-codec@35 {
+ compatible = "awinic,aw88261";
+ reg = <0x35>;
+
+ dvdd-supply = <&vreg_l18b_1p8>;
+ sound-name-prefix = "Amplifier L";
+ firmware-name = "qcom/sm7325/motorola/dubai/aw88261_acf.bin";
+
+ awinic,audio-channel = <1>;
+
+ #sound-dai-cells = <0>;
+ };
+};
+
&i2c4 {
clock-frequency = <100000>;
@@ -732,6 +768,11 @@ &ipa {
status = "okay";
};
+&lpass_audiocc {
+ compatible = "qcom,qcm6490-lpassaudiocc";
+ /delete-property/ power-domains;
+};
+
&pm7250b_adc {
channel@4e {
reg = <ADC5_AMUX_THM2_100K_PU>;
@@ -972,10 +1013,22 @@ &pon_resin {
status = "okay";
};
+&q6afedai {
+ dai@147 {
+ reg = <SENARY_MI2S_RX>;
+ qcom,sd-lines = <0>;
+ };
+};
+
&qfprom {
vcc-supply = <&vdd_qfprom>;
};
+&qup_i2c1_data_clk {
+ drive-strength = <2>;
+ bias-pull-up;
+};
+
&qup_spi13_cs {
drive-strength = <6>;
bias-pull-down;
@@ -1066,6 +1119,72 @@ &rmtfs_mem {
<QCOM_SCM_VMID_NAV>;
};
+&sound {
+ compatible = "motorola,dubai-sndcard";
+ model = "Motorola-dubai";
+
+ pinctrl-0 = <&lpass_i2s2_active>;
+ pinctrl-1 = <&lpass_i2s2_sleep>;
+ pinctrl-names = "default",
+ "sleep";
+
+ mm1-dai-link {
+ link-name = "MultiMedia1";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
+ };
+ };
+
+ mm2-dai-link {
+ link-name = "MultiMedia2";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
+ };
+ };
+
+ mm3-dai-link {
+ link-name = "MultiMedia3";
+
+ cpu {
+ sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
+ };
+ };
+
+ i2s-dai-link {
+ link-name = "Senary MI2S Playback";
+
+ codec {
+ sound-dai = <&aw88261_l>, <&aw88261_r>;
+ };
+
+ cpu {
+ sound-dai = <&q6afedai SENARY_MI2S_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+ };
+
+ usb-dai-link {
+ link-name = "USB Playback";
+
+ codec {
+ sound-dai = <&q6usbdai USB_RX>;
+ };
+
+ cpu {
+ sound-dai = <&q6afedai USB_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6routing>;
+ };
+ };
+};
+
&spi13 {
status = "okay";
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-10-16 7:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-16 7:31 [PATCH 0/5] Enable soundcard on Motorola Edge 30 Val Packett
2026-10-16 7:31 ` [PATCH 1/5] ASoC: qcom: qdsp6: q6routing: add Senary MI2S ports Val Packett
2026-10-16 7:31 ` [PATCH 2/5] ASoC: qcom: sm8250: add Senary MI2S RX support Val Packett
2026-10-16 7:31 ` [PATCH 3/5] ASoC: dt-bindings: qcom,sm8250: Add Motorola Edge 30 sound card Val Packett
2026-10-16 7:31 ` [PATCH 4/5] ASoC: qcom: sm8250: Add motorola-dubai soundcard compatible Val Packett
2026-10-16 7:31 ` [PATCH 5/5] arm64: dts: qcom: motorola-dubai: Add sound card with aw88261 speakers Val Packett
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®