* [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S
@ 2026-08-31 9:13 Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 1/3] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Neil Armstrong @ 2026-08-31 9:13 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Neil Armstrong
Following [1], this adds the necessary settings to setup
the I2S link to the HDMI bridge to allow audio playback.
All dependencies are merged v7.3-rc1
[1] https://lore.kernel.org/all/20260724182446.1484894-1-mohammad.rafi.shaik@oss.qualcomm.com/
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Changes in v4:
- Rebased on v7.3-rc1
- Link to v3: https://patch.msgid.link/20260805-topic-sm8x50-next-hdk-i2s-v3-0-07a6483c430f@linaro.org
Changes in v3:
- Fixed node unit number on patch 3
- Link to v2: https://patch.msgid.link/20260731-topic-sm8x50-next-hdk-i2s-v2-0-42c1acee5a2d@linaro.org
Changes in v2:
- Dropped applied patch 1
- Fixed node unit number
- Reversed clock names order to respect bindings
- Link to v1: https://patch.msgid.link/20260728-topic-sm8x50-next-hdk-i2s-v1-0-2393a0fe4aa9@linaro.org
---
Neil Armstrong (3):
arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
arm64: dts: qcom: sm8550-hdk: Enable I2S for HDMI
arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 36 +++++++++++++++-
arch/arm64/boot/dts/qcom/sm8450.dtsi | 40 ++++++++++++++++++
arch/arm64/boot/dts/qcom/sm8550-hdk.dts | 36 +++++++++++++++-
arch/arm64/boot/dts/qcom/sm8550.dtsi | 73 +++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/sm8650-hdk.dts | 35 +++++++++++++++-
arch/arm64/boot/dts/qcom/sm8650.dtsi | 40 ++++++++++++++++++
6 files changed, 257 insertions(+), 3 deletions(-)
---
base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
change-id: 20260728-topic-sm8x50-next-hdk-i2s-6d63c25eceac
Best regards,
--
Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 1/3] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
2026-08-31 9:13 [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
@ 2026-08-31 9:13 ` Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 2/3] arm64: dts: qcom: sm8550-hdk: " Neil Armstrong
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Neil Armstrong @ 2026-08-31 9:13 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Neil Armstrong
Add the necessary nodes to configure the right I2S interface
to output audio via the DSI HDMI bridge.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 36 ++++++++++++++++++++++++++++-
arch/arm64/boot/dts/qcom/sm8450.dtsi | 40 +++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts b/arch/arm64/boot/dts/qcom/sm8450-hdk.dts
index 4ade28f40cae..9b55d17869b4 100644
--- a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8450-hdk.dts
@@ -665,7 +665,12 @@ lt9611_codec: hdmi-bridge@2b {
vcc-supply = <<9611_3v3>;
pinctrl-names = "default";
- pinctrl-0 = <<9611_irq_pin <9611_rst_pin>;
+ pinctrl-0 = <<9611_irq_pin>,
+ <<9611_rst_pin>,
+ <&i2s0_default_state>,
+ <&audio_mclk0_default_state>;
+
+ #sound-dai-cells = <1>;
ports {
#address-cells = <1>;
@@ -947,6 +952,19 @@ channel@44b {
};
};
+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai@10 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "bclk",
+ "mclk";
+ };
+};
+
&remoteproc_adsp {
status = "okay";
firmware-name = "qcom/sm8450/adsp.mbn";
@@ -1079,6 +1097,22 @@ platform {
sound-dai = <&q6apm>;
};
};
+
+ prim-mi2s-dai-link {
+ link-name = "HDMI Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
+ };
+
+ codec {
+ sound-dai = <<9611_codec 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
};
&swr0 {
diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
index b8793482b181..a5d5eefa4e9e 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -4300,6 +4300,46 @@ qup_uart20_default: qup-uart20-default-state {
pins = "gpio76", "gpio77", "gpio78", "gpio79";
function = "qup20";
};
+
+ audio_mclk0_default_state: audio-mclk0-default-state {
+ pins = "gpio125";
+ function = "pri_mi2s";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ i2s0_default_state: i2s0-default-state {
+ sck-pins {
+ pins = "gpio126";
+ function = "mi2s0_sck";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ data0-pins {
+ pins = "gpio127";
+ function = "mi2s0_data0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data1-pins {
+ pins = "gpio128";
+ function = "mi2s0_data1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ ws-pins {
+ pins = "gpio129";
+ function = "mi2s0_ws";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+ };
};
lpass_tlmm: pinctrl@3440000 {
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 2/3] arm64: dts: qcom: sm8550-hdk: Enable I2S for HDMI
2026-08-31 9:13 [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 1/3] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
@ 2026-08-31 9:13 ` Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 3/3] arm64: dts: qcom: sm8650-hdk: " Neil Armstrong
2026-09-15 8:05 ` [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
3 siblings, 0 replies; 5+ messages in thread
From: Neil Armstrong @ 2026-08-31 9:13 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Neil Armstrong
Add the necessary nodes to configure the right I2S interface
to output audio via the DSI HDMI bridge.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8550-hdk.dts | 36 +++++++++++++++-
arch/arm64/boot/dts/qcom/sm8550.dtsi | 73 +++++++++++++++++++++++++++++++++
2 files changed, 108 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
index 82fb10ed6b6b..88a256499c55 100644
--- a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
@@ -278,6 +278,22 @@ platform {
sound-dai = <&q6apm>;
};
};
+
+ prim-mi2s-dai-link {
+ link-name = "HDMI Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
+ };
+
+ codec {
+ sound-dai = <<9611_codec 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
};
thermal-zones {
@@ -974,9 +990,14 @@ lt9611_codec: hdmi-bridge@2b {
vdd-supply = <<9611_1v2>;
vcc-supply = <<9611_3v3>;
- pinctrl-0 = <<9611_irq_pin>, <<9611_rst_pin>;
+ pinctrl-0 = <<9611_irq_pin>,
+ <<9611_rst_pin>,
+ <&i2s0_default_state>,
+ <&audio_mclk0_default_state>;
pinctrl-names = "default";
+ #sound-dai-cells = <1>;
+
ports {
#address-cells = <1>;
#size-cells = <0>;
@@ -1419,6 +1440,19 @@ pmk8550_sleep_clk: sleep-clk-state {
};
};
+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai@10 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "bclk",
+ "mclk";
+ };
+};
+
&qupv3_id_0 {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index 0e701e709235..94420ed440c5 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -5541,6 +5541,79 @@ data-pins {
drive-strength = <10>;
};
};
+
+ audio_mclk0_default_state: audio-mclk0-default-state {
+ pins = "gpio125";
+ function = "audio_ext_mclk0";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ i2s0_default_state: i2s0-default-state {
+ sck-pins {
+ pins = "gpio126";
+ function = "i2s0_sck";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ data0-pins {
+ pins = "gpio127";
+ function = "i2s0_data0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data1-pins {
+ pins = "gpio128";
+ function = "i2s0_data1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ ws-pins {
+ pins = "gpio129";
+ function = "i2s0_ws";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+ };
+
+ audio_mclk1_default_state: audio-mclk1-default-state {
+ pins = "gpio124";
+ function = "audio_ext_mclk1";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ i2s1_default_state: i2s1-default-state {
+ sck-pins {
+ pins = "gpio121";
+ function = "i2s1_sck";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ data0-pins {
+ pins = "gpio122";
+ function = "i2s1_data0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ ws-pins {
+ pins = "gpio123";
+ function = "i2s1_ws";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+ };
};
sram@14680000 {
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 3/3] arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI
2026-08-31 9:13 [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 1/3] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 2/3] arm64: dts: qcom: sm8550-hdk: " Neil Armstrong
@ 2026-08-31 9:13 ` Neil Armstrong
2026-09-15 8:05 ` [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
3 siblings, 0 replies; 5+ messages in thread
From: Neil Armstrong @ 2026-08-31 9:13 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Neil Armstrong
Add the necessary nodes to configure the right I2S interface
to output audio via the DSI HDMI bridge.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8650-hdk.dts | 35 ++++++++++++++++++++++++++++-
arch/arm64/boot/dts/qcom/sm8650.dtsi | 40 +++++++++++++++++++++++++++++++++
2 files changed, 74 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8650-hdk.dts b/arch/arm64/boot/dts/qcom/sm8650-hdk.dts
index 41d0c7edc433..eb47a75a94bd 100644
--- a/arch/arm64/boot/dts/qcom/sm8650-hdk.dts
+++ b/arch/arm64/boot/dts/qcom/sm8650-hdk.dts
@@ -218,6 +218,22 @@ platform {
sound-dai = <&q6apm>;
};
};
+
+ pri-mi2s-dai-link {
+ link-name = "HDMI Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>;
+ };
+
+ codec {
+ sound-dai = <<9611_codec 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
};
thermal-zones {
@@ -939,6 +955,7 @@ &i2c6 {
lt9611_codec: hdmi-bridge@2b {
compatible = "lontium,lt9611uxc";
reg = <0x2b>;
+ #sound-dai-cells = <1>;
interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>;
@@ -947,7 +964,10 @@ lt9611_codec: hdmi-bridge@2b {
vdd-supply = <<9611_1v2>;
vcc-supply = <<9611_3v3>;
- pinctrl-0 = <<9611_irq_pin>, <<9611_rst_pin>;
+ pinctrl-0 = <<9611_irq_pin>,
+ <<9611_rst_pin>,
+ <&i2s0_default_state>,
+ <&audio_mclk0_default_state>;
pinctrl-names = "default";
ports {
@@ -1348,6 +1368,19 @@ &pon_resin {
status = "okay";
};
+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai@10 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "bclk",
+ "mclk";
+ };
+};
+
&qup_i2c3_data_clk {
/* Use internal I2C pull-up */
bias-pull-up = <2200>;
diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index b679fd8afb7d..4a7b934e15ff 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -6609,6 +6609,46 @@ wake-pins {
};
};
+ audio_mclk0_default_state: audio-mclk0-default-state {
+ pins = "gpio125";
+ function = "audio_ext_mclk0";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ i2s0_default_state: i2s0-default-state {
+ sck-pins {
+ pins = "gpio126";
+ function = "i2s0_sck";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ data0-pins {
+ pins = "gpio127";
+ function = "i2s0_data0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data1-pins {
+ pins = "gpio128";
+ function = "i2s0_data1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ ws-pins {
+ pins = "gpio129";
+ function = "i2s0_ws";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+ };
+
qup_i2c0_data_clk: qup-i2c0-data-clk-state {
/* SDA, SCL */
pins = "gpio32", "gpio33";
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S
2026-08-31 9:13 [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
` (2 preceding siblings ...)
2026-08-31 9:13 ` [PATCH v4 3/3] arm64: dts: qcom: sm8650-hdk: " Neil Armstrong
@ 2026-09-15 8:05 ` Neil Armstrong
3 siblings, 0 replies; 5+ messages in thread
From: Neil Armstrong @ 2026-09-15 8:05 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
Hi,
On 8/31/26 11:13, Neil Armstrong wrote:
> Following [1], this adds the necessary settings to setup
> the I2S link to the HDMI bridge to allow audio playback.
>
> All dependencies are merged v7.3-rc1
>
> [1] https://lore.kernel.org/all/20260724182446.1484894-1-mohammad.rafi.shaik@oss.qualcomm.com/
>
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
> Changes in v4:
> - Rebased on v7.3-rc1
> - Link to v3: https://patch.msgid.link/20260805-topic-sm8x50-next-hdk-i2s-v3-0-07a6483c430f@linaro.org
>
> Changes in v3:
> - Fixed node unit number on patch 3
> - Link to v2: https://patch.msgid.link/20260731-topic-sm8x50-next-hdk-i2s-v2-0-42c1acee5a2d@linaro.org
>
> Changes in v2:
> - Dropped applied patch 1
> - Fixed node unit number
> - Reversed clock names order to respect bindings
> - Link to v1: https://patch.msgid.link/20260728-topic-sm8x50-next-hdk-i2s-v1-0-2393a0fe4aa9@linaro.org
>
> ---
> Neil Armstrong (3):
> arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
> arm64: dts: qcom: sm8550-hdk: Enable I2S for HDMI
> arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI
Gentle ping, this has been out for a while and the related ASoC changes were merged fro v7.3 already.
Thanks,
Neil
>
> arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 36 +++++++++++++++-
> arch/arm64/boot/dts/qcom/sm8450.dtsi | 40 ++++++++++++++++++
> arch/arm64/boot/dts/qcom/sm8550-hdk.dts | 36 +++++++++++++++-
> arch/arm64/boot/dts/qcom/sm8550.dtsi | 73 +++++++++++++++++++++++++++++++++
> arch/arm64/boot/dts/qcom/sm8650-hdk.dts | 35 +++++++++++++++-
> arch/arm64/boot/dts/qcom/sm8650.dtsi | 40 ++++++++++++++++++
> 6 files changed, 257 insertions(+), 3 deletions(-)
> ---
> base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
> change-id: 20260728-topic-sm8x50-next-hdk-i2s-6d63c25eceac
>
> Best regards,
> --
> Neil Armstrong <neil.armstrong@linaro.org>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-15 8:05 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-31 9:13 [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 1/3] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 2/3] arm64: dts: qcom: sm8550-hdk: " Neil Armstrong
2026-08-31 9:13 ` [PATCH v4 3/3] arm64: dts: qcom: sm8650-hdk: " Neil Armstrong
2026-09-15 8:05 ` [PATCH v4 0/3] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
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®