0001 ==================================
0002 ASoC Digital Audio Interface (DAI)
0003 ==================================
0004
0005 ASoC currently supports the three main Digital Audio Interfaces (DAI) found on
0006 SoC controllers and portable audio CODECs today, namely AC97, I2S and PCM.
0007
0008
0009 AC97
0010 ====
0011
0012 AC97 is a five wire interface commonly found on many PC sound cards. It is
0013 now also popular in many portable devices. This DAI has a RESET line and time
0014 multiplexes its data on its SDATA_OUT (playback) and SDATA_IN (capture) lines.
0015 The bit clock (BCLK) is always driven by the CODEC (usually 12.288MHz) and the
0016 frame (FRAME) (usually 48kHz) is always driven by the controller. Each AC97
0017 frame is 21uS long and is divided into 13 time slots.
0018
0019 The AC97 specification can be found at :
0020 https://www.intel.com/p/en_US/business/design
0021
0022
0023 I2S
0024 ===
0025
0026 I2S is a common 4 wire DAI used in HiFi, STB and portable devices. The Tx and
0027 Rx lines are used for audio transmission, while the bit clock (BCLK) and
0028 left/right clock (LRC) synchronise the link. I2S is flexible in that either the
0029 controller or CODEC can drive (master) the BCLK and LRC clock lines. Bit clock
0030 usually varies depending on the sample rate and the master system clock
0031 (SYSCLK). LRCLK is the same as the sample rate. A few devices support separate
0032 ADC and DAC LRCLKs, this allows for simultaneous capture and playback at
0033 different sample rates.
0034
0035 I2S has several different operating modes:-
0036
0037 I2S
0038 MSB is transmitted on the falling edge of the first BCLK after LRC
0039 transition.
0040
0041 Left Justified
0042 MSB is transmitted on transition of LRC.
0043
0044 Right Justified
0045 MSB is transmitted sample size BCLKs before LRC transition.
0046
0047 PCM
0048 ===
0049
0050 PCM is another 4 wire interface, very similar to I2S, which can support a more
0051 flexible protocol. It has bit clock (BCLK) and sync (SYNC) lines that are used
0052 to synchronise the link while the Tx and Rx lines are used to transmit and
0053 receive the audio data. Bit clock usually varies depending on sample rate
0054 while sync runs at the sample rate. PCM also supports Time Division
0055 Multiplexing (TDM) in that several devices can use the bus simultaneously (this
0056 is sometimes referred to as network mode).
0057
0058 Common PCM operating modes:-
0059
0060 Mode A
0061 MSB is transmitted on falling edge of first BCLK after FRAME/SYNC.
0062
0063 Mode B
0064 MSB is transmitted on rising edge of FRAME/SYNC.