[PATCH v3 3/3] arm64: dts: qcom: sm8650-hdk: Enable I2S for HDMI
Neil Armstrong <[email protected]> Wed, 05 Aug 2026 09:48:31 +0200
| Newsgroups | org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Add the necessary nodes to configure the right I2S interface to output audio via the DSI HDMI bridge. Signed-off-by: Neil Armstrong <[email protected]> --- 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..5930eb242a61 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@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 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