mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-05 05:15:23 +02:00

[ Upstream commit 8c716f80dfe8cd6ed9a2696847cea1affeeff6ff ]
The HDMI bridge chip fails to generate an audio source due to the SAI5
master clock (MCLK) direction not being set to output. This prevents proper
clocking of the HDMI audio interface.
Add the `fsl,sai-mclk-direction-output` property to the SAI5 node to ensure
the MCLK is driven by the SoC, resolving the HDMI sound issue.
Fixes: 8ad7d14d99
("arm64: dts: imx8mm-beacon: Add HDMI video with sound")
Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
152 lines
2.8 KiB
Plaintext
152 lines
2.8 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/*
|
|
* Copyright 2020 Compass Electronics Group, LLC
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include "imx8mm.dtsi"
|
|
#include "imx8mm-beacon-som.dtsi"
|
|
#include "imx8mm-beacon-baseboard.dtsi"
|
|
|
|
/ {
|
|
model = "Beacon EmbeddedWorks i.MX8M Mini Development Kit";
|
|
compatible = "beacon,imx8mm-beacon-kit", "fsl,imx8mm";
|
|
|
|
chosen {
|
|
stdout-path = &uart2;
|
|
};
|
|
|
|
connector {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi_connector_in: endpoint {
|
|
remote-endpoint = <&adv7535_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
reg_hdmi: regulator-hdmi-dvdd {
|
|
compatible = "regulator-fixed";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_reg_hdmi>;
|
|
regulator-name = "hdmi_pwr_en";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
startup-delay-us = <70000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
sound-hdmi {
|
|
compatible = "simple-audio-card";
|
|
simple-audio-card,name = "sound-hdmi";
|
|
simple-audio-card,format = "i2s";
|
|
|
|
simple-audio-card,cpu {
|
|
sound-dai = <&sai5>;
|
|
system-clock-direction-out;
|
|
};
|
|
|
|
simple-audio-card,codec {
|
|
sound-dai = <&adv_bridge>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c2 {
|
|
adv_bridge: hdmi@3d {
|
|
compatible = "adi,adv7535";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_hdmi_bridge>;
|
|
reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
|
|
reg-names = "main", "cec", "edid", "packet";
|
|
adi,dsi-lanes = <4>;
|
|
avdd-supply = <®_hdmi>;
|
|
a2vdd-supply = <®_hdmi>;
|
|
dvdd-supply = <®_hdmi>;
|
|
pvdd-supply = <®_hdmi>;
|
|
v1p2-supply = <®_hdmi>;
|
|
v3p3-supply = <®_hdmi>;
|
|
interrupt-parent = <&gpio1>;
|
|
interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
|
|
#sound-dai-cells = <0>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
adv7535_in: endpoint {
|
|
remote-endpoint = <&dsi_out>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
adv7535_out: endpoint {
|
|
remote-endpoint = <&hdmi_connector_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&lcdif {
|
|
status = "okay";
|
|
};
|
|
|
|
&mipi_dsi {
|
|
samsung,esc-clock-frequency = <20000000>;
|
|
status = "okay";
|
|
|
|
ports {
|
|
port@1 {
|
|
reg = <1>;
|
|
|
|
dsi_out: endpoint {
|
|
remote-endpoint = <&adv7535_in>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&sai5 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_sai5>;
|
|
assigned-clocks = <&clk IMX8MM_CLK_SAI5>;
|
|
assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
|
|
assigned-clock-rates = <24576000>;
|
|
#sound-dai-cells = <0>;
|
|
fsl,sai-mclk-direction-output;
|
|
status = "okay";
|
|
};
|
|
|
|
&iomuxc {
|
|
pinctrl_hdmi_bridge: hdmibridgegrp {
|
|
fsl,pins = <
|
|
MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 0x19
|
|
>;
|
|
};
|
|
|
|
pinctrl_reg_hdmi: reghdmigrp {
|
|
fsl,pins = <
|
|
MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11 0x16
|
|
>;
|
|
};
|
|
|
|
pinctrl_sai5: sai5grp {
|
|
fsl,pins = <
|
|
MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0 0xd6
|
|
MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK 0xd6
|
|
MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC 0xd6
|
|
>;
|
|
};
|
|
};
|