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.