Driver Design - Freescale Semiconductor i.MX 6Solo Reference Manual

Linux
Table of Contents

Advertisement

S/PDIF Tx Driver
• Two channels.
• Information query.
• The device ID can be determined by using the "aplay -l" utility to list out the
playback audio devices.
For example:
root@freescale ~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: imxspdif [imx-spdif], device 0: IMX SPDIF mxc-spdif-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
The number at the beginning of the MXC_SPDIF line is the
card ID. The string in the square brackets is the card name.
• The ALSA utility provides a common method for user spaces to operate and use
ALSA drivers
#aplay -Dplughw:0,0 audio.wav
The -D parameter of aplay indicates the PCM device with
card ID and PCM device ID: hw:[card id],[pcm device id]
The "iecset" utility provides a common method to set or dump the IEC958 status bits.
#ciecset -c 1

27.2.1 Driver Design

Before S/PDIF playback, the configuration, interrupt, clock and channel registers are
initialized. During S/PDIF playback, the channel status bits are fixed. The DMA and
interrupts are enabled. S/PDIF has 16 TX sample FIFOs on Left and Right channel
respectively. When both FIFOs are empty, an empty interrupt is generated if the empty
interrupt is enabled. If no data are refilled in the 20.8 μs (1/48000), an underrun interrupt
is generated. Overrun is avoided if only 16 sample FIFOs are filled for each channel
every time. If auto re-synchronization is enabled, the hardware checks if the left and right
FIFO are in synchronization. If not, it sets the filling pointer of the right FIFO to be equal
to the filling pointer of the left FIFO and an interrupt is generated.
i.MX 6Solo/6DualLite Linux Reference Manual, Rev. L3.0.35_4.1.0, 09/2013
200
NOTE
NOTE
Freescale Semiconductor, Inc.

Advertisement

Table of Contents
loading

This manual is also suitable for:

I.mx 6duallite

Table of Contents