I²S (Inter-IC Sound), pronounced I-squared-S, is an electrical serial bus interface standard used for connecting digital audio devices together. It is used to communicate PCM audio data between integrated circuits in an electronic device. The I²S bus separates clock and serial data signals, resulting in a lower jitter than is typical of communications systems that recover the clock from the data stream. Alternatively I²S is spelled I2S (pronounced I-two-S) or IIS (pronounced I-I-S). Despite the name, it is unrelated to the bidirectional I²C bus.

From Wikipedia.


The IMX6 SoC provides those pins for I2S:

  • TXFS: Transmit Frame Select
  • TXC: Transmit Bit Clock
  • TXD: Transmit Data
  • RXFS: Receive Frame Select
  • RXC: Receive Bit Clock
  • RXD: Receive Data
TXFS TXC TXD RXFS RXC RXD Default core at boot
AUD6 31 27 26 30 29 25 A9 (gpio mode)


Thanks to the I²S bus we can use audio codecs, such as DACs, with our UDOO Neo enabling it via I2S. As an example, we had already set a ESS 9023 DAC card on that bus, so you can use it plug and play.
Note: the RX Pins are not enabled (only out).

To do so, just open the Device Tree Editor and enable the AUD pins. At the next reboot, you will see an audio card installed in ALSA (even if it's not plugged).

# aplay -L
    Default Audio Device
    Direct sample mixing device
    Direct sample snooping device
    Direct hardware device without any conversions
    Hardware device with all software conversions

To play simple audio WAV samples just use aplay.

# aplay -D plughw:CARD=imxaudioes9023,DEV=0 sample.wav
Playing WAVE 'sample.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
This page was last updated on Friday, June 10, 2022 at 9:21 AM.