HDMI audio
The High Definition Multimedia Interface (HDMI) driver supports the on-chip DesignWare HDMI hardware module, which provides the capability to transfer uncompressed video, audio, and data using a single cable. HDMI audio is only supported when using supported CEA-861-E video modes. If you are using non-CEA video modes, the HDMI audio clock will not be set up correctly and you cannot use HDMI audio. This is a limitation of the i.MX6-integrated HDMI transmitter. The ConnectCore 6 SBC has an HDMI transmitter port connected to I2C3.
Kernel configuration
You can manage the HDMI audio driver support through the kernel configuration option:
- SoC Audio support for IMX - HDMI (CONFIG_SND_SOC_IMX_HDMI)
This option is enabled as built-in on the default ConnectCore 6 SBC kernel configuration file.
Platform driver mapping
The HDMI drivers for the i.MX6 are located at:
| File | Description |
|---|---|
| drivers/mfd/mxc-hdmi-core.c | HDMI core driver |
| sound/soc/fsl/fsl_hdmi.c | HDMI Audio SoC DAI driver |
| sound/soc/fsl/imx-hdmi-dma.c | HDMI Audio SoC platform DMA driver |
| sound/soc/fsl/imx_hdmi.c | HDMI Audio SoC machine driver |
Device tree bindings and customization
There are no device tree bindings for HDMI audio.
The HDMI audio interface is defined in the i.MX6 CPU and ConnectCore 6 SBC device tree files.
Definition of the HDMI interface
Common i.MX6 device tree
hdmi_core: hdmi_core@00120000 {
compatible = "fsl,imx6q-hdmi-core";
reg = <0x00120000 0x9000>;
clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
<&clks IMX6QDL_CLK_HDMI_IAHB>,
<&clks IMX6QDL_CLK_HSI_TX>;
clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
status = "disabled";
};
hdmi_audio: hdmi_audio@00120000 {
compatible = "fsl,imx6q-hdmi-audio";
clocks = <&clks IMX6QDL_CLK_HDMI_ISFR>,
<&clks IMX6QDL_CLK_HDMI_IAHB>,
<&clks IMX6QDL_CLK_HSI_TX>;
clock-names = "hdmi_isfr", "hdmi_iahb", "mipi_core";
dmas = <&sdma 2 24 0>;
dma-names = "tx";
status = "disabled";
};
IOMUX configuration
The HDMI uses dedicated pins. No IOMUX configuration is necessary.
Enabling HDMI audio
ConnectCore 6 SBC device tree
sound-hdmi {
compatible = "fsl,imx6q-audio-hdmi",
"fsl,imx-audio-hdmi";
model = "imx-audio-hdmi";
hdmi-controller = <&hdmi_audio>;
};
[...]
&hdmi_audio {
status = "okay";
};
&hdmi_core {
ipu_id = <1>;
disp_id = <1>;
status = "okay";
};
HDMI transmitter port on I2C3
ConnectCore 6 SBC device tree
&i2c3 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3>;
status = "okay";
hdmi: edid@50 {
compatible = "fsl,imx6-hdmi-i2c";
reg = <0x50>;
};
[...]
};
Note This section covers HDMI audio. For HDMI video interface documentation, see HDMI video.
