Hdmi audio output

Hi,

I have a Verdin iMXM8M Plus connected to a Yavia carrier board.

  1. Is the HDMI audio enabled by default?
  2. What is the /dev device that represents the HDMI audio?

Thank you.

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

  1. On the Verdin iMX8M Plus, HDMI audio is not enabled by default. You would need to configure the device tree to enable HDMI audio output. This involves enabling the HDMI audio node in the device tree and ensuring the proper audio codec is selected for the HDMI interface.

  2. For HDMI audio on Linux, the device typically appears under the ALSA sound interface rather than directly as a /dev device. Once enabled and properly configured, you can list the available sound cards using the cat /proc/asound/cards command to verify if the HDMI audio output is recognized. The HDMI audio interface might not appear as a traditional /dev/snd device but is accessible through the ALSA API and tools.

To enable HDMI audio on your Verdin iMX8M Plus, you would need to modify the device tree used by your system. This process involves identifying the correct HDMI audio node in the device tree source and enabling it, which might require setting the status property to “okay” and ensuring that the correct audio format settings are applied. After recompiling and deploying the updated device tree, the system should recognize the HDMI audio output, assuming the rest of your software stack (like ALSA and any user-space audio management utilities) is correctly configured to handle HDMI audio output.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

Audio (Linux) | Toradex Developer Center.

Is the i2s digital audio enabled by default? What device would it appear on if HDMI audio is also enabled.

I see the WM8904CGEFL chip used in the Dahlia board and the NAU88C22YG chip used in the Development board. Is there a basic I2S driver that could be used with a bare-bones DAC like the PCM1502 in a setting where advanced controls are not needed?

Hey @borco,

From the imx8mp-verdin.dsti, we can see the the default status for sound-hdmi is disabled. And i did not see this enabled on the …yavia.dtsi, so you will have to enable this via device tree change/overlay.

     sound_hdmi: sound-hdmi {
95           compatible = "fsl,imx-audio-hdmi";
   1         model = "audio-hdmi";
   2         audio-cpu = <&aud2htx>;
   3         hdmi-out;
   4         constraint-rate = <44100>,
   5                 <88200>,
   6                 <176400>,
   7                 <32000>,
   8                 <48000>,
   9                 <96000>,
  10                 <192000>;
  11         status = "disabled";
  12     };

Typically sound is managed via ALSA, but i believe there will be something that shows up in

/dev/snd. Here is our developer guide.

-Eric

Hey @daf,

Usually We like to keep 1 topic/owner per post. It helps with when customers use the search bar to find previous solutions.

But I can answer here too:

The audio codec is enabled when you include the device-tree for the carrier board…
I.e: imx8mp-verdin-dahlia.dtsi

6   / {
  1     sound {
  2         compatible = "simple-audio-card";
  3         simple-audio-card,bitclock-master = <&codec_dai>;
  4         simple-audio-card,format = "i2s";
  5         simple-audio-card,frame-master = <&codec_dai>;
  6         simple-audio-card,mclk-fs = <256>;
  7         simple-audio-card,name = "imx8mp-wm8904";
  8         simple-audio-card,routing =
  9             "Headphone Jack", "HPOUTL",
 10             "Headphone Jack", "HPOUTR",
 11             "IN2L", "Line In Jack",
 12             "IN2R", "Line In Jack",
 13             "Headphone Jack", "MICBIAS",
 14             "IN1L", "Headphone Jack";
 15         simple-audio-card,widgets =
 16             "Microphone", "Headphone Jack",
 17             "Headphone", "Headphone Jack",
 18             "Line", "Line In Jack";
 19
 20         codec_dai: simple-audio-card,codec {
 21             clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI1_MCLK1>;
 22             sound-dai = <&wm8904_1a>;
 23         };

great. thank you @eric.tx