* [PATCH 0/4] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S
@ 2026-07-28 8:53 Neil Armstrong
2026-07-28 8:53 ` [PATCH 1/4] ASoC: qcom: sc8280xp: allow setting m2is clocks for SM8[456]50 boards Neil Armstrong
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Neil Armstrong @ 2026-07-28 8:53 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-sound, linux-arm-msm, linux-kernel, devicetree,
Neil Armstrong
Following [1], this adds the necessary settings to setup
the I2S link to the HDMI bridge to allow audio playback.
Depends on:
[1] https://lore.kernel.org/all/20260724182446.1484894-1-mohammad.rafi.shaik@oss.qualcomm.com/
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
Neil Armstrong (4):
ASoC: qcom: sc8280xp: allow setting m2is clocks for SM8[456]50 boards
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 ++++++++++++++++++
sound/soc/qcom/sc8280xp.c | 18 ++++++++
7 files changed, 275 insertions(+), 3 deletions(-)
---
base-commit: e32a7107f6b53deda611de9d79b150f70c7aa74f
change-id: 20260728-topic-sm8x50-next-hdk-i2s-6d63c25eceac
Best regards,
--
Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/4] ASoC: qcom: sc8280xp: allow setting m2is clocks for SM8[456]50 boards
2026-07-28 8:53 [PATCH 0/4] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
@ 2026-07-28 8:53 ` Neil Armstrong
2026-07-28 8:53 ` [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Neil Armstrong @ 2026-07-28 8:53 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-sound, linux-arm-msm, linux-kernel, devicetree,
Neil Armstrong
Extend the sc8280xp card to add settings to setup I2S clock and line
properties.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
sound/soc/qcom/sc8280xp.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c
index 4ccff32a413b..8904a6b59c73 100644
--- a/sound/soc/qcom/sc8280xp.c
+++ b/sound/soc/qcom/sc8280xp.c
@@ -416,6 +416,12 @@ static const struct snd_soc_common sm8450_priv_data = {
.dapm_widgets = sc8280xp_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(sc8280xp_dapm_widgets),
.wcd_jack = true,
+ /* I2S Connected to HDMI */
+ .mi2s_mclk_enable = true,
+ .mi2s_bclk_enable = true,
+ .codec_dai_fmt = SND_SOC_DAIFMT_BC_FC |
+ SND_SOC_DAIFMT_NB_NF |
+ SND_SOC_DAIFMT_I2S,
};
static const struct snd_soc_common sm8550_priv_data = {
@@ -423,6 +429,12 @@ static const struct snd_soc_common sm8550_priv_data = {
.dapm_widgets = sc8280xp_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(sc8280xp_dapm_widgets),
.wcd_jack = true,
+ /* I2S Connected to HDMI */
+ .mi2s_mclk_enable = true,
+ .mi2s_bclk_enable = true,
+ .codec_dai_fmt = SND_SOC_DAIFMT_BC_FC |
+ SND_SOC_DAIFMT_NB_NF |
+ SND_SOC_DAIFMT_I2S,
};
static const struct snd_soc_common sm8650_priv_data = {
@@ -430,6 +442,12 @@ static const struct snd_soc_common sm8650_priv_data = {
.dapm_widgets = sc8280xp_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(sc8280xp_dapm_widgets),
.wcd_jack = true,
+ /* I2S Connected to HDMI */
+ .mi2s_mclk_enable = true,
+ .mi2s_bclk_enable = true,
+ .codec_dai_fmt = SND_SOC_DAIFMT_BC_FC |
+ SND_SOC_DAIFMT_NB_NF |
+ SND_SOC_DAIFMT_I2S,
};
static const struct snd_soc_common sm8750_priv_data = {
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
2026-07-28 8:53 [PATCH 0/4] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
2026-07-28 8:53 ` [PATCH 1/4] ASoC: qcom: sc8280xp: allow setting m2is clocks for SM8[456]50 boards Neil Armstrong
@ 2026-07-28 8:53 ` Neil Armstrong
2026-07-28 9:10 ` sashiko-bot
2026-07-28 8:53 ` [PATCH 3/4] arm64: dts: qcom: sm8550-hdk: " Neil Armstrong
2026-07-28 8:53 ` [PATCH 4/4] arm64: dts: qcom: sm8650-hdk: " Neil Armstrong
3 siblings, 1 reply; 9+ messages in thread
From: Neil Armstrong @ 2026-07-28 8:53 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-sound, linux-arm-msm, linux-kernel, devicetree,
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 b37998cd9a2c..6a6d8346046b 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@16 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk",
+ "bclk";
+ };
+};
+
&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 56cb6e959e4e..879019d48063 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -4313,6 +4313,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 related [flat|nested] 9+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: sm8550-hdk: Enable I2S for HDMI
2026-07-28 8:53 [PATCH 0/4] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
2026-07-28 8:53 ` [PATCH 1/4] ASoC: qcom: sc8280xp: allow setting m2is clocks for SM8[456]50 boards Neil Armstrong
2026-07-28 8:53 ` [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
@ 2026-07-28 8:53 ` Neil Armstrong
2026-07-28 9:05 ` sashiko-bot
2026-07-28 8:53 ` [PATCH 4/4] arm64: dts: qcom: sm8650-hdk: " Neil Armstrong
3 siblings, 1 reply; 9+ messages in thread
From: Neil Armstrong @ 2026-07-28 8:53 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-sound, linux-arm-msm, linux-kernel, devicetree,
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 ee13e6136a82..87792fbf3323 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>;
+ };
+ };
};
wcn7850-pmu {
@@ -888,9 +904,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>;
@@ -1144,6 +1165,19 @@ pmk8550_sleep_clk: sleep-clk-state {
};
};
+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai@16 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk",
+ "bclk";
+ };
+};
+
&qupv3_id_0 {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index 396201905ef2..5a2f88614cbc 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -5526,6 +5526,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 related [flat|nested] 9+ messages in thread
* [PATCH 4/4] arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI
2026-07-28 8:53 [PATCH 0/4] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
` (2 preceding siblings ...)
2026-07-28 8:53 ` [PATCH 3/4] arm64: dts: qcom: sm8550-hdk: " Neil Armstrong
@ 2026-07-28 8:53 ` Neil Armstrong
2026-07-28 9:06 ` sashiko-bot
3 siblings, 1 reply; 9+ messages in thread
From: Neil Armstrong @ 2026-07-28 8:53 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-sound, linux-arm-msm, linux-kernel, devicetree,
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 eabc828c05b4..69327c4857e1 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>;
+ };
+ };
};
vph_pwr: regulator-vph-pwr {
@@ -853,6 +869,7 @@ &i2c6 {
lt9611_codec: hdmi-bridge@2b {
compatible = "lontium,lt9611uxc";
reg = <0x2b>;
+ #sound-dai-cells = <1>;
interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>;
@@ -861,7 +878,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 {
@@ -1072,6 +1092,19 @@ &pon_resin {
status = "okay";
};
+&q6apmbedai {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dai@16 {
+ reg = <PRIMARY_MI2S_RX>;
+ clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+ <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+ clock-names = "mclk",
+ "bclk";
+ };
+};
+
&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 160ead25ecf7..c1beda2442c9 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -6540,6 +6540,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 related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sm8550-hdk: Enable I2S for HDMI
2026-07-28 8:53 ` [PATCH 3/4] arm64: dts: qcom: sm8550-hdk: " Neil Armstrong
@ 2026-07-28 9:05 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-07-28 9:05 UTC (permalink / raw)
To: Neil Armstrong; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The newly added `dai@16` node violates both the Device Tree Specification for unit-address formatting and the `qcom,q6apm-lpass-dais.yaml` schema for the `clock-names` array order.
--
--- Patch [3]: [PATCH 3/4] arm64: dts: qcom: sm8550-hdk: Enable I2S for HDMI ---
commit 2cee2013f7677aa1232b3d7385d6857db3191e25
Author: Neil Armstrong <neil.armstrong@linaro.org>
arm64: dts: qcom: sm8550-hdk: Enable I2S for HDMI
Add the necessary nodes to configure the right I2S interface
to output audio via the DSI HDMI bridge.
> diff --git a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
> index ee13e6136a825..87792fbf3323f 100644
> --- a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts
[ ... ]
> @@ -1144,6 +1165,19 @@ pmk8550_sleep_clk: sleep-clk-state {
> };
> };
>
> +&q6apmbedai {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dai@16 {
> + reg = <PRIMARY_MI2S_RX>;
> + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> + clock-names = "mclk",
> + "bclk";
[Severity: Low]
Should this unit address be formatted as hex (dai@10) instead of decimal to
avoid dtc unit_address_vs_reg warnings, since PRIMARY_MI2S_RX is 16 (0x10)?
Also, does the clock-names array order match the qcom,q6apm-lpass-dais.yaml
schema expectations? It appears the schema expects mclk as the second item,
rather than the first, which might trigger a validation failure during
make dtbs_check.
> + };
> +};
> +
> &qupv3_id_0 {
> status = "okay";
> };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260728-topic-sm8x50-next-hdk-i2s-v1-0-2393a0fe4aa9@linaro.org?part=3
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI
2026-07-28 8:53 ` [PATCH 4/4] arm64: dts: qcom: sm8650-hdk: " Neil Armstrong
@ 2026-07-28 9:06 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-07-28 9:06 UTC (permalink / raw)
To: Neil Armstrong; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Devicetree unit address mismatch in the newly added `dai@16` node.
--
--- Patch [4]: [PATCH 4/4] arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI ---
commit 26369b0d894fd5b99316fa96e29c974138026f04
Author: Neil Armstrong <neil.armstrong@linaro.org>
arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI
This commit adds the necessary nodes to configure the I2S interface
for outputting audio via the DSI HDMI bridge.
> diff --git a/arch/arm64/boot/dts/qcom/sm8650-hdk.dts b/arch/arm64/boot/dts/qcom/sm8650-hdk.dts
> index eabc828c05b4c..69327c4857e1f 100644
> --- a/arch/arm64/boot/dts/qcom/sm8650-hdk.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8650-hdk.dts
[ ... ]
> @@ -1072,6 +1092,19 @@ &pon_resin {
> status = "okay";
> };
>
> +&q6apmbedai {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dai@16 {
> + reg = <PRIMARY_MI2S_RX>;
[Severity: Low]
Should the unit address match the hex value of the reg property?
PRIMARY_MI2S_RX resolves to 16 in decimal, which is 0x10 in hex. Since
devicetree unit addresses are required to be formatted as lowercase
hexadecimal without a leading 0x, shouldn't this node be named dai@10
to avoid a unit_address_mismatch compilation warning?
> + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> + clock-names = "mclk",
> + "bclk";
> + };
> +};
> +
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260728-topic-sm8x50-next-hdk-i2s-v1-0-2393a0fe4aa9@linaro.org?part=4
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
2026-07-28 8:53 ` [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
@ 2026-07-28 9:10 ` sashiko-bot
2026-07-28 9:34 ` Neil Armstrong
0 siblings, 1 reply; 9+ messages in thread
From: sashiko-bot @ 2026-07-28 9:10 UTC (permalink / raw)
To: Neil Armstrong; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Device Tree Misconfiguration - Pinctrl for SoC I2S interface is incorrectly assigned to the external HDMI bridge node.
- [Low] DT Schema Violation - Invalid clock-names order for dai@16.
--
--- Patch [2]: [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI ---
commit bf4f513e744f0c756ca7054358cd98929fb84150
Author: Neil Armstrong <neil.armstrong@linaro.org>
arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
This commit adds the necessary device tree nodes and configurations to enable
the I2S interface for HDMI audio output on the SM8450-HDK board. It configures
the pinctrl for I2S, sets up the q6apmbedai DAI, and adds the primary MI2S DAI
link.
> diff --git a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts b/arch/arm64/boot/dts/qcom/sm8450-hdk.dts
> index b37998cd9a2c3..6a6d8346046bd 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>;
[Severity: Medium]
Should the SoC I2S and MCLK pin states be assigned to the sound node or CPU
DAI instead of the external HDMI bridge node?
By assigning these to the lt9611_codec node, the SoC's audio pin multiplexing
is tied to the lifecycle of the external display bridge. If the HDMI bridge
driver defers or unloads, the SoC I2S pins will revert to their unconfigured
state, which breaks the hardware description paradigm and might cause runtime
audio issues.
> +
> + #sound-dai-cells = <1>;
>
> ports {
> #address-cells = <1>;
[ ... ]
> @@ -947,6 +952,19 @@ channel@44b {
> };
> };
>
> +&q6apmbedai {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dai@16 {
> + reg = <PRIMARY_MI2S_RX>;
> + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
> + <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
> + clock-names = "mclk",
> + "bclk";
[Severity: Low]
Is this clock-names order correct according to the schema?
The qcom,q6apm-lpass-dais.yaml schema requires that if two clocks are
provided, they must be ordered such that index 1 is mclk. Here, bclk is at
index 1, which will cause make dtbs_check validation to fail.
> + };
> +};
> +
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260728-topic-sm8x50-next-hdk-i2s-v1-0-2393a0fe4aa9@linaro.org?part=2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
2026-07-28 9:10 ` sashiko-bot
@ 2026-07-28 9:34 ` Neil Armstrong
0 siblings, 0 replies; 9+ messages in thread
From: Neil Armstrong @ 2026-07-28 9:34 UTC (permalink / raw)
To: sashiko-reviews; +Cc: robh, conor+dt, devicetree
On 7/28/26 11:10, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> - [Medium] Device Tree Misconfiguration - Pinctrl for SoC I2S interface is incorrectly assigned to the external HDMI bridge node.
> - [Low] DT Schema Violation - Invalid clock-names order for dai@16.
> --
>
> --- Patch [2]: [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI ---
> commit bf4f513e744f0c756ca7054358cd98929fb84150
> Author: Neil Armstrong <neil.armstrong@linaro.org>
>
> arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI
>
> This commit adds the necessary device tree nodes and configurations to enable
> the I2S interface for HDMI audio output on the SM8450-HDK board. It configures
> the pinctrl for I2S, sets up the q6apmbedai DAI, and adds the primary MI2S DAI
> link.
>
>> diff --git a/arch/arm64/boot/dts/qcom/sm8450-hdk.dts b/arch/arm64/boot/dts/qcom/sm8450-hdk.dts
>> index b37998cd9a2c3..6a6d8346046bd 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>;
>
> [Severity: Medium]
> Should the SoC I2S and MCLK pin states be assigned to the sound node or CPU
> DAI instead of the external HDMI bridge node?
>
> By assigning these to the lt9611_codec node, the SoC's audio pin multiplexing
> is tied to the lifecycle of the external display bridge. If the HDMI bridge
> driver defers or unloads, the SoC I2S pins will revert to their unconfigured
> state, which breaks the hardware description paradigm and might cause runtime
> audio issues.
No since the HDMI bridge is the effective user of the pins.
>
>> +
>> + #sound-dai-cells = <1>;
>>
>> ports {
>> #address-cells = <1>;
>
> [ ... ]
>
>> @@ -947,6 +952,19 @@ channel@44b {
>> };
>> };
>>
>> +&q6apmbedai {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + dai@16 {
>> + reg = <PRIMARY_MI2S_RX>;
>> + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
>> + <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
>> + clock-names = "mclk",
>> + "bclk";
>
> [Severity: Low]
> Is this clock-names order correct according to the schema?
>
> The qcom,q6apm-lpass-dais.yaml schema requires that if two clocks are
> provided, they must be ordered such that index 1 is mclk. Here, bclk is at
> index 1, which will cause make dtbs_check validation to fail.
Good point, I'll fix this
>
>> + };
>> +};
>> +
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-07-28 9:34 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 8:53 [PATCH 0/4] ASoC: qcom: allow SM[456]50 HDK board to play audio via I2S Neil Armstrong
2026-07-28 8:53 ` [PATCH 1/4] ASoC: qcom: sc8280xp: allow setting m2is clocks for SM8[456]50 boards Neil Armstrong
2026-07-28 8:53 ` [PATCH 2/4] arm64: dts: qcom: sm8450-hdk: Enable I2S for HDMI Neil Armstrong
2026-07-28 9:10 ` sashiko-bot
2026-07-28 9:34 ` Neil Armstrong
2026-07-28 8:53 ` [PATCH 3/4] arm64: dts: qcom: sm8550-hdk: " Neil Armstrong
2026-07-28 9:05 ` sashiko-bot
2026-07-28 8:53 ` [PATCH 4/4] arm64: dts: qcom: sm8650-hdk: " Neil Armstrong
2026-07-28 9:06 ` sashiko-bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.