summaryrefslogtreecommitdiffstats
path: root/Documentation/sound/soc
diff options
context:
space:
mode:
authorTakashi Iwai2016-11-10 22:17:40 +0100
committerTakashi Iwai2016-11-11 17:33:16 +0100
commite732d1bcd452a040a18242d555996703465c1ca7 (patch)
tree025657f7362b67f651ca0807ffd80f425609264e /Documentation/sound/soc
parentASoC: doc: ReSTize codec.txt (diff)
downloadkernel-qcow2-linux-e732d1bcd452a040a18242d555996703465c1ca7.tar.gz
kernel-qcow2-linux-e732d1bcd452a040a18242d555996703465c1ca7.tar.xz
kernel-qcow2-linux-e732d1bcd452a040a18242d555996703465c1ca7.zip
ASoC: doc: ReSTize DAI.txt
A simple conversion from a plain text file with slight reformatting / corrections. The file name was changed to lower letters to align with others. Acked-by: Mark Brown <broonie@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'Documentation/sound/soc')
-rw-r--r--Documentation/sound/soc/dai.rst64
-rw-r--r--Documentation/sound/soc/index.rst1
2 files changed, 65 insertions, 0 deletions
diff --git a/Documentation/sound/soc/dai.rst b/Documentation/sound/soc/dai.rst
new file mode 100644
index 000000000000..55820e51708f
--- /dev/null
+++ b/Documentation/sound/soc/dai.rst
@@ -0,0 +1,64 @@
+==================================
+ASoC Digital Audio Interface (DAI)
+==================================
+
+ASoC currently supports the three main Digital Audio Interfaces (DAI) found on
+SoC controllers and portable audio CODECs today, namely AC97, I2S and PCM.
+
+
+AC97
+====
+
+AC97 is a five wire interface commonly found on many PC sound cards. It is
+now also popular in many portable devices. This DAI has a reset line and time
+multiplexes its data on its SDATA_OUT (playback) and SDATA_IN (capture) lines.
+The bit clock (BCLK) is always driven by the CODEC (usually 12.288MHz) and the
+frame (FRAME) (usually 48kHz) is always driven by the controller. Each AC97
+frame is 21uS long and is divided into 13 time slots.
+
+The AC97 specification can be found at :
+http://www.intel.com/p/en_US/business/design
+
+
+I2S
+===
+
+I2S is a common 4 wire DAI used in HiFi, STB and portable devices. The Tx and
+Rx lines are used for audio transmission, whilst the bit clock (BCLK) and
+left/right clock (LRC) synchronise the link. I2S is flexible in that either the
+controller or CODEC can drive (master) the BCLK and LRC clock lines. Bit clock
+usually varies depending on the sample rate and the master system clock
+(SYSCLK). LRCLK is the same as the sample rate. A few devices support separate
+ADC and DAC LRCLKs, this allows for simultaneous capture and playback at
+different sample rates.
+
+I2S has several different operating modes:-
+
+I2S
+ MSB is transmitted on the falling edge of the first BCLK after LRC
+ transition.
+
+Left Justified
+ MSB is transmitted on transition of LRC.
+
+Right Justified
+ MSB is transmitted sample size BCLKs before LRC transition.
+
+PCM
+===
+
+PCM is another 4 wire interface, very similar to I2S, which can support a more
+flexible protocol. It has bit clock (BCLK) and sync (SYNC) lines that are used
+to synchronise the link whilst the Tx and Rx lines are used to transmit and
+receive the audio data. Bit clock usually varies depending on sample rate
+whilst sync runs at the sample rate. PCM also supports Time Division
+Multiplexing (TDM) in that several devices can use the bus simultaneously (this
+is sometimes referred to as network mode).
+
+Common PCM operating modes:-
+
+Mode A
+ MSB is transmitted on falling edge of first BCLK after FRAME/SYNC.
+
+Mode B
+ MSB is transmitted on rising edge of FRAME/SYNC.
diff --git a/Documentation/sound/soc/index.rst b/Documentation/sound/soc/index.rst
index a2e023c91df2..aea7ae7e5aad 100644
--- a/Documentation/sound/soc/index.rst
+++ b/Documentation/sound/soc/index.rst
@@ -9,3 +9,4 @@ The documentation is spilt into the following sections:-
overview
codec
+ dai