blob: 32122d6877a3d3682670eeeaeec43eb91c2e7ffe [file] [log] [blame]
Takashi Iwaifb3df952016-11-10 22:25:28 +01001==============
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +02002Audio Clocking
3==============
4
5This text describes the audio clocking terms in ASoC and digital audio in
Matt LaPlante01dd2fb2007-10-20 01:34:40 +02006general. Note: Audio clocking can be complex!
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +02007
8
9Master Clock
10------------
11
Matt LaPlante01dd2fb2007-10-20 01:34:40 +020012Every audio subsystem is driven by a master clock (sometimes referred to as MCLK
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020013or SYSCLK). This audio master clock can be derived from a number of sources
14(e.g. crystal, PLL, CPU clock) and is responsible for producing the correct
15audio playback and capture sample rates.
16
Mark Brown7c4dbbd2008-01-23 08:41:46 +010017Some master clocks (e.g. PLLs and CPU based clocks) are configurable in that
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020018their speed can be altered by software (depending on the system use and to save
Matt LaPlante01dd2fb2007-10-20 01:34:40 +020019power). Other master clocks are fixed at a set frequency (i.e. crystals).
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020020
21
22DAI Clocks
23----------
24The Digital Audio Interface is usually driven by a Bit Clock (often referred to
25as BCLK). This clock is used to drive the digital audio data across the link
26between the codec and CPU.
27
28The DAI also has a frame clock to signal the start of each audio frame. This
29clock is sometimes referred to as LRC (left right clock) or FRAME. This clock
Liam Girdwooda71a4682006-10-19 20:35:56 +020030runs at exactly the sample rate (LRC = Rate).
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020031
Liam Girdwooda71a4682006-10-19 20:35:56 +020032Bit Clock can be generated as follows:-
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020033
Takashi Iwaifb3df952016-11-10 22:25:28 +010034- BCLK = MCLK / x, or
35- BCLK = LRC * x, or
36- BCLK = LRC * Channels * Word Size
Liam Girdwooda71a4682006-10-19 20:35:56 +020037
Liam Girdwood10b98522007-02-08 17:06:09 +010038This relationship depends on the codec or SoC CPU in particular. In general
Mark Brown7c4dbbd2008-01-23 08:41:46 +010039it is best to configure BCLK to the lowest possible speed (depending on your
40rate, number of channels and word size) to save on power.
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020041
Mark Brown7c4dbbd2008-01-23 08:41:46 +010042It is also desirable to use the codec (if possible) to drive (or master) the
43audio clocks as it usually gives more accurate sample rates than the CPU.
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020044
45
Liam Girdwoodeb1a6af2006-10-06 18:34:51 +020046