csphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget&/translations/zh_CN/sound/soc/clockingmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/zh_TW/sound/soc/clockingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/it_IT/sound/soc/clockingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ja_JP/sound/soc/clockingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ko_KR/sound/soc/clockingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/pt_BR/sound/soc/clockingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/sp_SP/sound/soc/clockingmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hAudio Clockingh]hAudio Clocking}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhh@/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking.rsthKubh paragraph)}(hwThis text describes the audio clocking terms in ASoC and digital audio in general. Note: Audio clocking can be complex!h]hwThis text describes the audio clocking terms in ASoC and digital audio in general. Note: Audio clocking can be complex!}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Master Clockh]h Master Clock}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hXEvery audio subsystem is driven by a master clock (sometimes referred to as MCLK or SYSCLK). This audio master clock can be derived from a number of sources (e.g. crystal, PLL, CPU clock) and is responsible for producing the correct audio playback and capture sample rates.h]hXEvery audio subsystem is driven by a master clock (sometimes referred to as MCLK or SYSCLK). This audio master clock can be derived from a number of sources (e.g. crystal, PLL, CPU clock) and is responsible for producing the correct audio playback and capture sample rates.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hSome master clocks (e.g. PLLs and CPU based clocks) are configurable in that their speed can be altered by software (depending on the system use and to save power). Other master clocks are fixed at a set frequency (i.e. crystals).h]hSome master clocks (e.g. PLLs and CPU based clocks) are configurable in that their speed can be altered by software (depending on the system use and to save power). Other master clocks are fixed at a set frequency (i.e. crystals).}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h] master-clockah ]h"] master clockah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h DAI Clocksh]h DAI Clocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe Digital Audio Interface is usually driven by a Bit Clock (often referred to as BCLK). This clock is used to drive the digital audio data across the link between the codec and CPU.h]hThe Digital Audio Interface is usually driven by a Bit Clock (often referred to as BCLK). This clock is used to drive the digital audio data across the link between the codec and CPU.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hThe DAI also has a frame clock to signal the start of each audio frame. This clock is sometimes referred to as LRC (left right clock) or FRAME. This clock runs at exactly the sample rate (LRC = Rate).h]hThe DAI also has a frame clock to signal the start of each audio frame. This clock is sometimes referred to as LRC (left right clock) or FRAME. This clock runs at exactly the sample rate (LRC = Rate).}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h'Bit Clock can be generated as follows:-h]h'Bit Clock can be generated as follows:-}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjhhubh bullet_list)}(hhh](h list_item)}(hBCLK = MCLK / x, orh]h)}(hjTh]hBCLK = MCLK / x, or}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjRubah}(h]h ]h"]h$]h&]uh1jPhjMhhhhhNubjQ)}(hBCLK = LRC * x, orh]h)}(hjkh]hBCLK = LRC * x, or}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjiubah}(h]h ]h"]h$]h&]uh1jPhjMhhhhhNubjQ)}(h"BCLK = LRC * Channels * Word Size h]h)}(h!BCLK = LRC * Channels * Word Sizeh]h!BCLK = LRC * Channels * Word Size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jPhjMhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jKhhhK"hjhhubh)}(hThis relationship depends on the codec or SoC CPU in particular. In general it is best to configure BCLK to the lowest possible speed (depending on your rate, number of channels and word size) to save on power.h]hThis relationship depends on the codec or SoC CPU in particular. In general it is best to configure BCLK to the lowest possible speed (depending on your rate, number of channels and word size) to save on power.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjhhubh)}(hIt is also desirable to use the codec (if possible) to drive (or master) the audio clocks as it usually gives more accurate sample rates than the CPU.h]hIt is also desirable to use the codec (if possible) to drive (or master) the audio clocks as it usually gives more accurate sample rates than the CPU.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjhhubeh}(h] dai-clocksah ]h"] dai clocksah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hASoC provided clock APIsh]hASoC provided clock APIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK.ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single#snd_soc_dai_set_sysclk (C function)c.snd_soc_dai_set_sysclkhNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h\int snd_soc_dai_set_sysclk (struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir)h]hdesc_signature_line)}(h[int snd_soc_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir)h](hdesc_sig_keyword_type)}(hinth]hint}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chKubhdesc_sig_space)}(h h]h }(hj hhhNhNubah}(h]h ]wah"]h$]h&]uh1j hjhhhjhKubh desc_name)}(hsnd_soc_dai_set_sysclkh]h desc_sig_name)}(hsnd_soc_dai_set_sysclkh]hsnd_soc_dai_set_sysclk}(hj"hhhNhNubah}(h]h ]nah"]h$]h&]uh1j hjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjhhhjhKubhdesc_parameterlist)}(hA(struct snd_soc_dai *dai, int clk_id, unsigned int freq, int dir)h](hdesc_parameter)}(hstruct snd_soc_dai *daih](hdesc_sig_keyword)}(hstructh]hstruct}(hjIhhhNhNubah}(h]h ]kah"]h$]h&]uh1jGhjCubj )}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubh)}(hhh]j!)}(h snd_soc_daih]h snd_soc_dai}(hjihhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjfubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjkmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj$sbc.snd_soc_dai_set_sysclkasbuh1hhjCubj )}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjCubj!)}(hdaih]hdai}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjCubeh}(h]h ]h"]h$]h&]noemphj9j:uh1jAhj=ubjB)}(h int clk_idh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj!)}(hclk_idh]hclk_id}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphj9j:uh1jAhj=ubjB)}(hunsigned int freqh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj!)}(hfreqh]hfreq}(hj7hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphj9j:uh1jAhj=ubjB)}(hint dirh](j)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj )}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj!)}(hdirh]hdir}(hjlhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjLubeh}(h]h ]h"]h$]h&]noemphj9j:uh1jAhj=ubeh}(h]h ]h"]h$]h&]j9j:uh1j;hjhhhjhKubeh}(h]h ]h"]h$]h&]j9j: add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(h%configure DAI system or master clock.h]h%configure DAI system or master clock.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j~functioneh"]h$]h&]domainj~objtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhjhNhNubh container)}(hX'**Parameters** ``struct snd_soc_dai *dai`` DAI ``int clk_id`` DAI specific clock ID ``unsigned int freq`` new clock frequency in Hz ``int dir`` new clock direction (SND_SOC_CLOCK_IN or SND_SOC_CLOCK_OUT) **Description** Configures the DAI master (MCLK) or system (SYSCLK) clocking.h](h)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chK"hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h ``struct snd_soc_dai *dai`` DAI h](hterm)}(h``struct snd_soc_dai *dai``h]hliteral)}(hjh]hstruct snd_soc_dai *dai}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chKhjubh definition)}(hhh]h)}(hDAIh]hDAI}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h%``int clk_id`` DAI specific clock ID h](j)}(h``int clk_id``h]j)}(hj.h]h int clk_id}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chK hj(ubj )}(hhh]h)}(hDAI specific clock IDh]hDAI specific clock ID}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChK hjDubah}(h]h ]h"]h$]h&]uh1j hj(ubeh}(h]h ]h"]h$]h&]uh1jhjChK hjubj)}(h0``unsigned int freq`` new clock frequency in Hz h](j)}(h``unsigned int freq``h]j)}(hjgh]hunsigned int freq}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chK!hjaubj )}(hhh]h)}(hnew clock frequency in Hzh]hnew clock frequency in Hz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hK!hj}ubah}(h]h ]h"]h$]h&]uh1j hjaubeh}(h]h ]h"]h$]h&]uh1jhj|hK!hjubj)}(hH``int dir`` new clock direction (SND_SOC_CLOCK_IN or SND_SOC_CLOCK_OUT) h](j)}(h ``int dir``h]j)}(hjh]hint dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chK"hjubj )}(hhh]h)}(h;new clock direction (SND_SOC_CLOCK_IN or SND_SOC_CLOCK_OUT)h]h;new clock direction (SND_SOC_CLOCK_IN or SND_SOC_CLOCK_OUT)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK"hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjhK"hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chK$hjubh)}(h=Configures the DAI master (MCLK) or system (SYSCLK) clocking.h]h=Configures the DAI master (MCLK) or system (SYSCLK) clocking.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:48: ./sound/soc/soc-dai.chK#hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#snd_soc_dai_set_clkdiv (C function)c.snd_soc_dai_set_clkdivhNtauh1jhjhhhNhNubj)}(hhh](j)}(hIint snd_soc_dai_set_clkdiv (struct snd_soc_dai *dai, int div_id, int div)h]j)}(hHint snd_soc_dai_set_clkdiv(struct snd_soc_dai *dai, int div_id, int div)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:51: ./sound/soc/soc-dai.chK7ubj )}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj.hK7ubj)}(hsnd_soc_dai_set_clkdivh]j!)}(hsnd_soc_dai_set_clkdivh]hsnd_soc_dai_set_clkdiv}(hjAhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj=ubah}(h]h ](j4j5eh"]h$]h&]j9j:uh1jhjhhhj.hK7ubj<)}(h.(struct snd_soc_dai *dai, int div_id, int div)h](jB)}(hstruct snd_soc_dai *daih](jH)}(hjKh]hstruct}(hj]hhhNhNubah}(h]h ]jTah"]h$]h&]uh1jGhjYubj )}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j!)}(h snd_soc_daih]h snd_soc_dai}(hj{hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjxubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj}modnameN classnameNjj)}j]j)}jjCsbc.snd_soc_dai_set_clkdivasbuh1hhjYubj )}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj!)}(hdaih]hdai}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjYubeh}(h]h ]h"]h$]h&]noemphj9j:uh1jAhjUubjB)}(h int div_idh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj!)}(hdiv_idh]hdiv_id}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphj9j:uh1jAhjUubjB)}(hint divh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj!)}(hdivh]hdiv}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphj9j:uh1jAhjUubeh}(h]h ]h"]h$]h&]j9j:uh1j;hjhhhj.hK7ubeh}(h]h ]h"]h$]h&]j9j:juh1jjjhjhhhj.hK7ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj.hK7hjhhubj)}(hhh]h)}(hconfigure DAI clock dividers.h]hconfigure DAI clock dividers.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:51: ./sound/soc/soc-dai.chK7hjGhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj.hK7ubeh}(h]h ](j~functioneh"]h$]h&]jj~jjbjjbjjjuh1jhhhjhNhNubj)}(hXe**Parameters** ``struct snd_soc_dai *dai`` DAI ``int div_id`` DAI specific clock divider ID ``int div`` new clock divisor. **Description** Configures the clock dividers. This is used to derive the best DAI bit and frame clocks from the system or master clock. It's best to set the DAI bit and frame clocks as low as possible to save system power.h](h)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:51: ./sound/soc/soc-dai.chK;hjfubj)}(hhh](j)}(h ``struct snd_soc_dai *dai`` DAI h](j)}(h``struct snd_soc_dai *dai``h]j)}(hjh]hstruct snd_soc_dai *dai}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:51: ./sound/soc/soc-dai.chK8hjubj )}(hhh]h)}(hDAIh]hDAI}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hjubj)}(h-``int div_id`` DAI specific clock divider ID h](j)}(h``int div_id``h]j)}(hjh]h int div_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:51: ./sound/soc/soc-dai.chK9hjubj )}(hhh]h)}(hDAI specific clock divider IDh]hDAI specific clock divider ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK9hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjhK9hjubj)}(h``int div`` new clock divisor. h](j)}(h ``int div``h]j)}(hjh]hint div}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:51: ./sound/soc/soc-dai.chK:hjubj )}(hhh]h)}(hnew clock divisor.h]hnew clock divisor.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK:hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjhK:hjubeh}(h]h ]h"]h$]h&]uh1jhjfubh)}(h**Description**h]j)}(hj8h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:51: ./sound/soc/soc-dai.chK ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:57: ./sound/soc/soc-dai.chKjhj: ubj )}(hhh]h)}(hDAIh]hDAI}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU hKjhjV ubah}(h]h ]h"]h$]h&]uh1j hj: ubeh}(h]h ]h"]h$]h&]uh1jhjU hKjhj7 ubj)}(h5``unsigned int ratio`` Ratio of BCLK to Sample rate. h](j)}(h``unsigned int ratio``h]j)}(hjy h]hunsigned int ratio}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw ubah}(h]h ]h"]h$]h&]uh1jhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:57: ./sound/soc/soc-dai.chKkhjs ubj )}(hhh]h)}(hRatio of BCLK to Sample rate.h]hRatio of BCLK to Sample rate.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKkhj ubah}(h]h ]h"]h$]h&]uh1j hjs ubeh}(h]h ]h"]h$]h&]uh1jhj hKkhj7 ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:57: ./sound/soc/soc-dai.chKmhj ubh)}(h:Configures the DAI for a preset BCLK to sample rate ratio.h]h:Configures the DAI for a preset BCLK to sample rate ratio.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhV/var/lib/git/docbuild/linux/Documentation/sound/soc/clocking:57: ./sound/soc/soc-dai.chKlhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]asoc-provided-clock-apisah ]h"]asoc provided clock apisah$]h&]uh1hhhhhhhhK.ubeh}(h]audio-clockingah ]h"]audio clockingah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j j j j jjj j u nametypes}(j j jj uh}(j hj hjjj jjjjjjpjuj j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.