The purpose of this page is to describe the audio Linux drivers for HDMI Rx/Tx IP.
Table of contents
The Xilinx® LogiCORE™ IP HDMI Transmitter and Receiver cores are soft Xilinx IP core for use with the Xilinx Vivado® Design Suite. These IPs provide easy way of sending/receiving audio over HDMI interface. These IPs requires minimal register programming.
Typical system using HDMI Rx and HDMI Tx:
The following block diagrams shows the data flow between HDMI-Tx/HDMI-Rx and memory.
HDMI Rx receives the data from HDMI source and split the audio from video content.
Xilinx Audio Formatter converts this AES data to PCM data and stores in memory.
HDMI TX gets the AES data from Audio Formatter and embeds it into video.
To form a HDMI audio pipeline the HDMI audio drivers should be used along with Audio Formatter driver and Sound Card driver. HDMI audio drivers cannot be used as standalone driver.
A dummy CPU DAI driver is used here, as there needs to be a CPU DAI to be registered with ASoC framework.
Codec DAI will be part of HDMI Tx and Rx video drivers, as those provide and consume the digital audio data (there is no analog to digital conversion here, compared to I2S).
The driver role is to let audio stream in and out of HDMI Tx and Rx modules respectively.
Additionally, an Audio Clock Recovery block is programmed with ‘N’ and ‘CTS’ values using playback audio parameters in case of playback pipeline.
User has a provision to enable/disable HDMI audio from HDMI video drivers. If HDMI Tx/Rx device tree node has 'xlnx,audio-enabled' entry audio functionality is enabled, else disabled.