You are here: Digi Embedded Yocto > System development > Linux v3.14 Board Support Package > Devices and interfaces > Audio > HDMI audio

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:

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.

 

© 2017 Digi International Inc. All rights reserved.
HDMI audio updated on 24 April 2017 11:48:26 PM