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 Plus 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 Plus 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 CPU and SBC device tree files.
Define the HDMI interface
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 25 0>; dma-names = "tx"; status = "disabled"; };
Configure IOMUX
The HDMI uses dedicated pins. No IOMUX configuration is necessary.
Enable HDMI audio
ConnectCore 6 Plus SBC device tree
sound_hdmi: 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 Plus SBC device tree
&i2c3 { hdmi: edid@50 { compatible = "fsl,imx6-hdmi-i2c"; reg = <0x50>; }; [...] };
Note This section covers HDMI audio. For HDMI video interface documentation, see HDMI video.