MCUXpresso_MIMXRT1021xxxxx/docs/MCUXpresso SDK API Referenc.../a00061.html

4702 lines
273 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: SAI Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a00061.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">SAI Driver<div class="ingroups"><a class="el" href="a00277.html">SAI: Serial Audio Interface</a></div></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:a00450"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00450">_sai_config</a></td></tr>
<tr class="memdesc:a00450"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI user configuration structure. <a href="a00061.html#a00450">More...</a><br/></td></tr>
<tr class="separator:a00450"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00457"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00457">_sai_transfer_format</a></td></tr>
<tr class="memdesc:a00457"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai transfer format <a href="a00061.html#a00457">More...</a><br/></td></tr>
<tr class="separator:a00457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00451"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00451">_sai_fifo</a></td></tr>
<tr class="memdesc:a00451"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai fifo configurations <a href="a00061.html#a00451">More...</a><br/></td></tr>
<tr class="separator:a00451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00449"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00449">_sai_bit_clock</a></td></tr>
<tr class="memdesc:a00449"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai bit clock configurations <a href="a00061.html#a00449">More...</a><br/></td></tr>
<tr class="separator:a00449"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00452"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00452">_sai_frame_sync</a></td></tr>
<tr class="memdesc:a00452"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai frame sync configurations <a href="a00061.html#a00452">More...</a><br/></td></tr>
<tr class="separator:a00452"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00454"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00454">_sai_serial_data</a></td></tr>
<tr class="memdesc:a00454"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai serial data configurations <a href="a00061.html#a00454">More...</a><br/></td></tr>
<tr class="separator:a00454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00455"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00455">_sai_transceiver</a></td></tr>
<tr class="memdesc:a00455"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai transceiver configurations <a href="a00061.html#a00455">More...</a><br/></td></tr>
<tr class="separator:a00455"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00456"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00456">_sai_transfer</a></td></tr>
<tr class="memdesc:a00456"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transfer structure. <a href="a00061.html#a00456">More...</a><br/></td></tr>
<tr class="separator:a00456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00453"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a00453">_sai_handle</a></td></tr>
<tr class="memdesc:a00453"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI handle structure. <a href="a00061.html#a00453">More...</a><br/></td></tr>
<tr class="separator:a00453"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga580bf35fe1f08d7bb054bee399f8b085"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga580bf35fe1f08d7bb054bee399f8b085">SAI_XFER_QUEUE_SIZE</a>&#160;&#160;&#160;(4U)</td></tr>
<tr class="memdesc:ga580bf35fe1f08d7bb054bee399f8b085"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transfer queue size, user can refine it according to use case. <a href="#ga580bf35fe1f08d7bb054bee399f8b085">More...</a><br/></td></tr>
<tr class="separator:ga580bf35fe1f08d7bb054bee399f8b085"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga362e2c5241bb726dd02530407ab5e26f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga362e2c5241bb726dd02530407ab5e26f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga362e2c5241bb726dd02530407ab5e26f">FSL_SAI_HAS_FIFO_EXTEND_FEATURE</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga362e2c5241bb726dd02530407ab5e26f"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai fifo feature <br/></td></tr>
<tr class="separator:ga362e2c5241bb726dd02530407ab5e26f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga2f1f1a725e4d1540d8dfccbdaed66b26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f1f1a725e4d1540d8dfccbdaed66b26"></a>
typedef enum <a class="el" href="a00061.html#ga5a56e024c1155a61c6f46513e57b473f">_sai_protocol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga2f1f1a725e4d1540d8dfccbdaed66b26">sai_protocol_t</a></td></tr>
<tr class="memdesc:ga2f1f1a725e4d1540d8dfccbdaed66b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the SAI bus type. <br/></td></tr>
<tr class="separator:ga2f1f1a725e4d1540d8dfccbdaed66b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90144d956adefe0eaf778868dd06dab4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90144d956adefe0eaf778868dd06dab4"></a>
typedef enum <a class="el" href="a00061.html#gab94a8b97a2fa0881a3259d1f514fcf40">_sai_master_slave</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a></td></tr>
<tr class="memdesc:ga90144d956adefe0eaf778868dd06dab4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master or slave mode. <br/></td></tr>
<tr class="separator:ga90144d956adefe0eaf778868dd06dab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18dd60add59f50301f764effe53641e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18dd60add59f50301f764effe53641e8"></a>
typedef enum <a class="el" href="a00061.html#gab7c25036fc5c90315f202a19e42ae295">_sai_mono_stereo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a></td></tr>
<tr class="memdesc:ga18dd60add59f50301f764effe53641e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mono or stereo audio format. <br/></td></tr>
<tr class="separator:ga18dd60add59f50301f764effe53641e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c09c5ee1699b834bcdcf38b0aaa579e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6c09c5ee1699b834bcdcf38b0aaa579e"></a>
typedef enum <a class="el" href="a00061.html#ga835cf95188e9d76d02b573d525e6447a">_sai_data_order</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga6c09c5ee1699b834bcdcf38b0aaa579e">sai_data_order_t</a></td></tr>
<tr class="memdesc:ga6c09c5ee1699b834bcdcf38b0aaa579e"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI data order, MSB or LSB. <br/></td></tr>
<tr class="separator:ga6c09c5ee1699b834bcdcf38b0aaa579e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc572f0899ab54bbd51e2b0bc323a34f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabc572f0899ab54bbd51e2b0bc323a34f"></a>
typedef enum <a class="el" href="a00061.html#ga745ce3eada78b53250d40333482915b0">_sai_clock_polarity</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a></td></tr>
<tr class="memdesc:gabc572f0899ab54bbd51e2b0bc323a34f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI clock polarity, active high or low. <br/></td></tr>
<tr class="separator:gabc572f0899ab54bbd51e2b0bc323a34f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cc249bf49da9d53829d1e1eabc8cc91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cc249bf49da9d53829d1e1eabc8cc91"></a>
typedef enum <a class="el" href="a00061.html#ga40bad4fe84f0826fe0565c46f0763395">_sai_sync_mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga0cc249bf49da9d53829d1e1eabc8cc91">sai_sync_mode_t</a></td></tr>
<tr class="memdesc:ga0cc249bf49da9d53829d1e1eabc8cc91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous or asynchronous mode. <br/></td></tr>
<tr class="separator:ga0cc249bf49da9d53829d1e1eabc8cc91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga048c6fc58b414c5f571ad47b1923470b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga048c6fc58b414c5f571ad47b1923470b"></a>
typedef enum <a class="el" href="a00061.html#gae133d8e667ce98cdb9f7b3e4d60679ff">_sai_bclk_source</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga048c6fc58b414c5f571ad47b1923470b">sai_bclk_source_t</a></td></tr>
<tr class="memdesc:ga048c6fc58b414c5f571ad47b1923470b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit clock source. <br/></td></tr>
<tr class="separator:ga048c6fc58b414c5f571ad47b1923470b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca36f65012b1a99022d1bc02be2d33c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaca36f65012b1a99022d1bc02be2d33c5"></a>
typedef enum <a class="el" href="a00061.html#gaaa4bb640acb35ece5d999635e41f033a">_sai_reset_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaca36f65012b1a99022d1bc02be2d33c5">sai_reset_type_t</a></td></tr>
<tr class="memdesc:gaca36f65012b1a99022d1bc02be2d33c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The reset type. <br/></td></tr>
<tr class="separator:gaca36f65012b1a99022d1bc02be2d33c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga07d41049148c43c02e1eeda798ccca3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07d41049148c43c02e1eeda798ccca3c"></a>
typedef enum <a class="el" href="a00061.html#gaa821924a35f7f47470937d3accd5f6e4">_sai_fifo_packing</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga07d41049148c43c02e1eeda798ccca3c">sai_fifo_packing_t</a></td></tr>
<tr class="memdesc:ga07d41049148c43c02e1eeda798ccca3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The SAI packing mode The mode includes 8 bit and 16 bit packing. <br/></td></tr>
<tr class="separator:ga07d41049148c43c02e1eeda798ccca3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb47e28d3954d843c35a2db48c21acd1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb47e28d3954d843c35a2db48c21acd1"></a>
typedef struct <a class="el" href="a00061.html#a00450">_sai_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gadb47e28d3954d843c35a2db48c21acd1">sai_config_t</a></td></tr>
<tr class="memdesc:gadb47e28d3954d843c35a2db48c21acd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI user configuration structure. <br/></td></tr>
<tr class="separator:gadb47e28d3954d843c35a2db48c21acd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21d76ef2a2d70e6e342748e1320e0a93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga21d76ef2a2d70e6e342748e1320e0a93"></a>
typedef enum <a class="el" href="a00061.html#ga043e8563923f5fb80c28ab887fc8e4f9">_sai_sample_rate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga21d76ef2a2d70e6e342748e1320e0a93">sai_sample_rate_t</a></td></tr>
<tr class="memdesc:ga21d76ef2a2d70e6e342748e1320e0a93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio sample rate. <br/></td></tr>
<tr class="separator:ga21d76ef2a2d70e6e342748e1320e0a93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafa35eb425655975366b8304103fe475"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaafa35eb425655975366b8304103fe475"></a>
typedef enum <a class="el" href="a00061.html#gad4e90a38e43c3d4a2abe7dd09fd15e20">_sai_word_width</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a></td></tr>
<tr class="memdesc:gaafa35eb425655975366b8304103fe475"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio word width. <br/></td></tr>
<tr class="separator:gaafa35eb425655975366b8304103fe475"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e822db3e6c8a0f48d19a91e154be51a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2e822db3e6c8a0f48d19a91e154be51a"></a>
typedef enum <a class="el" href="a00061.html#gac580d81720a4082d5967ba302390e952">_sai_data_pin_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga2e822db3e6c8a0f48d19a91e154be51a">sai_data_pin_state_t</a></td></tr>
<tr class="memdesc:ga2e822db3e6c8a0f48d19a91e154be51a"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai data pin state definition <br/></td></tr>
<tr class="separator:ga2e822db3e6c8a0f48d19a91e154be51a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7dd60fbab78854a04e3410d5dd2b1ee2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7dd60fbab78854a04e3410d5dd2b1ee2"></a>
typedef enum <a class="el" href="a00061.html#gaf26356d02c57c13a7683a3ad9a4f91a2">_sai_fifo_combine</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga7dd60fbab78854a04e3410d5dd2b1ee2">sai_fifo_combine_t</a></td></tr>
<tr class="memdesc:ga7dd60fbab78854a04e3410d5dd2b1ee2"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai fifo combine mode definition <br/></td></tr>
<tr class="separator:ga7dd60fbab78854a04e3410d5dd2b1ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52497d43c1084707ff4cf97f77b72a31"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52497d43c1084707ff4cf97f77b72a31"></a>
typedef enum <a class="el" href="a00061.html#ga1de9437e4dfb087369457405c2e04e69">_sai_transceiver_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga52497d43c1084707ff4cf97f77b72a31">sai_transceiver_type_t</a></td></tr>
<tr class="memdesc:ga52497d43c1084707ff4cf97f77b72a31"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai transceiver type <br/></td></tr>
<tr class="separator:ga52497d43c1084707ff4cf97f77b72a31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca31ab757ba34de24c4255cf43e0fe77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaca31ab757ba34de24c4255cf43e0fe77"></a>
typedef enum <a class="el" href="a00061.html#gabdfd5e6ddad960fe091c1e465f7d13d2">_sai_frame_sync_len</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaca31ab757ba34de24c4255cf43e0fe77">sai_frame_sync_len_t</a></td></tr>
<tr class="memdesc:gaca31ab757ba34de24c4255cf43e0fe77"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai frame sync len <br/></td></tr>
<tr class="separator:gaca31ab757ba34de24c4255cf43e0fe77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga038b9530195fe8c6cae5ad10ece9dcbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga038b9530195fe8c6cae5ad10ece9dcbb"></a>
typedef struct <a class="el" href="a00061.html#a00457">_sai_transfer_format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga038b9530195fe8c6cae5ad10ece9dcbb">sai_transfer_format_t</a></td></tr>
<tr class="memdesc:ga038b9530195fe8c6cae5ad10ece9dcbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai transfer format <br/></td></tr>
<tr class="separator:ga038b9530195fe8c6cae5ad10ece9dcbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59fe6ce5fe3732f25651384ea4644c8a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga59fe6ce5fe3732f25651384ea4644c8a"></a>
typedef struct <a class="el" href="a00061.html#a00451">_sai_fifo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga59fe6ce5fe3732f25651384ea4644c8a">sai_fifo_t</a></td></tr>
<tr class="memdesc:ga59fe6ce5fe3732f25651384ea4644c8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai fifo configurations <br/></td></tr>
<tr class="separator:ga59fe6ce5fe3732f25651384ea4644c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e7467cccff2036acd9ea3b0053918bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e7467cccff2036acd9ea3b0053918bf"></a>
typedef struct <a class="el" href="a00061.html#a00449">_sai_bit_clock</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga1e7467cccff2036acd9ea3b0053918bf">sai_bit_clock_t</a></td></tr>
<tr class="memdesc:ga1e7467cccff2036acd9ea3b0053918bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai bit clock configurations <br/></td></tr>
<tr class="separator:ga1e7467cccff2036acd9ea3b0053918bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad19ff288b9257f5f2b782bef0ea64e91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad19ff288b9257f5f2b782bef0ea64e91"></a>
typedef struct <a class="el" href="a00061.html#a00452">_sai_frame_sync</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gad19ff288b9257f5f2b782bef0ea64e91">sai_frame_sync_t</a></td></tr>
<tr class="memdesc:gad19ff288b9257f5f2b782bef0ea64e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai frame sync configurations <br/></td></tr>
<tr class="separator:gad19ff288b9257f5f2b782bef0ea64e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga12a9182f90371122ecfe159f6a6342f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga12a9182f90371122ecfe159f6a6342f0"></a>
typedef struct <a class="el" href="a00061.html#a00454">_sai_serial_data</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga12a9182f90371122ecfe159f6a6342f0">sai_serial_data_t</a></td></tr>
<tr class="memdesc:ga12a9182f90371122ecfe159f6a6342f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai serial data configurations <br/></td></tr>
<tr class="separator:ga12a9182f90371122ecfe159f6a6342f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e798fe5217335d01709af9f4855e0dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e798fe5217335d01709af9f4855e0dc"></a>
typedef struct <a class="el" href="a00061.html#a00455">_sai_transceiver</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a></td></tr>
<tr class="memdesc:ga1e798fe5217335d01709af9f4855e0dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai transceiver configurations <br/></td></tr>
<tr class="separator:ga1e798fe5217335d01709af9f4855e0dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga930ac1cfb546457c3e1ebf70151a6212"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga930ac1cfb546457c3e1ebf70151a6212"></a>
typedef struct <a class="el" href="a00061.html#a00456">_sai_transfer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga930ac1cfb546457c3e1ebf70151a6212">sai_transfer_t</a></td></tr>
<tr class="memdesc:ga930ac1cfb546457c3e1ebf70151a6212"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transfer structure. <br/></td></tr>
<tr class="separator:ga930ac1cfb546457c3e1ebf70151a6212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacda077e13dd34cd0fa1e865354591fe2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacda077e13dd34cd0fa1e865354591fe2"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gacda077e13dd34cd0fa1e865354591fe2">sai_transfer_callback_t</a> )(I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, <a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> status, void *userData)</td></tr>
<tr class="memdesc:gacda077e13dd34cd0fa1e865354591fe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transfer callback prototype. <br/></td></tr>
<tr class="separator:gacda077e13dd34cd0fa1e865354591fe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga1be3860693af99a6c1da72580097294c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00061.html#gga1be3860693af99a6c1da72580097294cae095b9b1a3ec7b998d722b1e1d73ca44">kStatus_SAI_TxBusy</a> = MAKE_STATUS(kStatusGroup_SAI, 0),
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga1be3860693af99a6c1da72580097294ca8e432517b16b5784a72a95e0caf7bb4a">kStatus_SAI_RxBusy</a> = MAKE_STATUS(kStatusGroup_SAI, 1),
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga1be3860693af99a6c1da72580097294ca5f17818e41e2fb07e35e43e1a03bfeb9">kStatus_SAI_TxError</a> = MAKE_STATUS(kStatusGroup_SAI, 2),
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga1be3860693af99a6c1da72580097294ca0d8c8cec03abcd722d2ec4358451461c">kStatus_SAI_RxError</a> = MAKE_STATUS(kStatusGroup_SAI, 3),
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga1be3860693af99a6c1da72580097294ca19680647d09a7437afd6b6ae7013095e">kStatus_SAI_QueueFull</a> = MAKE_STATUS(kStatusGroup_SAI, 4),
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga1be3860693af99a6c1da72580097294ca2a58fb377508baa31df58beb5f406761">kStatus_SAI_TxIdle</a> = MAKE_STATUS(kStatusGroup_SAI, 5),
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga1be3860693af99a6c1da72580097294ca0f398d330abd6df4255be13d39968e1d">kStatus_SAI_RxIdle</a> = MAKE_STATUS(kStatusGroup_SAI, 6)
<br/>
}</td></tr>
<tr class="memdesc:ga1be3860693af99a6c1da72580097294c"><td class="mdescLeft">&#160;</td><td class="mdescRight">_sai_status_t, SAI return status. <a href="a00061.html#ga1be3860693af99a6c1da72580097294c">More...</a><br/></td></tr>
<tr class="separator:ga1be3860693af99a6c1da72580097294c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9420823bfeba78fce625fc105e3b01d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01daa21f6e0475cce1ba88f8105ab4f692c7">kSAI_Channel0Mask</a> = 1 &lt;&lt; 0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01da4f8ec142406d199623daa8671b62285b">kSAI_Channel1Mask</a> = 1 &lt;&lt; 1U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01da4d28325c4e3225b6bc90a3e6da72943b">kSAI_Channel2Mask</a> = 1 &lt;&lt; 2U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01daebd450167bf4da5b7825b633a76b50f7">kSAI_Channel3Mask</a> = 1 &lt;&lt; 3U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01da028b3c77f8f6d83b5f53d889751b41fb">kSAI_Channel4Mask</a> = 1 &lt;&lt; 4U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01da2e64fd8c9b0cb2ae5366f03129f65553">kSAI_Channel5Mask</a> = 1 &lt;&lt; 5U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01da15f0e04bf2f22b27d472d09730bb1290">kSAI_Channel6Mask</a> = 1 &lt;&lt; 6U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac9420823bfeba78fce625fc105e3b01daed34fb3a4004a734740d463a3544ef1d">kSAI_Channel7Mask</a> = 1 &lt;&lt; 7U
<br/>
}</td></tr>
<tr class="memdesc:gac9420823bfeba78fce625fc105e3b01d"><td class="mdescLeft">&#160;</td><td class="mdescRight">_sai_channel_mask,.sai channel mask value, actual channel numbers is depend soc specific <a href="a00061.html#gac9420823bfeba78fce625fc105e3b01d">More...</a><br/></td></tr>
<tr class="separator:gac9420823bfeba78fce625fc105e3b01d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a56e024c1155a61c6f46513e57b473f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga5a56e024c1155a61c6f46513e57b473f">_sai_protocol</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#gga5a56e024c1155a61c6f46513e57b473fa5c6ddb713e2ebd5e243d5d8156869baf">kSAI_BusLeftJustified</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga5a56e024c1155a61c6f46513e57b473faebff095e8a510ada79aab2c90df6c4ef">kSAI_BusRightJustified</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga5a56e024c1155a61c6f46513e57b473fa67d163f59267b3c6f6dfb731de711197">kSAI_BusI2S</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga5a56e024c1155a61c6f46513e57b473fa1a4da830cfb4f08554a690de65d2870f">kSAI_BusPCMA</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga5a56e024c1155a61c6f46513e57b473fa6b5e627cbe3644cf561eb0997699aefe">kSAI_BusPCMB</a>
<br/>
}</td></tr>
<tr class="memdesc:ga5a56e024c1155a61c6f46513e57b473f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the SAI bus type. <a href="a00061.html#ga5a56e024c1155a61c6f46513e57b473f">More...</a><br/></td></tr>
<tr class="separator:ga5a56e024c1155a61c6f46513e57b473f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab94a8b97a2fa0881a3259d1f514fcf40"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gab94a8b97a2fa0881a3259d1f514fcf40">_sai_master_slave</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggab94a8b97a2fa0881a3259d1f514fcf40ace27a481cd1aee827602f2997e9e9d24">kSAI_Master</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggab94a8b97a2fa0881a3259d1f514fcf40afc74ad2cca556b75857bfcb3c2f754b3">kSAI_Slave</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggab94a8b97a2fa0881a3259d1f514fcf40a25e145bc050ae2338a7b8254c785060a">kSAI_Bclk_Master_FrameSync_Slave</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggab94a8b97a2fa0881a3259d1f514fcf40ae06c9f22b0958c4bb9aa3dc6913150dd">kSAI_Bclk_Slave_FrameSync_Master</a> = 0x3U
<br/>
}</td></tr>
<tr class="memdesc:gab94a8b97a2fa0881a3259d1f514fcf40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master or slave mode. <a href="a00061.html#gab94a8b97a2fa0881a3259d1f514fcf40">More...</a><br/></td></tr>
<tr class="separator:gab94a8b97a2fa0881a3259d1f514fcf40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7c25036fc5c90315f202a19e42ae295"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gab7c25036fc5c90315f202a19e42ae295">_sai_mono_stereo</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggab7c25036fc5c90315f202a19e42ae295a68780a0cf179c054ccccdd0d57fb780e">kSAI_Stereo</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggab7c25036fc5c90315f202a19e42ae295a2763e95289b6d3f7015cba718964580b">kSAI_MonoRight</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggab7c25036fc5c90315f202a19e42ae295a06bf33c6e548abd3cd5136b4e8d7bd29">kSAI_MonoLeft</a>
<br/>
}</td></tr>
<tr class="memdesc:gab7c25036fc5c90315f202a19e42ae295"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mono or stereo audio format. <a href="a00061.html#gab7c25036fc5c90315f202a19e42ae295">More...</a><br/></td></tr>
<tr class="separator:gab7c25036fc5c90315f202a19e42ae295"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga835cf95188e9d76d02b573d525e6447a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga835cf95188e9d76d02b573d525e6447a">_sai_data_order</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#gga835cf95188e9d76d02b573d525e6447aad5ea6f8b25daf462e099db5959a58c8f">kSAI_DataLSB</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga835cf95188e9d76d02b573d525e6447aa810e97cb159dd3e4009a98bf91e829c5">kSAI_DataMSB</a>
<br/>
}</td></tr>
<tr class="memdesc:ga835cf95188e9d76d02b573d525e6447a"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI data order, MSB or LSB. <a href="a00061.html#ga835cf95188e9d76d02b573d525e6447a">More...</a><br/></td></tr>
<tr class="separator:ga835cf95188e9d76d02b573d525e6447a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga745ce3eada78b53250d40333482915b0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga745ce3eada78b53250d40333482915b0">_sai_clock_polarity</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#gga745ce3eada78b53250d40333482915b0ae61dfe51028ddaa2f902dd74b6804d7b">kSAI_PolarityActiveHigh</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga745ce3eada78b53250d40333482915b0a53b413986854f303b7661f25619b755f">kSAI_PolarityActiveLow</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga745ce3eada78b53250d40333482915b0a4522b922a91d0555ad44c9280575c891">kSAI_SampleOnFallingEdge</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga745ce3eada78b53250d40333482915b0abb5717dea6a1ff1ad27737b60402ca44">kSAI_SampleOnRisingEdge</a> = 0x1U
<br/>
}</td></tr>
<tr class="memdesc:ga745ce3eada78b53250d40333482915b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI clock polarity, active high or low. <a href="a00061.html#ga745ce3eada78b53250d40333482915b0">More...</a><br/></td></tr>
<tr class="separator:ga745ce3eada78b53250d40333482915b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40bad4fe84f0826fe0565c46f0763395"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga40bad4fe84f0826fe0565c46f0763395">_sai_sync_mode</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#gga40bad4fe84f0826fe0565c46f0763395a1eedfe4039fefc137958a911f67840c1">kSAI_ModeAsync</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga40bad4fe84f0826fe0565c46f0763395a8a39fe8640d0a3a2de851e41bc3ebbdd">kSAI_ModeSync</a>
<br/>
}</td></tr>
<tr class="memdesc:ga40bad4fe84f0826fe0565c46f0763395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous or asynchronous mode. <a href="a00061.html#ga40bad4fe84f0826fe0565c46f0763395">More...</a><br/></td></tr>
<tr class="separator:ga40bad4fe84f0826fe0565c46f0763395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae133d8e667ce98cdb9f7b3e4d60679ff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gae133d8e667ce98cdb9f7b3e4d60679ff">_sai_bclk_source</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggae133d8e667ce98cdb9f7b3e4d60679ffa76edb348d999ad21e50f9d46d46f7e4c">kSAI_BclkSourceBusclk</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggae133d8e667ce98cdb9f7b3e4d60679ffa04244436208c8b2b8e7c56989a08f842">kSAI_BclkSourceMclkOption1</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggae133d8e667ce98cdb9f7b3e4d60679ffa2452df30e11c7cc88eae97720aca2765">kSAI_BclkSourceMclkOption2</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggae133d8e667ce98cdb9f7b3e4d60679ffa3f7799293e0d637f15cf0685c9ee1c5c">kSAI_BclkSourceMclkOption3</a> = 0x3U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggae133d8e667ce98cdb9f7b3e4d60679ffab4c297bd65ee5ef56c49808b8ac0d94d">kSAI_BclkSourceMclkDiv</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggae133d8e667ce98cdb9f7b3e4d60679ffab812a4070f7960ee602e14c9af93873f">kSAI_BclkSourceOtherSai0</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggae133d8e667ce98cdb9f7b3e4d60679ffa4174df66b1e3f83cd8456564517c25b6">kSAI_BclkSourceOtherSai1</a> = 0x3U
<br/>
}</td></tr>
<tr class="memdesc:gae133d8e667ce98cdb9f7b3e4d60679ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit clock source. <a href="a00061.html#gae133d8e667ce98cdb9f7b3e4d60679ff">More...</a><br/></td></tr>
<tr class="separator:gae133d8e667ce98cdb9f7b3e4d60679ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa9be5679ab03d785820f2474c5ccc6e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00061.html#ggafa9be5679ab03d785820f2474c5ccc6ea544d76157d9e4e99a322e31b03f2de99">kSAI_WordStartInterruptEnable</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggafa9be5679ab03d785820f2474c5ccc6ea3adb555d2455aa86878f78a0c0ef6566">kSAI_SyncErrorInterruptEnable</a> = I2S_TCSR_SEIE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggafa9be5679ab03d785820f2474c5ccc6ea0557da436cdad3e9551e4c2ab3319526">kSAI_FIFOWarningInterruptEnable</a> = I2S_TCSR_FWIE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggafa9be5679ab03d785820f2474c5ccc6ea1eb2783c3d30845f08cb7b613d92d84b">kSAI_FIFOErrorInterruptEnable</a> = I2S_TCSR_FEIE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggafa9be5679ab03d785820f2474c5ccc6eaba8ca41b00b881e5d7507e3d20974831">kSAI_FIFORequestInterruptEnable</a> = I2S_TCSR_FRIE_MASK
<br/>
}</td></tr>
<tr class="memdesc:gafa9be5679ab03d785820f2474c5ccc6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">_sai_interrupt_enable_t, The SAI interrupt enable flag <a href="a00061.html#gafa9be5679ab03d785820f2474c5ccc6e">More...</a><br/></td></tr>
<tr class="separator:gafa9be5679ab03d785820f2474c5ccc6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6dceca96ec2c7a1b4aa211264a87ef6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00061.html#ggae6dceca96ec2c7a1b4aa211264a87ef6aa6bcd82f3ff9e711f85f1c05ff288eab">kSAI_FIFOWarningDMAEnable</a> = I2S_TCSR_FWDE_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggae6dceca96ec2c7a1b4aa211264a87ef6a8d208db72a30ce3625803ba11f292086">kSAI_FIFORequestDMAEnable</a> = I2S_TCSR_FRDE_MASK
<br/>
}</td></tr>
<tr class="memdesc:gae6dceca96ec2c7a1b4aa211264a87ef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">_sai_dma_enable_t, The DMA request sources <a href="a00061.html#gae6dceca96ec2c7a1b4aa211264a87ef6">More...</a><br/></td></tr>
<tr class="separator:gae6dceca96ec2c7a1b4aa211264a87ef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56a0f36da7f9eaaf54bd05cc2bf49173"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00061.html#gga56a0f36da7f9eaaf54bd05cc2bf49173a8856ff23f0703c9a170163edcee534ea">kSAI_WordStartFlag</a> = I2S_TCSR_WSF_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga56a0f36da7f9eaaf54bd05cc2bf49173ad35f8fa189ca7adc41905dc692aea237">kSAI_SyncErrorFlag</a> = I2S_TCSR_SEF_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga56a0f36da7f9eaaf54bd05cc2bf49173a66affbcb587814dc0df6f12733ea3f5c">kSAI_FIFOErrorFlag</a> = I2S_TCSR_FEF_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga56a0f36da7f9eaaf54bd05cc2bf49173af90c6aca78ac96fb694157d3a8dc6388">kSAI_FIFORequestFlag</a> = I2S_TCSR_FRF_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga56a0f36da7f9eaaf54bd05cc2bf49173a41f8ba146a17136cebefb1ef142c4563">kSAI_FIFOWarningFlag</a> = I2S_TCSR_FWF_MASK
<br/>
}</td></tr>
<tr class="memdesc:ga56a0f36da7f9eaaf54bd05cc2bf49173"><td class="mdescLeft">&#160;</td><td class="mdescRight">_sai_flags, The SAI status flag <a href="a00061.html#ga56a0f36da7f9eaaf54bd05cc2bf49173">More...</a><br/></td></tr>
<tr class="separator:ga56a0f36da7f9eaaf54bd05cc2bf49173"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa4bb640acb35ece5d999635e41f033a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaaa4bb640acb35ece5d999635e41f033a">_sai_reset_type</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggaaa4bb640acb35ece5d999635e41f033aa67ca93a283d762ba72176ef609bc4134">kSAI_ResetTypeSoftware</a> = I2S_TCSR_SR_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggaaa4bb640acb35ece5d999635e41f033aa9749b5efe5bb45db10089360992a683a">kSAI_ResetTypeFIFO</a> = I2S_TCSR_FR_MASK,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggaaa4bb640acb35ece5d999635e41f033aae75ddd8d7c742dce4aef59aff2c81f38">kSAI_ResetAll</a> = I2S_TCSR_SR_MASK | I2S_TCSR_FR_MASK
<br/>
}</td></tr>
<tr class="memdesc:gaaa4bb640acb35ece5d999635e41f033a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The reset type. <a href="a00061.html#gaaa4bb640acb35ece5d999635e41f033a">More...</a><br/></td></tr>
<tr class="separator:gaaa4bb640acb35ece5d999635e41f033a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa821924a35f7f47470937d3accd5f6e4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaa821924a35f7f47470937d3accd5f6e4">_sai_fifo_packing</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggaa821924a35f7f47470937d3accd5f6e4ae267a04864a1f653962222a90909472f">kSAI_FifoPackingDisabled</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggaa821924a35f7f47470937d3accd5f6e4a547adf2b9d268fb205d939b617aba68e">kSAI_FifoPacking8bit</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggaa821924a35f7f47470937d3accd5f6e4ae1d4fb3eb871e1d1f51a75a97d00bc2c">kSAI_FifoPacking16bit</a> = 0x3U
<br/>
}</td></tr>
<tr class="memdesc:gaa821924a35f7f47470937d3accd5f6e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The SAI packing mode The mode includes 8 bit and 16 bit packing. <a href="a00061.html#gaa821924a35f7f47470937d3accd5f6e4">More...</a><br/></td></tr>
<tr class="separator:gaa821924a35f7f47470937d3accd5f6e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga043e8563923f5fb80c28ab887fc8e4f9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga043e8563923f5fb80c28ab887fc8e4f9">_sai_sample_rate</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9a33faf3aa4adc2430b4892a60bf82f847">kSAI_SampleRate8KHz</a> = 8000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9a20a0ee7adde7aca59883b3f7b5698d98">kSAI_SampleRate11025Hz</a> = 11025U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9ab6f2876028ff4201e6e9411bd450e5e9">kSAI_SampleRate12KHz</a> = 12000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9a37f8460732967ce92f540c44d89b45ae">kSAI_SampleRate16KHz</a> = 16000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9a932187b8e03e6c60e5f6665f55e3f209">kSAI_SampleRate22050Hz</a> = 22050U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9aec9824e27135f9641e61399b0c7ee72c">kSAI_SampleRate24KHz</a> = 24000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9aa745cb456e46ad4982c3d58882fb34a0">kSAI_SampleRate32KHz</a> = 32000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9aa00db6732444bb1976f130b8a283276c">kSAI_SampleRate44100Hz</a> = 44100U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9a3539b8834c98c260c99b6092e7766cfc">kSAI_SampleRate48KHz</a> = 48000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9a345e0cda3185af26335f3720e0691aca">kSAI_SampleRate96KHz</a> = 96000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9afa3d9a8a48ca6981ec61aeacfbf75a32">kSAI_SampleRate192KHz</a> = 192000U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga043e8563923f5fb80c28ab887fc8e4f9a137ad38af2b993bb54c46289478fc517">kSAI_SampleRate384KHz</a> = 384000U
<br/>
}</td></tr>
<tr class="memdesc:ga043e8563923f5fb80c28ab887fc8e4f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio sample rate. <a href="a00061.html#ga043e8563923f5fb80c28ab887fc8e4f9">More...</a><br/></td></tr>
<tr class="separator:ga043e8563923f5fb80c28ab887fc8e4f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4e90a38e43c3d4a2abe7dd09fd15e20"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gad4e90a38e43c3d4a2abe7dd09fd15e20">_sai_word_width</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggad4e90a38e43c3d4a2abe7dd09fd15e20ac282421ee51ea251da06e459af3014a1">kSAI_WordWidth8bits</a> = 8U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggad4e90a38e43c3d4a2abe7dd09fd15e20a0328fc45f36f361f958cacd8378d4923">kSAI_WordWidth16bits</a> = 16U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggad4e90a38e43c3d4a2abe7dd09fd15e20a98f99f6e508d609333313277057d29a0">kSAI_WordWidth24bits</a> = 24U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggad4e90a38e43c3d4a2abe7dd09fd15e20a238d482a0f4a707bc199f5c54c168233">kSAI_WordWidth32bits</a> = 32U
<br/>
}</td></tr>
<tr class="memdesc:gad4e90a38e43c3d4a2abe7dd09fd15e20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio word width. <a href="a00061.html#gad4e90a38e43c3d4a2abe7dd09fd15e20">More...</a><br/></td></tr>
<tr class="separator:gad4e90a38e43c3d4a2abe7dd09fd15e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac580d81720a4082d5967ba302390e952"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gac580d81720a4082d5967ba302390e952">_sai_data_pin_state</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggac580d81720a4082d5967ba302390e952a363adfafa21b0e6765c3a4f820b10333">kSAI_DataPinStateTriState</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggac580d81720a4082d5967ba302390e952a42a8a2e2f5e6900233e91754862ba6e1">kSAI_DataPinStateOutputZero</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:gac580d81720a4082d5967ba302390e952"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai data pin state definition <a href="a00061.html#gac580d81720a4082d5967ba302390e952">More...</a><br/></td></tr>
<tr class="separator:gac580d81720a4082d5967ba302390e952"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf26356d02c57c13a7683a3ad9a4f91a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaf26356d02c57c13a7683a3ad9a4f91a2">_sai_fifo_combine</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggaf26356d02c57c13a7683a3ad9a4f91a2ab5fb99c25c715df68b3d26156de079b3">kSAI_FifoCombineDisabled</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggaf26356d02c57c13a7683a3ad9a4f91a2a5ace6deacace7a319179204a842940e3">kSAI_FifoCombineModeEnabledOnRead</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggaf26356d02c57c13a7683a3ad9a4f91a2a5f9f93fa7038c5ca68fafbb27b44a6c2">kSAI_FifoCombineModeEnabledOnWrite</a>,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggaf26356d02c57c13a7683a3ad9a4f91a2aeec8c226676e93ef5401d205ecf18561">kSAI_FifoCombineModeEnabledOnReadWrite</a>
<br/>
}</td></tr>
<tr class="memdesc:gaf26356d02c57c13a7683a3ad9a4f91a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai fifo combine mode definition <a href="a00061.html#gaf26356d02c57c13a7683a3ad9a4f91a2">More...</a><br/></td></tr>
<tr class="separator:gaf26356d02c57c13a7683a3ad9a4f91a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1de9437e4dfb087369457405c2e04e69"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga1de9437e4dfb087369457405c2e04e69">_sai_transceiver_type</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#gga1de9437e4dfb087369457405c2e04e69a61440483250a3c9a981367c81dd0265a">kSAI_Transmitter</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#gga1de9437e4dfb087369457405c2e04e69a992dba17c95e3f71f8d187c0d7ae9a23">kSAI_Receiver</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:ga1de9437e4dfb087369457405c2e04e69"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai transceiver type <a href="a00061.html#ga1de9437e4dfb087369457405c2e04e69">More...</a><br/></td></tr>
<tr class="separator:ga1de9437e4dfb087369457405c2e04e69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdfd5e6ddad960fe091c1e465f7d13d2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gabdfd5e6ddad960fe091c1e465f7d13d2">_sai_frame_sync_len</a> { <br/>
&#160;&#160;<a class="el" href="a00061.html#ggabdfd5e6ddad960fe091c1e465f7d13d2a3506ff131e0f24df2ff993c4257b8d30">kSAI_FrameSyncLenOneBitClk</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00061.html#ggabdfd5e6ddad960fe091c1e465f7d13d2a97f133232c24340687ba826a9e43e268">kSAI_FrameSyncLenPerWordWidth</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:gabdfd5e6ddad960fe091c1e465f7d13d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai frame sync len <a href="a00061.html#gabdfd5e6ddad960fe091c1e465f7d13d2">More...</a><br/></td></tr>
<tr class="separator:gabdfd5e6ddad960fe091c1e465f7d13d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:ga90d7087431db03b22516e7a311aebeb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga90d7087431db03b22516e7a311aebeb1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga90d7087431db03b22516e7a311aebeb1">FSL_SAI_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00260.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 4, 2))</td></tr>
<tr class="memdesc:ga90d7087431db03b22516e7a311aebeb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 2.4.2. <br/></td></tr>
<tr class="separator:ga90d7087431db03b22516e7a311aebeb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and deinitialization</h2></td></tr>
<tr class="memitem:gacee30bb91b9287f7bcd6feb9eec469a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gacee30bb91b9287f7bcd6feb9eec469a0">SAI_Init</a> (I2S_Type *base)</td></tr>
<tr class="memdesc:gacee30bb91b9287f7bcd6feb9eec469a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SAI peripheral. <a href="#gacee30bb91b9287f7bcd6feb9eec469a0">More...</a><br/></td></tr>
<tr class="separator:gacee30bb91b9287f7bcd6feb9eec469a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3acf95d83128d355a2935bb7ccd85ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gae3acf95d83128d355a2935bb7ccd85ea">SAI_Deinit</a> (I2S_Type *base)</td></tr>
<tr class="memdesc:gae3acf95d83128d355a2935bb7ccd85ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">De-initializes the SAI peripheral. <a href="#gae3acf95d83128d355a2935bb7ccd85ea">More...</a><br/></td></tr>
<tr class="separator:gae3acf95d83128d355a2935bb7ccd85ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66657a9e3eb593e979389cc1136fd277"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga66657a9e3eb593e979389cc1136fd277">SAI_TxReset</a> (I2S_Type *base)</td></tr>
<tr class="memdesc:ga66657a9e3eb593e979389cc1136fd277"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the SAI Tx. <a href="#ga66657a9e3eb593e979389cc1136fd277">More...</a><br/></td></tr>
<tr class="separator:ga66657a9e3eb593e979389cc1136fd277"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76c8fce1a9222a408a073873a27430f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga76c8fce1a9222a408a073873a27430f0">SAI_RxReset</a> (I2S_Type *base)</td></tr>
<tr class="memdesc:ga76c8fce1a9222a408a073873a27430f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the SAI Rx. <a href="#ga76c8fce1a9222a408a073873a27430f0">More...</a><br/></td></tr>
<tr class="separator:ga76c8fce1a9222a408a073873a27430f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32b2f06766a8bb92dd778a152dfd8b2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga32b2f06766a8bb92dd778a152dfd8b2e">SAI_TxEnable</a> (I2S_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga32b2f06766a8bb92dd778a152dfd8b2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the SAI Tx. <a href="#ga32b2f06766a8bb92dd778a152dfd8b2e">More...</a><br/></td></tr>
<tr class="separator:ga32b2f06766a8bb92dd778a152dfd8b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeaa118415a867f016efa6af3e0d06e17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaeaa118415a867f016efa6af3e0d06e17">SAI_RxEnable</a> (I2S_Type *base, bool enable)</td></tr>
<tr class="memdesc:gaeaa118415a867f016efa6af3e0d06e17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the SAI Rx. <a href="#gaeaa118415a867f016efa6af3e0d06e17">More...</a><br/></td></tr>
<tr class="separator:gaeaa118415a867f016efa6af3e0d06e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga295828bba00bf25649aceea01d4d06a2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga295828bba00bf25649aceea01d4d06a2">SAI_TxSetBitClockDirection</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave)</td></tr>
<tr class="memdesc:ga295828bba00bf25649aceea01d4d06a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Rx bit clock direction. <a href="#ga295828bba00bf25649aceea01d4d06a2">More...</a><br/></td></tr>
<tr class="separator:ga295828bba00bf25649aceea01d4d06a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ff4b01f64fb8e1b00e2cf0665b96a51"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga3ff4b01f64fb8e1b00e2cf0665b96a51">SAI_RxSetBitClockDirection</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave)</td></tr>
<tr class="memdesc:ga3ff4b01f64fb8e1b00e2cf0665b96a51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Rx bit clock direction. <a href="#ga3ff4b01f64fb8e1b00e2cf0665b96a51">More...</a><br/></td></tr>
<tr class="separator:ga3ff4b01f64fb8e1b00e2cf0665b96a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0698fb95242d01ae849f63c4ef29995"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gae0698fb95242d01ae849f63c4ef29995">SAI_RxSetFrameSyncDirection</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave)</td></tr>
<tr class="memdesc:gae0698fb95242d01ae849f63c4ef29995"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Rx frame sync direction. <a href="#gae0698fb95242d01ae849f63c4ef29995">More...</a><br/></td></tr>
<tr class="separator:gae0698fb95242d01ae849f63c4ef29995"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa72a51a4ae845043a1e15e57a466168d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaa72a51a4ae845043a1e15e57a466168d">SAI_TxSetFrameSyncDirection</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave)</td></tr>
<tr class="memdesc:gaa72a51a4ae845043a1e15e57a466168d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Tx frame sync direction. <a href="#gaa72a51a4ae845043a1e15e57a466168d">More...</a><br/></td></tr>
<tr class="separator:gaa72a51a4ae845043a1e15e57a466168d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e65916439358ba6e3ffbf130471b10d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga6e65916439358ba6e3ffbf130471b10d">SAI_TxSetBitClockRate</a> (I2S_Type *base, uint32_t sourceClockHz, uint32_t sampleRate, uint32_t bitWidth, uint32_t channelNumbers)</td></tr>
<tr class="memdesc:ga6e65916439358ba6e3ffbf130471b10d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmitter bit clock rate configurations. <a href="#ga6e65916439358ba6e3ffbf130471b10d">More...</a><br/></td></tr>
<tr class="separator:ga6e65916439358ba6e3ffbf130471b10d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ee6e43eb293cfb30ffc072d6c0b35b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga0ee6e43eb293cfb30ffc072d6c0b35b3">SAI_RxSetBitClockRate</a> (I2S_Type *base, uint32_t sourceClockHz, uint32_t sampleRate, uint32_t bitWidth, uint32_t channelNumbers)</td></tr>
<tr class="memdesc:ga0ee6e43eb293cfb30ffc072d6c0b35b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receiver bit clock rate configurations. <a href="#ga0ee6e43eb293cfb30ffc072d6c0b35b3">More...</a><br/></td></tr>
<tr class="separator:ga0ee6e43eb293cfb30ffc072d6c0b35b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa145a2bc3c4d5f7ec1c85ca55447e10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaaa145a2bc3c4d5f7ec1c85ca55447e10">SAI_TxSetBitclockConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave, <a class="el" href="a00061.html#ga1e7467cccff2036acd9ea3b0053918bf">sai_bit_clock_t</a> *config)</td></tr>
<tr class="memdesc:gaaa145a2bc3c4d5f7ec1c85ca55447e10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmitter Bit clock configurations. <a href="#gaaa145a2bc3c4d5f7ec1c85ca55447e10">More...</a><br/></td></tr>
<tr class="separator:gaaa145a2bc3c4d5f7ec1c85ca55447e10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2cc18a31cebffc1481d31c00652e9442"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga2cc18a31cebffc1481d31c00652e9442">SAI_RxSetBitclockConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave, <a class="el" href="a00061.html#ga1e7467cccff2036acd9ea3b0053918bf">sai_bit_clock_t</a> *config)</td></tr>
<tr class="memdesc:ga2cc18a31cebffc1481d31c00652e9442"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receiver Bit clock configurations. <a href="#ga2cc18a31cebffc1481d31c00652e9442">More...</a><br/></td></tr>
<tr class="separator:ga2cc18a31cebffc1481d31c00652e9442"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2afdfba1db354240309f91c017bb205e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga2afdfba1db354240309f91c017bb205e">SAI_TxSetFifoConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga59fe6ce5fe3732f25651384ea4644c8a">sai_fifo_t</a> *config)</td></tr>
<tr class="memdesc:ga2afdfba1db354240309f91c017bb205e"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transmitter fifo configurations. <a href="#ga2afdfba1db354240309f91c017bb205e">More...</a><br/></td></tr>
<tr class="separator:ga2afdfba1db354240309f91c017bb205e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81df263f6870e0b45a4475db547b7b0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga81df263f6870e0b45a4475db547b7b0a">SAI_RxSetFifoConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga59fe6ce5fe3732f25651384ea4644c8a">sai_fifo_t</a> *config)</td></tr>
<tr class="memdesc:ga81df263f6870e0b45a4475db547b7b0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI receiver fifo configurations. <a href="#ga81df263f6870e0b45a4475db547b7b0a">More...</a><br/></td></tr>
<tr class="separator:ga81df263f6870e0b45a4475db547b7b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga392671c98580de0ffab6f909e7707bad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga392671c98580de0ffab6f909e7707bad">SAI_TxSetFrameSyncConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave, <a class="el" href="a00061.html#gad19ff288b9257f5f2b782bef0ea64e91">sai_frame_sync_t</a> *config)</td></tr>
<tr class="memdesc:ga392671c98580de0ffab6f909e7707bad"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transmitter Frame sync configurations. <a href="#ga392671c98580de0ffab6f909e7707bad">More...</a><br/></td></tr>
<tr class="separator:ga392671c98580de0ffab6f909e7707bad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62e22ad6d091ffda26abda7190068459"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga62e22ad6d091ffda26abda7190068459">SAI_RxSetFrameSyncConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a> masterSlave, <a class="el" href="a00061.html#gad19ff288b9257f5f2b782bef0ea64e91">sai_frame_sync_t</a> *config)</td></tr>
<tr class="memdesc:ga62e22ad6d091ffda26abda7190068459"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI receiver Frame sync configurations. <a href="#ga62e22ad6d091ffda26abda7190068459">More...</a><br/></td></tr>
<tr class="separator:ga62e22ad6d091ffda26abda7190068459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b97778df2372e616dc4ac736e844cae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga2b97778df2372e616dc4ac736e844cae">SAI_TxSetSerialDataConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga12a9182f90371122ecfe159f6a6342f0">sai_serial_data_t</a> *config)</td></tr>
<tr class="memdesc:ga2b97778df2372e616dc4ac736e844cae"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transmitter Serial data configurations. <a href="#ga2b97778df2372e616dc4ac736e844cae">More...</a><br/></td></tr>
<tr class="separator:ga2b97778df2372e616dc4ac736e844cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a6d070843a27859cab4f7d6d91f7d63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga2a6d070843a27859cab4f7d6d91f7d63">SAI_RxSetSerialDataConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga12a9182f90371122ecfe159f6a6342f0">sai_serial_data_t</a> *config)</td></tr>
<tr class="memdesc:ga2a6d070843a27859cab4f7d6d91f7d63"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI receiver Serial data configurations. <a href="#ga2a6d070843a27859cab4f7d6d91f7d63">More...</a><br/></td></tr>
<tr class="separator:ga2a6d070843a27859cab4f7d6d91f7d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0edc077e66df28d41cccb03f18a3b785"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga0edc077e66df28d41cccb03f18a3b785">SAI_TxSetConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config)</td></tr>
<tr class="memdesc:ga0edc077e66df28d41cccb03f18a3b785"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transmitter configurations. <a href="#ga0edc077e66df28d41cccb03f18a3b785">More...</a><br/></td></tr>
<tr class="separator:ga0edc077e66df28d41cccb03f18a3b785"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18f099c6f1a54d8fea010a2aca4de468"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga18f099c6f1a54d8fea010a2aca4de468">SAI_RxSetConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config)</td></tr>
<tr class="memdesc:ga18f099c6f1a54d8fea010a2aca4de468"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI receiver configurations. <a href="#ga18f099c6f1a54d8fea010a2aca4de468">More...</a><br/></td></tr>
<tr class="separator:ga18f099c6f1a54d8fea010a2aca4de468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf233a2ef17cff713b18a002924e992fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaf233a2ef17cff713b18a002924e992fc">SAI_GetClassicI2SConfig</a> (<a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config, <a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a> bitWidth, <a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a> mode, uint32_t saiChannelMask)</td></tr>
<tr class="memdesc:gaf233a2ef17cff713b18a002924e992fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get classic I2S mode configurations. <a href="#gaf233a2ef17cff713b18a002924e992fc">More...</a><br/></td></tr>
<tr class="separator:gaf233a2ef17cff713b18a002924e992fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga627b32015c2817e8e1e7baf80150cb65"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga627b32015c2817e8e1e7baf80150cb65">SAI_GetLeftJustifiedConfig</a> (<a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config, <a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a> bitWidth, <a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a> mode, uint32_t saiChannelMask)</td></tr>
<tr class="memdesc:ga627b32015c2817e8e1e7baf80150cb65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get left justified mode configurations. <a href="#ga627b32015c2817e8e1e7baf80150cb65">More...</a><br/></td></tr>
<tr class="separator:ga627b32015c2817e8e1e7baf80150cb65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b41077bec52b31dbb86afd6d4ccc107"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga4b41077bec52b31dbb86afd6d4ccc107">SAI_GetRightJustifiedConfig</a> (<a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config, <a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a> bitWidth, <a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a> mode, uint32_t saiChannelMask)</td></tr>
<tr class="memdesc:ga4b41077bec52b31dbb86afd6d4ccc107"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get right justified mode configurations. <a href="#ga4b41077bec52b31dbb86afd6d4ccc107">More...</a><br/></td></tr>
<tr class="separator:ga4b41077bec52b31dbb86afd6d4ccc107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabcdf17347b2e20df3c28d3ba28e47df1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gabcdf17347b2e20df3c28d3ba28e47df1">SAI_GetTDMConfig</a> (<a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config, <a class="el" href="a00061.html#gaca31ab757ba34de24c4255cf43e0fe77">sai_frame_sync_len_t</a> frameSyncWidth, <a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a> bitWidth, uint32_t dataWordNum, uint32_t saiChannelMask)</td></tr>
<tr class="memdesc:gabcdf17347b2e20df3c28d3ba28e47df1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get TDM mode configurations. <a href="#gabcdf17347b2e20df3c28d3ba28e47df1">More...</a><br/></td></tr>
<tr class="separator:gabcdf17347b2e20df3c28d3ba28e47df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe5ba907f91700121f0fa3fbdddb9bca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gabe5ba907f91700121f0fa3fbdddb9bca">SAI_GetDSPConfig</a> (<a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config, <a class="el" href="a00061.html#gaca31ab757ba34de24c4255cf43e0fe77">sai_frame_sync_len_t</a> frameSyncWidth, <a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a> bitWidth, <a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a> mode, uint32_t saiChannelMask)</td></tr>
<tr class="memdesc:gabe5ba907f91700121f0fa3fbdddb9bca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get DSP mode configurations. <a href="#gabe5ba907f91700121f0fa3fbdddb9bca">More...</a><br/></td></tr>
<tr class="separator:gabe5ba907f91700121f0fa3fbdddb9bca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Status</h2></td></tr>
<tr class="memitem:ga1cd557fc5610173b3f5007f9594db2ae"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga1cd557fc5610173b3f5007f9594db2ae">SAI_TxGetStatusFlag</a> (I2S_Type *base)</td></tr>
<tr class="memdesc:ga1cd557fc5610173b3f5007f9594db2ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SAI Tx status flag state. <a href="#ga1cd557fc5610173b3f5007f9594db2ae">More...</a><br/></td></tr>
<tr class="separator:ga1cd557fc5610173b3f5007f9594db2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11127bb45b18dfa9d897046ab69b218d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga11127bb45b18dfa9d897046ab69b218d">SAI_TxClearStatusFlags</a> (I2S_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga11127bb45b18dfa9d897046ab69b218d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the SAI Tx status flag state. <a href="#ga11127bb45b18dfa9d897046ab69b218d">More...</a><br/></td></tr>
<tr class="separator:ga11127bb45b18dfa9d897046ab69b218d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9857a73c0d40d12438a9bd336e237dfe"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga9857a73c0d40d12438a9bd336e237dfe">SAI_RxGetStatusFlag</a> (I2S_Type *base)</td></tr>
<tr class="memdesc:ga9857a73c0d40d12438a9bd336e237dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SAI Tx status flag state. <a href="#ga9857a73c0d40d12438a9bd336e237dfe">More...</a><br/></td></tr>
<tr class="separator:ga9857a73c0d40d12438a9bd336e237dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3329969cbf718114c37f10d88e527669"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga3329969cbf718114c37f10d88e527669">SAI_RxClearStatusFlags</a> (I2S_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga3329969cbf718114c37f10d88e527669"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the SAI Rx status flag state. <a href="#ga3329969cbf718114c37f10d88e527669">More...</a><br/></td></tr>
<tr class="separator:ga3329969cbf718114c37f10d88e527669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9ff8664d0683df7a60078b1e41cce17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gae9ff8664d0683df7a60078b1e41cce17">SAI_TxSoftwareReset</a> (I2S_Type *base, <a class="el" href="a00061.html#gaca36f65012b1a99022d1bc02be2d33c5">sai_reset_type_t</a> resetType)</td></tr>
<tr class="memdesc:gae9ff8664d0683df7a60078b1e41cce17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do software reset or FIFO reset . <a href="#gae9ff8664d0683df7a60078b1e41cce17">More...</a><br/></td></tr>
<tr class="separator:gae9ff8664d0683df7a60078b1e41cce17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga503d652201ae85fd82dd20e908b6afea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga503d652201ae85fd82dd20e908b6afea">SAI_RxSoftwareReset</a> (I2S_Type *base, <a class="el" href="a00061.html#gaca36f65012b1a99022d1bc02be2d33c5">sai_reset_type_t</a> resetType)</td></tr>
<tr class="memdesc:ga503d652201ae85fd82dd20e908b6afea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do software reset or FIFO reset . <a href="#ga503d652201ae85fd82dd20e908b6afea">More...</a><br/></td></tr>
<tr class="separator:ga503d652201ae85fd82dd20e908b6afea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga633f5af270fa98e7dad379a2c78b4d72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga633f5af270fa98e7dad379a2c78b4d72">SAI_TxSetChannelFIFOMask</a> (I2S_Type *base, uint8_t mask)</td></tr>
<tr class="memdesc:ga633f5af270fa98e7dad379a2c78b4d72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Tx channel FIFO enable mask. <a href="#ga633f5af270fa98e7dad379a2c78b4d72">More...</a><br/></td></tr>
<tr class="separator:ga633f5af270fa98e7dad379a2c78b4d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fd29bef62a3d5609a78bb25f6fb66d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga7fd29bef62a3d5609a78bb25f6fb66d6">SAI_RxSetChannelFIFOMask</a> (I2S_Type *base, uint8_t mask)</td></tr>
<tr class="memdesc:ga7fd29bef62a3d5609a78bb25f6fb66d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Rx channel FIFO enable mask. <a href="#ga7fd29bef62a3d5609a78bb25f6fb66d6">More...</a><br/></td></tr>
<tr class="separator:ga7fd29bef62a3d5609a78bb25f6fb66d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27fad059ad2e1ef81ef83fbce4284e13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga27fad059ad2e1ef81ef83fbce4284e13">SAI_TxSetDataOrder</a> (I2S_Type *base, <a class="el" href="a00061.html#ga6c09c5ee1699b834bcdcf38b0aaa579e">sai_data_order_t</a> order)</td></tr>
<tr class="memdesc:ga27fad059ad2e1ef81ef83fbce4284e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Tx data order. <a href="#ga27fad059ad2e1ef81ef83fbce4284e13">More...</a><br/></td></tr>
<tr class="separator:ga27fad059ad2e1ef81ef83fbce4284e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5e0af3f06391d2577d3dfb42912ef85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaa5e0af3f06391d2577d3dfb42912ef85">SAI_RxSetDataOrder</a> (I2S_Type *base, <a class="el" href="a00061.html#ga6c09c5ee1699b834bcdcf38b0aaa579e">sai_data_order_t</a> order)</td></tr>
<tr class="memdesc:gaa5e0af3f06391d2577d3dfb42912ef85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Rx data order. <a href="#gaa5e0af3f06391d2577d3dfb42912ef85">More...</a><br/></td></tr>
<tr class="separator:gaa5e0af3f06391d2577d3dfb42912ef85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18cb5b7f55e8ef0b25f1caf78a5b8a79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga18cb5b7f55e8ef0b25f1caf78a5b8a79">SAI_TxSetBitClockPolarity</a> (I2S_Type *base, <a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a> polarity)</td></tr>
<tr class="memdesc:ga18cb5b7f55e8ef0b25f1caf78a5b8a79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Tx data order. <a href="#ga18cb5b7f55e8ef0b25f1caf78a5b8a79">More...</a><br/></td></tr>
<tr class="separator:ga18cb5b7f55e8ef0b25f1caf78a5b8a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9847aa9eedcf6a08a77874d80e5fa54e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga9847aa9eedcf6a08a77874d80e5fa54e">SAI_RxSetBitClockPolarity</a> (I2S_Type *base, <a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a> polarity)</td></tr>
<tr class="memdesc:ga9847aa9eedcf6a08a77874d80e5fa54e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Rx data order. <a href="#ga9847aa9eedcf6a08a77874d80e5fa54e">More...</a><br/></td></tr>
<tr class="separator:ga9847aa9eedcf6a08a77874d80e5fa54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafbbd4e7253ad01bb527c83cc3c41a09f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gafbbd4e7253ad01bb527c83cc3c41a09f">SAI_TxSetFrameSyncPolarity</a> (I2S_Type *base, <a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a> polarity)</td></tr>
<tr class="memdesc:gafbbd4e7253ad01bb527c83cc3c41a09f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Tx data order. <a href="#gafbbd4e7253ad01bb527c83cc3c41a09f">More...</a><br/></td></tr>
<tr class="separator:gafbbd4e7253ad01bb527c83cc3c41a09f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0b73b62039762bea3d43d846e3aa0f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gae0b73b62039762bea3d43d846e3aa0f5">SAI_RxSetFrameSyncPolarity</a> (I2S_Type *base, <a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a> polarity)</td></tr>
<tr class="memdesc:gae0b73b62039762bea3d43d846e3aa0f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Rx data order. <a href="#gae0b73b62039762bea3d43d846e3aa0f5">More...</a><br/></td></tr>
<tr class="separator:gae0b73b62039762bea3d43d846e3aa0f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga837e2e4efa7401415cf3a922baa1b8e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga837e2e4efa7401415cf3a922baa1b8e7">SAI_TxSetFIFOPacking</a> (I2S_Type *base, <a class="el" href="a00061.html#ga07d41049148c43c02e1eeda798ccca3c">sai_fifo_packing_t</a> pack)</td></tr>
<tr class="memdesc:ga837e2e4efa7401415cf3a922baa1b8e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Tx FIFO packing feature. <a href="#ga837e2e4efa7401415cf3a922baa1b8e7">More...</a><br/></td></tr>
<tr class="separator:ga837e2e4efa7401415cf3a922baa1b8e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69676e9585362f036f2d925481c21a26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga69676e9585362f036f2d925481c21a26">SAI_RxSetFIFOPacking</a> (I2S_Type *base, <a class="el" href="a00061.html#ga07d41049148c43c02e1eeda798ccca3c">sai_fifo_packing_t</a> pack)</td></tr>
<tr class="memdesc:ga69676e9585362f036f2d925481c21a26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Rx FIFO packing feature. <a href="#ga69676e9585362f036f2d925481c21a26">More...</a><br/></td></tr>
<tr class="separator:ga69676e9585362f036f2d925481c21a26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacfdf75b35fffd1931f6c412f7156f14d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gacfdf75b35fffd1931f6c412f7156f14d">SAI_TxSetFIFOErrorContinue</a> (I2S_Type *base, bool isEnabled)</td></tr>
<tr class="memdesc:gacfdf75b35fffd1931f6c412f7156f14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Tx FIFO error continue. <a href="#gacfdf75b35fffd1931f6c412f7156f14d">More...</a><br/></td></tr>
<tr class="separator:gacfdf75b35fffd1931f6c412f7156f14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e5a3ad4e715bb1116eed303ef87c8a2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga2e5a3ad4e715bb1116eed303ef87c8a2">SAI_RxSetFIFOErrorContinue</a> (I2S_Type *base, bool isEnabled)</td></tr>
<tr class="memdesc:ga2e5a3ad4e715bb1116eed303ef87c8a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set Rx FIFO error continue. <a href="#ga2e5a3ad4e715bb1116eed303ef87c8a2">More...</a><br/></td></tr>
<tr class="separator:ga2e5a3ad4e715bb1116eed303ef87c8a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Interrupts</h2></td></tr>
<tr class="memitem:gae298cb3fe881e951a8e291028d7cf3df"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gae298cb3fe881e951a8e291028d7cf3df">SAI_TxEnableInterrupts</a> (I2S_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gae298cb3fe881e951a8e291028d7cf3df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the SAI Tx interrupt requests. <a href="#gae298cb3fe881e951a8e291028d7cf3df">More...</a><br/></td></tr>
<tr class="separator:gae298cb3fe881e951a8e291028d7cf3df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga43c4f7cbaf1188f9fd15c8c3a017870a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga43c4f7cbaf1188f9fd15c8c3a017870a">SAI_RxEnableInterrupts</a> (I2S_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga43c4f7cbaf1188f9fd15c8c3a017870a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the SAI Rx interrupt requests. <a href="#ga43c4f7cbaf1188f9fd15c8c3a017870a">More...</a><br/></td></tr>
<tr class="separator:ga43c4f7cbaf1188f9fd15c8c3a017870a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5baa11cc20615c1a9b32eea5f6021e66"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga5baa11cc20615c1a9b32eea5f6021e66">SAI_TxDisableInterrupts</a> (I2S_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga5baa11cc20615c1a9b32eea5f6021e66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the SAI Tx interrupt requests. <a href="#ga5baa11cc20615c1a9b32eea5f6021e66">More...</a><br/></td></tr>
<tr class="separator:ga5baa11cc20615c1a9b32eea5f6021e66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9cbeb122b61a580d052438157661c46f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga9cbeb122b61a580d052438157661c46f">SAI_RxDisableInterrupts</a> (I2S_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga9cbeb122b61a580d052438157661c46f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the SAI Rx interrupt requests. <a href="#ga9cbeb122b61a580d052438157661c46f">More...</a><br/></td></tr>
<tr class="separator:ga9cbeb122b61a580d052438157661c46f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
DMA Control</h2></td></tr>
<tr class="memitem:ga131a59354eae81bb20068b7c5e805f9a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga131a59354eae81bb20068b7c5e805f9a">SAI_TxEnableDMA</a> (I2S_Type *base, uint32_t mask, bool enable)</td></tr>
<tr class="memdesc:ga131a59354eae81bb20068b7c5e805f9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the SAI Tx DMA requests. <a href="#ga131a59354eae81bb20068b7c5e805f9a">More...</a><br/></td></tr>
<tr class="separator:ga131a59354eae81bb20068b7c5e805f9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8061229e53203dfca2ed45b2f7648ca5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga8061229e53203dfca2ed45b2f7648ca5">SAI_RxEnableDMA</a> (I2S_Type *base, uint32_t mask, bool enable)</td></tr>
<tr class="memdesc:ga8061229e53203dfca2ed45b2f7648ca5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the SAI Rx DMA requests. <a href="#ga8061229e53203dfca2ed45b2f7648ca5">More...</a><br/></td></tr>
<tr class="separator:ga8061229e53203dfca2ed45b2f7648ca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9eb7289d72ab3d607b85948bd8377dcc"><td class="memItemLeft" align="right" valign="top">static uintptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga9eb7289d72ab3d607b85948bd8377dcc">SAI_TxGetDataRegisterAddress</a> (I2S_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:ga9eb7289d72ab3d607b85948bd8377dcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SAI Tx data register address. <a href="#ga9eb7289d72ab3d607b85948bd8377dcc">More...</a><br/></td></tr>
<tr class="separator:ga9eb7289d72ab3d607b85948bd8377dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad41b09d7c4c5e3fbd6a6584ea1eb015"><td class="memItemLeft" align="right" valign="top">static uintptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaad41b09d7c4c5e3fbd6a6584ea1eb015">SAI_RxGetDataRegisterAddress</a> (I2S_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gaad41b09d7c4c5e3fbd6a6584ea1eb015"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SAI Rx data register address. <a href="#gaad41b09d7c4c5e3fbd6a6584ea1eb015">More...</a><br/></td></tr>
<tr class="separator:gaad41b09d7c4c5e3fbd6a6584ea1eb015"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Bus Operations</h2></td></tr>
<tr class="memitem:ga32e4d2e732142517cc9ae2c1d12ee641"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga32e4d2e732142517cc9ae2c1d12ee641">SAI_WriteBlocking</a> (I2S_Type *base, uint32_t channel, uint32_t bitWidth, uint8_t *buffer, uint32_t size)</td></tr>
<tr class="memdesc:ga32e4d2e732142517cc9ae2c1d12ee641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data using a blocking method. <a href="#ga32e4d2e732142517cc9ae2c1d12ee641">More...</a><br/></td></tr>
<tr class="separator:ga32e4d2e732142517cc9ae2c1d12ee641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7dc2b062b866a82bbc1798eda2b7f7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaf7dc2b062b866a82bbc1798eda2b7f7c">SAI_WriteMultiChannelBlocking</a> (I2S_Type *base, uint32_t channel, uint32_t channelMask, uint32_t bitWidth, uint8_t *buffer, uint32_t size)</td></tr>
<tr class="memdesc:gaf7dc2b062b866a82bbc1798eda2b7f7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data to multi channel using a blocking method. <a href="#gaf7dc2b062b866a82bbc1798eda2b7f7c">More...</a><br/></td></tr>
<tr class="separator:gaf7dc2b062b866a82bbc1798eda2b7f7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6299cd60dee1e684683f3473a62e831b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga6299cd60dee1e684683f3473a62e831b">SAI_WriteData</a> (I2S_Type *base, uint32_t channel, uint32_t data)</td></tr>
<tr class="memdesc:ga6299cd60dee1e684683f3473a62e831b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes data into SAI FIFO. <a href="#ga6299cd60dee1e684683f3473a62e831b">More...</a><br/></td></tr>
<tr class="separator:ga6299cd60dee1e684683f3473a62e831b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f954b031a8e2a857a0fddf87a9a1368"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga0f954b031a8e2a857a0fddf87a9a1368">SAI_ReadBlocking</a> (I2S_Type *base, uint32_t channel, uint32_t bitWidth, uint8_t *buffer, uint32_t size)</td></tr>
<tr class="memdesc:ga0f954b031a8e2a857a0fddf87a9a1368"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives data using a blocking method. <a href="#ga0f954b031a8e2a857a0fddf87a9a1368">More...</a><br/></td></tr>
<tr class="separator:ga0f954b031a8e2a857a0fddf87a9a1368"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85217823bf3acbe6616f1dc325f7a87b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga85217823bf3acbe6616f1dc325f7a87b">SAI_ReadMultiChannelBlocking</a> (I2S_Type *base, uint32_t channel, uint32_t channelMask, uint32_t bitWidth, uint8_t *buffer, uint32_t size)</td></tr>
<tr class="memdesc:ga85217823bf3acbe6616f1dc325f7a87b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives multi channel data using a blocking method. <a href="#ga85217823bf3acbe6616f1dc325f7a87b">More...</a><br/></td></tr>
<tr class="separator:ga85217823bf3acbe6616f1dc325f7a87b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gada44ab158250b8e94258b9d8fd3a63dd"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gada44ab158250b8e94258b9d8fd3a63dd">SAI_ReadData</a> (I2S_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gada44ab158250b8e94258b9d8fd3a63dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from the SAI FIFO. <a href="#gada44ab158250b8e94258b9d8fd3a63dd">More...</a><br/></td></tr>
<tr class="separator:gada44ab158250b8e94258b9d8fd3a63dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Transactional</h2></td></tr>
<tr class="memitem:ga69eaf09522d88c69b47ec104c11875de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga69eaf09522d88c69b47ec104c11875de">SAI_TransferTxCreateHandle</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, <a class="el" href="a00061.html#gacda077e13dd34cd0fa1e865354591fe2">sai_transfer_callback_t</a> callback, void *userData)</td></tr>
<tr class="memdesc:ga69eaf09522d88c69b47ec104c11875de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SAI Tx handle. <a href="#ga69eaf09522d88c69b47ec104c11875de">More...</a><br/></td></tr>
<tr class="separator:ga69eaf09522d88c69b47ec104c11875de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c29a38ae0802fa81e304eee337ecf6b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga4c29a38ae0802fa81e304eee337ecf6b">SAI_TransferRxCreateHandle</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, <a class="el" href="a00061.html#gacda077e13dd34cd0fa1e865354591fe2">sai_transfer_callback_t</a> callback, void *userData)</td></tr>
<tr class="memdesc:ga4c29a38ae0802fa81e304eee337ecf6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SAI Rx handle. <a href="#ga4c29a38ae0802fa81e304eee337ecf6b">More...</a><br/></td></tr>
<tr class="separator:ga4c29a38ae0802fa81e304eee337ecf6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7efb93f8b194f87ef19708869755b4de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga7efb93f8b194f87ef19708869755b4de">SAI_TransferTxSetConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, <a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config)</td></tr>
<tr class="memdesc:ga7efb93f8b194f87ef19708869755b4de"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI transmitter transfer configurations. <a href="#ga7efb93f8b194f87ef19708869755b4de">More...</a><br/></td></tr>
<tr class="separator:ga7efb93f8b194f87ef19708869755b4de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae031726fbcc4dc9ac964367e8965f0e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gae031726fbcc4dc9ac964367e8965f0e7">SAI_TransferRxSetConfig</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, <a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *config)</td></tr>
<tr class="memdesc:gae031726fbcc4dc9ac964367e8965f0e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI receiver transfer configurations. <a href="#gae031726fbcc4dc9ac964367e8965f0e7">More...</a><br/></td></tr>
<tr class="separator:gae031726fbcc4dc9ac964367e8965f0e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaefe0557861a223913d7b1d8959a56995"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gaefe0557861a223913d7b1d8959a56995">SAI_TransferSendNonBlocking</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, <a class="el" href="a00061.html#ga930ac1cfb546457c3e1ebf70151a6212">sai_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:gaefe0557861a223913d7b1d8959a56995"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an interrupt non-blocking send transfer on SAI. <a href="#gaefe0557861a223913d7b1d8959a56995">More...</a><br/></td></tr>
<tr class="separator:gaefe0557861a223913d7b1d8959a56995"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad23a55af8054fbd0cb8cbb175f2e497c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gad23a55af8054fbd0cb8cbb175f2e497c">SAI_TransferReceiveNonBlocking</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, <a class="el" href="a00061.html#ga930ac1cfb546457c3e1ebf70151a6212">sai_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:gad23a55af8054fbd0cb8cbb175f2e497c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an interrupt non-blocking receive transfer on SAI. <a href="#gad23a55af8054fbd0cb8cbb175f2e497c">More...</a><br/></td></tr>
<tr class="separator:gad23a55af8054fbd0cb8cbb175f2e497c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2b7aaa215232aa8e12eb751b0edd90f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gac2b7aaa215232aa8e12eb751b0edd90f">SAI_TransferGetSendCount</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, size_t *count)</td></tr>
<tr class="memdesc:gac2b7aaa215232aa8e12eb751b0edd90f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a set byte count. <a href="#gac2b7aaa215232aa8e12eb751b0edd90f">More...</a><br/></td></tr>
<tr class="separator:gac2b7aaa215232aa8e12eb751b0edd90f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb739944ba12a66543842993c1716464"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gafb739944ba12a66543842993c1716464">SAI_TransferGetReceiveCount</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle, size_t *count)</td></tr>
<tr class="memdesc:gafb739944ba12a66543842993c1716464"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a received byte count. <a href="#gafb739944ba12a66543842993c1716464">More...</a><br/></td></tr>
<tr class="separator:gafb739944ba12a66543842993c1716464"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fca6aa3b5cbcf05ca2c0b6637b476e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga9fca6aa3b5cbcf05ca2c0b6637b476e7">SAI_TransferAbortSend</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga9fca6aa3b5cbcf05ca2c0b6637b476e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the current send. <a href="#ga9fca6aa3b5cbcf05ca2c0b6637b476e7">More...</a><br/></td></tr>
<tr class="separator:ga9fca6aa3b5cbcf05ca2c0b6637b476e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2859ed8b6805a962d45d5eb16a9095f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gab2859ed8b6805a962d45d5eb16a9095f">SAI_TransferAbortReceive</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle)</td></tr>
<tr class="memdesc:gab2859ed8b6805a962d45d5eb16a9095f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the current IRQ receive. <a href="#gab2859ed8b6805a962d45d5eb16a9095f">More...</a><br/></td></tr>
<tr class="separator:gab2859ed8b6805a962d45d5eb16a9095f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9dcd9e96ab549fc44f5a9d521c87ab87"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga9dcd9e96ab549fc44f5a9d521c87ab87">SAI_TransferTerminateSend</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga9dcd9e96ab549fc44f5a9d521c87ab87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminate all SAI send. <a href="#ga9dcd9e96ab549fc44f5a9d521c87ab87">More...</a><br/></td></tr>
<tr class="separator:ga9dcd9e96ab549fc44f5a9d521c87ab87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4770cca8a45e8fa32026850dcd721981"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga4770cca8a45e8fa32026850dcd721981">SAI_TransferTerminateReceive</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga4770cca8a45e8fa32026850dcd721981"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminate all SAI receive. <a href="#ga4770cca8a45e8fa32026850dcd721981">More...</a><br/></td></tr>
<tr class="separator:ga4770cca8a45e8fa32026850dcd721981"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40d3fede9289fcea2706679138ce466a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ga40d3fede9289fcea2706679138ce466a">SAI_TransferTxHandleIRQ</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga40d3fede9289fcea2706679138ce466a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tx interrupt handler. <a href="#ga40d3fede9289fcea2706679138ce466a">More...</a><br/></td></tr>
<tr class="separator:ga40d3fede9289fcea2706679138ce466a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab66ff18cc17137d132a3b5c8accbdb34"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#gab66ff18cc17137d132a3b5c8accbdb34">SAI_TransferRxHandleIRQ</a> (I2S_Type *base, <a class="el" href="a00061.html#a00453">sai_handle_t</a> *handle)</td></tr>
<tr class="memdesc:gab66ff18cc17137d132a3b5c8accbdb34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tx interrupt handler. <a href="#gab66ff18cc17137d132a3b5c8accbdb34">More...</a><br/></td></tr>
<tr class="separator:gab66ff18cc17137d132a3b5c8accbdb34"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00450" id="a00450"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a5b421db599a854c02fc9503335c74c05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b421db599a854c02fc9503335c74c05"></a>
<a class="el" href="a00061.html#ga2f1f1a725e4d1540d8dfccbdaed66b26">sai_protocol_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a5b421db599a854c02fc9503335c74c05">protocol</a></td></tr>
<tr class="memdesc:a5b421db599a854c02fc9503335c74c05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio bus protocol in SAI. <br/></td></tr>
<tr class="separator:a5b421db599a854c02fc9503335c74c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2c55022aa4d0eb523e52bb530244c1d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2c55022aa4d0eb523e52bb530244c1d"></a>
<a class="el" href="a00061.html#ga0cc249bf49da9d53829d1e1eabc8cc91">sai_sync_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ae2c55022aa4d0eb523e52bb530244c1d">syncMode</a></td></tr>
<tr class="memdesc:ae2c55022aa4d0eb523e52bb530244c1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SAI sync mode, control Tx/Rx clock sync. <br/></td></tr>
<tr class="separator:ae2c55022aa4d0eb523e52bb530244c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a952e3a9d8165546fde1f5c198eb8edf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a952e3a9d8165546fde1f5c198eb8edf0"></a>
<a class="el" href="a00061.html#ga048c6fc58b414c5f571ad47b1923470b">sai_bclk_source_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a952e3a9d8165546fde1f5c198eb8edf0">bclkSource</a></td></tr>
<tr class="memdesc:a952e3a9d8165546fde1f5c198eb8edf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit Clock source. <br/></td></tr>
<tr class="separator:a952e3a9d8165546fde1f5c198eb8edf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada6d379383834679f3d4ec23ad118abe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada6d379383834679f3d4ec23ad118abe"></a>
<a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ada6d379383834679f3d4ec23ad118abe">masterSlave</a></td></tr>
<tr class="memdesc:ada6d379383834679f3d4ec23ad118abe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master or slave. <br/></td></tr>
<tr class="separator:ada6d379383834679f3d4ec23ad118abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="a00457" id="a00457"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_transfer_format</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:af9caef86da1541e7d07e281bc79f1bf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9caef86da1541e7d07e281bc79f1bf0"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#af9caef86da1541e7d07e281bc79f1bf0">sampleRate_Hz</a></td></tr>
<tr class="memdesc:af9caef86da1541e7d07e281bc79f1bf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample rate of audio data. <br/></td></tr>
<tr class="separator:af9caef86da1541e7d07e281bc79f1bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8910bbcb7b3500f07bac5c3582db631b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8910bbcb7b3500f07bac5c3582db631b"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a8910bbcb7b3500f07bac5c3582db631b">bitWidth</a></td></tr>
<tr class="memdesc:a8910bbcb7b3500f07bac5c3582db631b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data length of audio data, usually 8/16/24/32 bits. <br/></td></tr>
<tr class="separator:a8910bbcb7b3500f07bac5c3582db631b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f17cdc6780ecdac17b8e98526e6421c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f17cdc6780ecdac17b8e98526e6421c"></a>
<a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a9f17cdc6780ecdac17b8e98526e6421c">stereo</a></td></tr>
<tr class="memdesc:a9f17cdc6780ecdac17b8e98526e6421c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mono or stereo. <br/></td></tr>
<tr class="separator:a9f17cdc6780ecdac17b8e98526e6421c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a199148a073dcb1a7295e6716bb34e2ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a199148a073dcb1a7295e6716bb34e2ca"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a199148a073dcb1a7295e6716bb34e2ca">watermark</a></td></tr>
<tr class="memdesc:a199148a073dcb1a7295e6716bb34e2ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Watermark value. <br/></td></tr>
<tr class="separator:a199148a073dcb1a7295e6716bb34e2ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addd22e9cbdc33cf297e451be6d9a04d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="addd22e9cbdc33cf297e451be6d9a04d0"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#addd22e9cbdc33cf297e451be6d9a04d0">channel</a></td></tr>
<tr class="memdesc:addd22e9cbdc33cf297e451be6d9a04d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer start channel. <br/></td></tr>
<tr class="separator:addd22e9cbdc33cf297e451be6d9a04d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab61782c440f26efdfa4aaf3c3f820a9d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab61782c440f26efdfa4aaf3c3f820a9d"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ab61782c440f26efdfa4aaf3c3f820a9d">channelMask</a></td></tr>
<tr class="memdesc:ab61782c440f26efdfa4aaf3c3f820a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">enabled channel mask value, reference _sai_channel_mask <br/></td></tr>
<tr class="separator:ab61782c440f26efdfa4aaf3c3f820a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d8fa31a696519f78b38864a649a4198"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d8fa31a696519f78b38864a649a4198"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a6d8fa31a696519f78b38864a649a4198">endChannel</a></td></tr>
<tr class="memdesc:a6d8fa31a696519f78b38864a649a4198"><td class="mdescLeft">&#160;</td><td class="mdescRight">end channel number <br/></td></tr>
<tr class="separator:a6d8fa31a696519f78b38864a649a4198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e3e6db3c8af8c653045e62166ce8083"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e3e6db3c8af8c653045e62166ce8083"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a5e3e6db3c8af8c653045e62166ce8083">channelNums</a></td></tr>
<tr class="memdesc:a5e3e6db3c8af8c653045e62166ce8083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total enabled channel numbers. <br/></td></tr>
<tr class="separator:a5e3e6db3c8af8c653045e62166ce8083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae845327e335b3b54faa2de895c465924"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae845327e335b3b54faa2de895c465924"></a>
<a class="el" href="a00061.html#ga2f1f1a725e4d1540d8dfccbdaed66b26">sai_protocol_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ae845327e335b3b54faa2de895c465924">protocol</a></td></tr>
<tr class="memdesc:ae845327e335b3b54faa2de895c465924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Which audio protocol used. <br/></td></tr>
<tr class="separator:ae845327e335b3b54faa2de895c465924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20f5fd49aacb352b5239a75000f9a77c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a20f5fd49aacb352b5239a75000f9a77c">isFrameSyncCompact</a></td></tr>
<tr class="memdesc:a20f5fd49aacb352b5239a75000f9a77c"><td class="mdescLeft">&#160;</td><td class="mdescRight">True means Frame sync length is configurable according to bitWidth, false means frame sync length is 64 times of bit clock. <a href="#a20f5fd49aacb352b5239a75000f9a77c">More...</a><br/></td></tr>
<tr class="separator:a20f5fd49aacb352b5239a75000f9a77c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a20f5fd49aacb352b5239a75000f9a77c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _sai_transfer_format::isFrameSyncCompact</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00451" id="a00451"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_fifo</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a4bc8094cc923c8d909b599bd81f385a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4bc8094cc923c8d909b599bd81f385a9"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a4bc8094cc923c8d909b599bd81f385a9">fifoContinueOneError</a></td></tr>
<tr class="memdesc:a4bc8094cc923c8d909b599bd81f385a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">fifo continues when error occur <br/></td></tr>
<tr class="separator:a4bc8094cc923c8d909b599bd81f385a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add8b2fe71eb00c45dfc630d11735ea77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add8b2fe71eb00c45dfc630d11735ea77"></a>
<a class="el" href="a00061.html#ga7dd60fbab78854a04e3410d5dd2b1ee2">sai_fifo_combine_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#add8b2fe71eb00c45dfc630d11735ea77">fifoCombine</a></td></tr>
<tr class="memdesc:add8b2fe71eb00c45dfc630d11735ea77"><td class="mdescLeft">&#160;</td><td class="mdescRight">fifo combine mode <br/></td></tr>
<tr class="separator:add8b2fe71eb00c45dfc630d11735ea77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ecf6b224d002ea60f56545226c96868"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ecf6b224d002ea60f56545226c96868"></a>
<a class="el" href="a00061.html#ga07d41049148c43c02e1eeda798ccca3c">sai_fifo_packing_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a9ecf6b224d002ea60f56545226c96868">fifoPacking</a></td></tr>
<tr class="memdesc:a9ecf6b224d002ea60f56545226c96868"><td class="mdescLeft">&#160;</td><td class="mdescRight">fifo packing mode <br/></td></tr>
<tr class="separator:a9ecf6b224d002ea60f56545226c96868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2ef87a2eb761adbccf9592c0f849622"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2ef87a2eb761adbccf9592c0f849622"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ad2ef87a2eb761adbccf9592c0f849622">fifoWatermark</a></td></tr>
<tr class="memdesc:ad2ef87a2eb761adbccf9592c0f849622"><td class="mdescLeft">&#160;</td><td class="mdescRight">fifo watermark <br/></td></tr>
<tr class="separator:ad2ef87a2eb761adbccf9592c0f849622"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="a00449" id="a00449"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_bit_clock</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a8343d9c4c1b8f7eadb8e1c235bccbbee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8343d9c4c1b8f7eadb8e1c235bccbbee"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a8343d9c4c1b8f7eadb8e1c235bccbbee">bclkSrcSwap</a></td></tr>
<tr class="memdesc:a8343d9c4c1b8f7eadb8e1c235bccbbee"><td class="mdescLeft">&#160;</td><td class="mdescRight">bit clock source swap <br/></td></tr>
<tr class="separator:a8343d9c4c1b8f7eadb8e1c235bccbbee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8924f89846937263736c8f5be353b20"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#af8924f89846937263736c8f5be353b20">bclkInputDelay</a></td></tr>
<tr class="memdesc:af8924f89846937263736c8f5be353b20"><td class="mdescLeft">&#160;</td><td class="mdescRight">bit clock actually used by the transmitter is delayed by the pad output delay, this has effect of decreasing the data input setup time, but increasing the data output valid time . <a href="#af8924f89846937263736c8f5be353b20">More...</a><br/></td></tr>
<tr class="separator:af8924f89846937263736c8f5be353b20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad580acf27562085460d00d3a6e2e0f39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad580acf27562085460d00d3a6e2e0f39"></a>
<a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ad580acf27562085460d00d3a6e2e0f39">bclkPolarity</a></td></tr>
<tr class="memdesc:ad580acf27562085460d00d3a6e2e0f39"><td class="mdescLeft">&#160;</td><td class="mdescRight">bit clock polarity <br/></td></tr>
<tr class="separator:ad580acf27562085460d00d3a6e2e0f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a766974eb4ce6f9280a4f147075ea9d2c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a766974eb4ce6f9280a4f147075ea9d2c"></a>
<a class="el" href="a00061.html#ga048c6fc58b414c5f571ad47b1923470b">sai_bclk_source_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a766974eb4ce6f9280a4f147075ea9d2c">bclkSource</a></td></tr>
<tr class="memdesc:a766974eb4ce6f9280a4f147075ea9d2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">bit Clock source <br/></td></tr>
<tr class="separator:a766974eb4ce6f9280a4f147075ea9d2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="af8924f89846937263736c8f5be353b20"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _sai_bit_clock::bclkInputDelay</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00452" id="a00452"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_frame_sync</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a31fdf7c982320e05822da44b63d830df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31fdf7c982320e05822da44b63d830df"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a31fdf7c982320e05822da44b63d830df">frameSyncWidth</a></td></tr>
<tr class="memdesc:a31fdf7c982320e05822da44b63d830df"><td class="mdescLeft">&#160;</td><td class="mdescRight">frame sync width in number of bit clocks <br/></td></tr>
<tr class="separator:a31fdf7c982320e05822da44b63d830df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af552716bd41acd30c752322ab3280aa4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af552716bd41acd30c752322ab3280aa4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#af552716bd41acd30c752322ab3280aa4">frameSyncEarly</a></td></tr>
<tr class="memdesc:af552716bd41acd30c752322ab3280aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRUE is frame sync assert one bit before the first bit of frame FALSE is frame sync assert with the first bit of the frame. <br/></td></tr>
<tr class="separator:af552716bd41acd30c752322ab3280aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bc83c4a5eff85ea790a65dc1daf40de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bc83c4a5eff85ea790a65dc1daf40de"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a5bc83c4a5eff85ea790a65dc1daf40de">frameSyncGenerateOnDemand</a></td></tr>
<tr class="memdesc:a5bc83c4a5eff85ea790a65dc1daf40de"><td class="mdescLeft">&#160;</td><td class="mdescRight">internal frame sync is generated when FIFO waring flag is clear <br/></td></tr>
<tr class="separator:a5bc83c4a5eff85ea790a65dc1daf40de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3837b58e82fdd4a1db0ebd7ed7f2d98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3837b58e82fdd4a1db0ebd7ed7f2d98"></a>
<a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#aa3837b58e82fdd4a1db0ebd7ed7f2d98">frameSyncPolarity</a></td></tr>
<tr class="memdesc:aa3837b58e82fdd4a1db0ebd7ed7f2d98"><td class="mdescLeft">&#160;</td><td class="mdescRight">frame sync polarity <br/></td></tr>
<tr class="separator:aa3837b58e82fdd4a1db0ebd7ed7f2d98"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="a00454" id="a00454"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_serial_data</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a71c49c238279e7fc0d9829658a5301b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a71c49c238279e7fc0d9829658a5301b8"></a>
<a class="el" href="a00061.html#ga2e822db3e6c8a0f48d19a91e154be51a">sai_data_pin_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a71c49c238279e7fc0d9829658a5301b8">dataMode</a></td></tr>
<tr class="memdesc:a71c49c238279e7fc0d9829658a5301b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">sai data pin state when slots masked or channel disabled <br/></td></tr>
<tr class="separator:a71c49c238279e7fc0d9829658a5301b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedd76820a027525673309c3b5a204743"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aedd76820a027525673309c3b5a204743"></a>
<a class="el" href="a00061.html#ga6c09c5ee1699b834bcdcf38b0aaa579e">sai_data_order_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#aedd76820a027525673309c3b5a204743">dataOrder</a></td></tr>
<tr class="memdesc:aedd76820a027525673309c3b5a204743"><td class="mdescLeft">&#160;</td><td class="mdescRight">configure whether the LSB or MSB is transmitted first <br/></td></tr>
<tr class="separator:aedd76820a027525673309c3b5a204743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37035970e65db52f365ec3ca3a8db91d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37035970e65db52f365ec3ca3a8db91d"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a37035970e65db52f365ec3ca3a8db91d">dataWord0Length</a></td></tr>
<tr class="memdesc:a37035970e65db52f365ec3ca3a8db91d"><td class="mdescLeft">&#160;</td><td class="mdescRight">configure the number of bits in the first word in each frame <br/></td></tr>
<tr class="separator:a37035970e65db52f365ec3ca3a8db91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e77608a2e8bce70ffb6bda8ff660d31"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e77608a2e8bce70ffb6bda8ff660d31"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a9e77608a2e8bce70ffb6bda8ff660d31">dataWordNLength</a></td></tr>
<tr class="memdesc:a9e77608a2e8bce70ffb6bda8ff660d31"><td class="mdescLeft">&#160;</td><td class="mdescRight">configure the number of bits in the each word in each frame, except the first word <br/></td></tr>
<tr class="separator:a9e77608a2e8bce70ffb6bda8ff660d31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2c59fc6a2a2a1d0f4a7fc2c93537d94"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2c59fc6a2a2a1d0f4a7fc2c93537d94"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#af2c59fc6a2a2a1d0f4a7fc2c93537d94">dataWordLength</a></td></tr>
<tr class="memdesc:af2c59fc6a2a2a1d0f4a7fc2c93537d94"><td class="mdescLeft">&#160;</td><td class="mdescRight">used to record the data length for dma transfer <br/></td></tr>
<tr class="separator:af2c59fc6a2a2a1d0f4a7fc2c93537d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb5fd2e2cbb10e6146a82fb05f2898cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb5fd2e2cbb10e6146a82fb05f2898cc"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#acb5fd2e2cbb10e6146a82fb05f2898cc">dataFirstBitShifted</a></td></tr>
<tr class="memdesc:acb5fd2e2cbb10e6146a82fb05f2898cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the bit index for the first bit transmitted for each word in the frame. <br/></td></tr>
<tr class="separator:acb5fd2e2cbb10e6146a82fb05f2898cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cb9c5a146653c390ce2fc46c8a034fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cb9c5a146653c390ce2fc46c8a034fb"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a4cb9c5a146653c390ce2fc46c8a034fb">dataWordNum</a></td></tr>
<tr class="memdesc:a4cb9c5a146653c390ce2fc46c8a034fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">configure the number of words in each frame <br/></td></tr>
<tr class="separator:a4cb9c5a146653c390ce2fc46c8a034fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7157760c4431ff4b5328489b8f49f56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7157760c4431ff4b5328489b8f49f56"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#af7157760c4431ff4b5328489b8f49f56">dataMaskedWord</a></td></tr>
<tr class="memdesc:af7157760c4431ff4b5328489b8f49f56"><td class="mdescLeft">&#160;</td><td class="mdescRight">configure whether the transmit word is masked <br/></td></tr>
<tr class="separator:af7157760c4431ff4b5328489b8f49f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="a00455" id="a00455"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_transceiver</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a8128db096bacd889a5732b1f9e3a5c07"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8128db096bacd889a5732b1f9e3a5c07"></a>
<a class="el" href="a00061.html#ga12a9182f90371122ecfe159f6a6342f0">sai_serial_data_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a8128db096bacd889a5732b1f9e3a5c07">serialData</a></td></tr>
<tr class="memdesc:a8128db096bacd889a5732b1f9e3a5c07"><td class="mdescLeft">&#160;</td><td class="mdescRight">serial data configurations <br/></td></tr>
<tr class="separator:a8128db096bacd889a5732b1f9e3a5c07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65371891fd566f5d99ec331734c84b48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65371891fd566f5d99ec331734c84b48"></a>
<a class="el" href="a00061.html#gad19ff288b9257f5f2b782bef0ea64e91">sai_frame_sync_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a65371891fd566f5d99ec331734c84b48">frameSync</a></td></tr>
<tr class="memdesc:a65371891fd566f5d99ec331734c84b48"><td class="mdescLeft">&#160;</td><td class="mdescRight">ws configurations <br/></td></tr>
<tr class="separator:a65371891fd566f5d99ec331734c84b48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7e453624fd6a19f808c2c6f77028465"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7e453624fd6a19f808c2c6f77028465"></a>
<a class="el" href="a00061.html#ga1e7467cccff2036acd9ea3b0053918bf">sai_bit_clock_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ac7e453624fd6a19f808c2c6f77028465">bitClock</a></td></tr>
<tr class="memdesc:ac7e453624fd6a19f808c2c6f77028465"><td class="mdescLeft">&#160;</td><td class="mdescRight">bit clock configurations <br/></td></tr>
<tr class="separator:ac7e453624fd6a19f808c2c6f77028465"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f352ceb9e29f7b6073a2b3edeaab9df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f352ceb9e29f7b6073a2b3edeaab9df"></a>
<a class="el" href="a00061.html#ga59fe6ce5fe3732f25651384ea4644c8a">sai_fifo_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a5f352ceb9e29f7b6073a2b3edeaab9df">fifo</a></td></tr>
<tr class="memdesc:a5f352ceb9e29f7b6073a2b3edeaab9df"><td class="mdescLeft">&#160;</td><td class="mdescRight">fifo configurations <br/></td></tr>
<tr class="separator:a5f352ceb9e29f7b6073a2b3edeaab9df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f77df86c2bcece2fe5633813e33c94b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f77df86c2bcece2fe5633813e33c94b"></a>
<a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a3f77df86c2bcece2fe5633813e33c94b">masterSlave</a></td></tr>
<tr class="memdesc:a3f77df86c2bcece2fe5633813e33c94b"><td class="mdescLeft">&#160;</td><td class="mdescRight">transceiver is master or slave <br/></td></tr>
<tr class="separator:a3f77df86c2bcece2fe5633813e33c94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc63bedce5d95d420e7af87b49eeabe3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc63bedce5d95d420e7af87b49eeabe3"></a>
<a class="el" href="a00061.html#ga0cc249bf49da9d53829d1e1eabc8cc91">sai_sync_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#acc63bedce5d95d420e7af87b49eeabe3">syncMode</a></td></tr>
<tr class="memdesc:acc63bedce5d95d420e7af87b49eeabe3"><td class="mdescLeft">&#160;</td><td class="mdescRight">transceiver sync mode <br/></td></tr>
<tr class="separator:acc63bedce5d95d420e7af87b49eeabe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2571ffd557707fa7bf6538004b71aa2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2571ffd557707fa7bf6538004b71aa2"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ab2571ffd557707fa7bf6538004b71aa2">startChannel</a></td></tr>
<tr class="memdesc:ab2571ffd557707fa7bf6538004b71aa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer start channel. <br/></td></tr>
<tr class="separator:ab2571ffd557707fa7bf6538004b71aa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3002b37016daa160f435a363c62e63ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3002b37016daa160f435a363c62e63ec"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a3002b37016daa160f435a363c62e63ec">channelMask</a></td></tr>
<tr class="memdesc:a3002b37016daa160f435a363c62e63ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">enabled channel mask value, reference _sai_channel_mask <br/></td></tr>
<tr class="separator:a3002b37016daa160f435a363c62e63ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75b972d1f7c7f583592a52e9ac93b34d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75b972d1f7c7f583592a52e9ac93b34d"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a75b972d1f7c7f583592a52e9ac93b34d">endChannel</a></td></tr>
<tr class="memdesc:a75b972d1f7c7f583592a52e9ac93b34d"><td class="mdescLeft">&#160;</td><td class="mdescRight">end channel number <br/></td></tr>
<tr class="separator:a75b972d1f7c7f583592a52e9ac93b34d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97dd0229a1f44951ef6bb2f584e8c47a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97dd0229a1f44951ef6bb2f584e8c47a"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a97dd0229a1f44951ef6bb2f584e8c47a">channelNums</a></td></tr>
<tr class="memdesc:a97dd0229a1f44951ef6bb2f584e8c47a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total enabled channel numbers. <br/></td></tr>
<tr class="separator:a97dd0229a1f44951ef6bb2f584e8c47a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<a name="a00456" id="a00456"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_transfer</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ac372fcd53710c263d7fd482d6d90ae2e"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ac372fcd53710c263d7fd482d6d90ae2e">data</a></td></tr>
<tr class="memdesc:ac372fcd53710c263d7fd482d6d90ae2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data start address to transfer. <a href="#ac372fcd53710c263d7fd482d6d90ae2e">More...</a><br/></td></tr>
<tr class="separator:ac372fcd53710c263d7fd482d6d90ae2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25282697ebc45f12ac90dca4626e2b1f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a25282697ebc45f12ac90dca4626e2b1f">dataSize</a></td></tr>
<tr class="memdesc:a25282697ebc45f12ac90dca4626e2b1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer size. <a href="#a25282697ebc45f12ac90dca4626e2b1f">More...</a><br/></td></tr>
<tr class="separator:a25282697ebc45f12ac90dca4626e2b1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="ac372fcd53710c263d7fd482d6d90ae2e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* _sai_transfer::data</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a25282697ebc45f12ac90dca4626e2b1f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t _sai_transfer::dataSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00453" id="a00453"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sai_handle</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a3598ccb8a810a02d40c5ad7b9d3d90e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3598ccb8a810a02d40c5ad7b9d3d90e5"></a>
I2S_Type *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a3598ccb8a810a02d40c5ad7b9d3d90e5">base</a></td></tr>
<tr class="memdesc:a3598ccb8a810a02d40c5ad7b9d3d90e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">base address <br/></td></tr>
<tr class="separator:a3598ccb8a810a02d40c5ad7b9d3d90e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a484b2bb443fcaabd7a37ba00df2d93c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a484b2bb443fcaabd7a37ba00df2d93c2"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a484b2bb443fcaabd7a37ba00df2d93c2">state</a></td></tr>
<tr class="memdesc:a484b2bb443fcaabd7a37ba00df2d93c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer status. <br/></td></tr>
<tr class="separator:a484b2bb443fcaabd7a37ba00df2d93c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3039f4a86b33fb6dd680c3837fe0371d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3039f4a86b33fb6dd680c3837fe0371d"></a>
<a class="el" href="a00061.html#gacda077e13dd34cd0fa1e865354591fe2">sai_transfer_callback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a3039f4a86b33fb6dd680c3837fe0371d">callback</a></td></tr>
<tr class="memdesc:a3039f4a86b33fb6dd680c3837fe0371d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function called at transfer event. <br/></td></tr>
<tr class="separator:a3039f4a86b33fb6dd680c3837fe0371d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0188916bfadbdd71e3a657b13caa5a66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0188916bfadbdd71e3a657b13caa5a66"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a0188916bfadbdd71e3a657b13caa5a66">userData</a></td></tr>
<tr class="memdesc:a0188916bfadbdd71e3a657b13caa5a66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback parameter passed to callback function. <br/></td></tr>
<tr class="separator:a0188916bfadbdd71e3a657b13caa5a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a659d07d5c8ad36e1d0c94b095c6a4bfd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a659d07d5c8ad36e1d0c94b095c6a4bfd"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a659d07d5c8ad36e1d0c94b095c6a4bfd">bitWidth</a></td></tr>
<tr class="memdesc:a659d07d5c8ad36e1d0c94b095c6a4bfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit width for transfer, 8/16/24/32 bits. <br/></td></tr>
<tr class="separator:a659d07d5c8ad36e1d0c94b095c6a4bfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b47fd603649bad8919ef95b3f8b0237"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b47fd603649bad8919ef95b3f8b0237"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a3b47fd603649bad8919ef95b3f8b0237">channel</a></td></tr>
<tr class="memdesc:a3b47fd603649bad8919ef95b3f8b0237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer start channel. <br/></td></tr>
<tr class="separator:a3b47fd603649bad8919ef95b3f8b0237"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3bb36b01269b8bf4150b884e59ce132"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3bb36b01269b8bf4150b884e59ce132"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#aa3bb36b01269b8bf4150b884e59ce132">channelMask</a></td></tr>
<tr class="memdesc:aa3bb36b01269b8bf4150b884e59ce132"><td class="mdescLeft">&#160;</td><td class="mdescRight">enabled channel mask value, refernece _sai_channel_mask <br/></td></tr>
<tr class="separator:aa3bb36b01269b8bf4150b884e59ce132"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7742e619943f5a353964c1b00f3f0ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7742e619943f5a353964c1b00f3f0ef"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#ad7742e619943f5a353964c1b00f3f0ef">endChannel</a></td></tr>
<tr class="memdesc:ad7742e619943f5a353964c1b00f3f0ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">end channel number <br/></td></tr>
<tr class="separator:ad7742e619943f5a353964c1b00f3f0ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a6e5ad0ce1edd1323e169cffac7252b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a6e5ad0ce1edd1323e169cffac7252b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a8a6e5ad0ce1edd1323e169cffac7252b">channelNums</a></td></tr>
<tr class="memdesc:a8a6e5ad0ce1edd1323e169cffac7252b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total enabled channel numbers. <br/></td></tr>
<tr class="separator:a8a6e5ad0ce1edd1323e169cffac7252b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b7dee489f0a2db4577a2b09c579ce2a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b7dee489f0a2db4577a2b09c579ce2a"></a>
<a class="el" href="a00061.html#ga930ac1cfb546457c3e1ebf70151a6212">sai_transfer_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a0b7dee489f0a2db4577a2b09c579ce2a">saiQueue</a> [<a class="el" href="a00061.html#ga580bf35fe1f08d7bb054bee399f8b085">SAI_XFER_QUEUE_SIZE</a>]</td></tr>
<tr class="memdesc:a0b7dee489f0a2db4577a2b09c579ce2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer queue storing queued transfer. <br/></td></tr>
<tr class="separator:a0b7dee489f0a2db4577a2b09c579ce2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cba83e893771182893afe0c4fca235d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cba83e893771182893afe0c4fca235d"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#a9cba83e893771182893afe0c4fca235d">transferSize</a> [<a class="el" href="a00061.html#ga580bf35fe1f08d7bb054bee399f8b085">SAI_XFER_QUEUE_SIZE</a>]</td></tr>
<tr class="memdesc:a9cba83e893771182893afe0c4fca235d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data bytes need to transfer. <br/></td></tr>
<tr class="separator:a9cba83e893771182893afe0c4fca235d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec7e7477fa071fee75c417824dcbf06f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec7e7477fa071fee75c417824dcbf06f"></a>
volatile uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#aec7e7477fa071fee75c417824dcbf06f">queueUser</a></td></tr>
<tr class="memdesc:aec7e7477fa071fee75c417824dcbf06f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index for user to queue transfer. <br/></td></tr>
<tr class="separator:aec7e7477fa071fee75c417824dcbf06f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af469c27f110424e0fefb61c7b65199fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af469c27f110424e0fefb61c7b65199fe"></a>
volatile uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#af469c27f110424e0fefb61c7b65199fe">queueDriver</a></td></tr>
<tr class="memdesc:af469c27f110424e0fefb61c7b65199fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index for driver to get the transfer data and size. <br/></td></tr>
<tr class="separator:af469c27f110424e0fefb61c7b65199fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff6fcff6d9c61688a3b01f359e48425e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff6fcff6d9c61688a3b01f359e48425e"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html#aff6fcff6d9c61688a3b01f359e48425e">watermark</a></td></tr>
<tr class="memdesc:aff6fcff6d9c61688a3b01f359e48425e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Watermark value. <br/></td></tr>
<tr class="separator:aff6fcff6d9c61688a3b01f359e48425e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga580bf35fe1f08d7bb054bee399f8b085"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SAI_XFER_QUEUE_SIZE&#160;&#160;&#160;(4U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga1be3860693af99a6c1da72580097294c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga1be3860693af99a6c1da72580097294cae095b9b1a3ec7b998d722b1e1d73ca44"></a>kStatus_SAI_TxBusy</em>&nbsp;</td><td class="fielddoc">
<p>SAI Tx is busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1be3860693af99a6c1da72580097294ca8e432517b16b5784a72a95e0caf7bb4a"></a>kStatus_SAI_RxBusy</em>&nbsp;</td><td class="fielddoc">
<p>SAI Rx is busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1be3860693af99a6c1da72580097294ca5f17818e41e2fb07e35e43e1a03bfeb9"></a>kStatus_SAI_TxError</em>&nbsp;</td><td class="fielddoc">
<p>SAI Tx FIFO error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1be3860693af99a6c1da72580097294ca0d8c8cec03abcd722d2ec4358451461c"></a>kStatus_SAI_RxError</em>&nbsp;</td><td class="fielddoc">
<p>SAI Rx FIFO error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1be3860693af99a6c1da72580097294ca19680647d09a7437afd6b6ae7013095e"></a>kStatus_SAI_QueueFull</em>&nbsp;</td><td class="fielddoc">
<p>SAI transfer queue is full. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1be3860693af99a6c1da72580097294ca2a58fb377508baa31df58beb5f406761"></a>kStatus_SAI_TxIdle</em>&nbsp;</td><td class="fielddoc">
<p>SAI Tx is idle. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1be3860693af99a6c1da72580097294ca0f398d330abd6df4255be13d39968e1d"></a>kStatus_SAI_RxIdle</em>&nbsp;</td><td class="fielddoc">
<p>SAI Rx is idle. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gac9420823bfeba78fce625fc105e3b01d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01daa21f6e0475cce1ba88f8105ab4f692c7"></a>kSAI_Channel0Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 0 mask value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01da4f8ec142406d199623daa8671b62285b"></a>kSAI_Channel1Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 1 mask value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01da4d28325c4e3225b6bc90a3e6da72943b"></a>kSAI_Channel2Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 2 mask value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01daebd450167bf4da5b7825b633a76b50f7"></a>kSAI_Channel3Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 3 mask value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01da028b3c77f8f6d83b5f53d889751b41fb"></a>kSAI_Channel4Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 4 mask value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01da2e64fd8c9b0cb2ae5366f03129f65553"></a>kSAI_Channel5Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 5 mask value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01da15f0e04bf2f22b27d472d09730bb1290"></a>kSAI_Channel6Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 6 mask value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac9420823bfeba78fce625fc105e3b01daed34fb3a4004a734740d463a3544ef1d"></a>kSAI_Channel7Mask</em>&nbsp;</td><td class="fielddoc">
<p>channel 7 mask value </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga5a56e024c1155a61c6f46513e57b473f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#ga5a56e024c1155a61c6f46513e57b473f">_sai_protocol</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga5a56e024c1155a61c6f46513e57b473fa5c6ddb713e2ebd5e243d5d8156869baf"></a>kSAI_BusLeftJustified</em>&nbsp;</td><td class="fielddoc">
<p>Uses left justified format. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5a56e024c1155a61c6f46513e57b473faebff095e8a510ada79aab2c90df6c4ef"></a>kSAI_BusRightJustified</em>&nbsp;</td><td class="fielddoc">
<p>Uses right justified format. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5a56e024c1155a61c6f46513e57b473fa67d163f59267b3c6f6dfb731de711197"></a>kSAI_BusI2S</em>&nbsp;</td><td class="fielddoc">
<p>Uses I2S format. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5a56e024c1155a61c6f46513e57b473fa1a4da830cfb4f08554a690de65d2870f"></a>kSAI_BusPCMA</em>&nbsp;</td><td class="fielddoc">
<p>Uses I2S PCM A format. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5a56e024c1155a61c6f46513e57b473fa6b5e627cbe3644cf561eb0997699aefe"></a>kSAI_BusPCMB</em>&nbsp;</td><td class="fielddoc">
<p>Uses I2S PCM B format. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gab94a8b97a2fa0881a3259d1f514fcf40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gab94a8b97a2fa0881a3259d1f514fcf40">_sai_master_slave</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggab94a8b97a2fa0881a3259d1f514fcf40ace27a481cd1aee827602f2997e9e9d24"></a>kSAI_Master</em>&nbsp;</td><td class="fielddoc">
<p>Master mode include bclk and frame sync. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab94a8b97a2fa0881a3259d1f514fcf40afc74ad2cca556b75857bfcb3c2f754b3"></a>kSAI_Slave</em>&nbsp;</td><td class="fielddoc">
<p>Slave mode include bclk and frame sync. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab94a8b97a2fa0881a3259d1f514fcf40a25e145bc050ae2338a7b8254c785060a"></a>kSAI_Bclk_Master_FrameSync_Slave</em>&nbsp;</td><td class="fielddoc">
<p>bclk in master mode, frame sync in slave mode </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab94a8b97a2fa0881a3259d1f514fcf40ae06c9f22b0958c4bb9aa3dc6913150dd"></a>kSAI_Bclk_Slave_FrameSync_Master</em>&nbsp;</td><td class="fielddoc">
<p>bclk in slave mode, frame sync in master mode </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gab7c25036fc5c90315f202a19e42ae295"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gab7c25036fc5c90315f202a19e42ae295">_sai_mono_stereo</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggab7c25036fc5c90315f202a19e42ae295a68780a0cf179c054ccccdd0d57fb780e"></a>kSAI_Stereo</em>&nbsp;</td><td class="fielddoc">
<p>Stereo sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab7c25036fc5c90315f202a19e42ae295a2763e95289b6d3f7015cba718964580b"></a>kSAI_MonoRight</em>&nbsp;</td><td class="fielddoc">
<p>Only Right channel have sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab7c25036fc5c90315f202a19e42ae295a06bf33c6e548abd3cd5136b4e8d7bd29"></a>kSAI_MonoLeft</em>&nbsp;</td><td class="fielddoc">
<p>Only left channel have sound. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga835cf95188e9d76d02b573d525e6447a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#ga835cf95188e9d76d02b573d525e6447a">_sai_data_order</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga835cf95188e9d76d02b573d525e6447aad5ea6f8b25daf462e099db5959a58c8f"></a>kSAI_DataLSB</em>&nbsp;</td><td class="fielddoc">
<p>LSB bit transferred first. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga835cf95188e9d76d02b573d525e6447aa810e97cb159dd3e4009a98bf91e829c5"></a>kSAI_DataMSB</em>&nbsp;</td><td class="fielddoc">
<p>MSB bit transferred first. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga745ce3eada78b53250d40333482915b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#ga745ce3eada78b53250d40333482915b0">_sai_clock_polarity</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga745ce3eada78b53250d40333482915b0ae61dfe51028ddaa2f902dd74b6804d7b"></a>kSAI_PolarityActiveHigh</em>&nbsp;</td><td class="fielddoc">
<p>Drive outputs on rising edge. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga745ce3eada78b53250d40333482915b0a53b413986854f303b7661f25619b755f"></a>kSAI_PolarityActiveLow</em>&nbsp;</td><td class="fielddoc">
<p>Drive outputs on falling edge. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga745ce3eada78b53250d40333482915b0a4522b922a91d0555ad44c9280575c891"></a>kSAI_SampleOnFallingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Sample inputs on falling edge. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga745ce3eada78b53250d40333482915b0abb5717dea6a1ff1ad27737b60402ca44"></a>kSAI_SampleOnRisingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Sample inputs on rising edge. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga40bad4fe84f0826fe0565c46f0763395"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#ga40bad4fe84f0826fe0565c46f0763395">_sai_sync_mode</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga40bad4fe84f0826fe0565c46f0763395a1eedfe4039fefc137958a911f67840c1"></a>kSAI_ModeAsync</em>&nbsp;</td><td class="fielddoc">
<p>Asynchronous mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga40bad4fe84f0826fe0565c46f0763395a8a39fe8640d0a3a2de851e41bc3ebbdd"></a>kSAI_ModeSync</em>&nbsp;</td><td class="fielddoc">
<p>Synchronous mode (with receiver or transmit) </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gae133d8e667ce98cdb9f7b3e4d60679ff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gae133d8e667ce98cdb9f7b3e4d60679ff">_sai_bclk_source</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggae133d8e667ce98cdb9f7b3e4d60679ffa76edb348d999ad21e50f9d46d46f7e4c"></a>kSAI_BclkSourceBusclk</em>&nbsp;</td><td class="fielddoc">
<p>Bit clock using bus clock. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae133d8e667ce98cdb9f7b3e4d60679ffa04244436208c8b2b8e7c56989a08f842"></a>kSAI_BclkSourceMclkOption1</em>&nbsp;</td><td class="fielddoc">
<p>Bit clock MCLK option 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae133d8e667ce98cdb9f7b3e4d60679ffa2452df30e11c7cc88eae97720aca2765"></a>kSAI_BclkSourceMclkOption2</em>&nbsp;</td><td class="fielddoc">
<p>Bit clock MCLK option2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae133d8e667ce98cdb9f7b3e4d60679ffa3f7799293e0d637f15cf0685c9ee1c5c"></a>kSAI_BclkSourceMclkOption3</em>&nbsp;</td><td class="fielddoc">
<p>Bit clock MCLK option3. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae133d8e667ce98cdb9f7b3e4d60679ffab4c297bd65ee5ef56c49808b8ac0d94d"></a>kSAI_BclkSourceMclkDiv</em>&nbsp;</td><td class="fielddoc">
<p>Bit clock using master clock divider. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae133d8e667ce98cdb9f7b3e4d60679ffab812a4070f7960ee602e14c9af93873f"></a>kSAI_BclkSourceOtherSai0</em>&nbsp;</td><td class="fielddoc">
<p>Bit clock from other SAI device. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae133d8e667ce98cdb9f7b3e4d60679ffa4174df66b1e3f83cd8456564517c25b6"></a>kSAI_BclkSourceOtherSai1</em>&nbsp;</td><td class="fielddoc">
<p>Bit clock from other SAI device. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gafa9be5679ab03d785820f2474c5ccc6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggafa9be5679ab03d785820f2474c5ccc6ea544d76157d9e4e99a322e31b03f2de99"></a>kSAI_WordStartInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Word start flag, means the first word in a frame detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafa9be5679ab03d785820f2474c5ccc6ea3adb555d2455aa86878f78a0c0ef6566"></a>kSAI_SyncErrorInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Sync error flag, means the sync error is detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafa9be5679ab03d785820f2474c5ccc6ea0557da436cdad3e9551e4c2ab3319526"></a>kSAI_FIFOWarningInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>FIFO warning flag, means the FIFO is empty. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafa9be5679ab03d785820f2474c5ccc6ea1eb2783c3d30845f08cb7b613d92d84b"></a>kSAI_FIFOErrorInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>FIFO error flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggafa9be5679ab03d785820f2474c5ccc6eaba8ca41b00b881e5d7507e3d20974831"></a>kSAI_FIFORequestInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>FIFO request, means reached watermark. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gae6dceca96ec2c7a1b4aa211264a87ef6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggae6dceca96ec2c7a1b4aa211264a87ef6aa6bcd82f3ff9e711f85f1c05ff288eab"></a>kSAI_FIFOWarningDMAEnable</em>&nbsp;</td><td class="fielddoc">
<p>FIFO warning caused by the DMA request. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae6dceca96ec2c7a1b4aa211264a87ef6a8d208db72a30ce3625803ba11f292086"></a>kSAI_FIFORequestDMAEnable</em>&nbsp;</td><td class="fielddoc">
<p>FIFO request caused by the DMA request. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga56a0f36da7f9eaaf54bd05cc2bf49173"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga56a0f36da7f9eaaf54bd05cc2bf49173a8856ff23f0703c9a170163edcee534ea"></a>kSAI_WordStartFlag</em>&nbsp;</td><td class="fielddoc">
<p>Word start flag, means the first word in a frame detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga56a0f36da7f9eaaf54bd05cc2bf49173ad35f8fa189ca7adc41905dc692aea237"></a>kSAI_SyncErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Sync error flag, means the sync error is detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga56a0f36da7f9eaaf54bd05cc2bf49173a66affbcb587814dc0df6f12733ea3f5c"></a>kSAI_FIFOErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>FIFO error flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga56a0f36da7f9eaaf54bd05cc2bf49173af90c6aca78ac96fb694157d3a8dc6388"></a>kSAI_FIFORequestFlag</em>&nbsp;</td><td class="fielddoc">
<p>FIFO request flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga56a0f36da7f9eaaf54bd05cc2bf49173a41f8ba146a17136cebefb1ef142c4563"></a>kSAI_FIFOWarningFlag</em>&nbsp;</td><td class="fielddoc">
<p>FIFO warning flag. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaaa4bb640acb35ece5d999635e41f033a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gaaa4bb640acb35ece5d999635e41f033a">_sai_reset_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaaa4bb640acb35ece5d999635e41f033aa67ca93a283d762ba72176ef609bc4134"></a>kSAI_ResetTypeSoftware</em>&nbsp;</td><td class="fielddoc">
<p>Software reset, reset the logic state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaa4bb640acb35ece5d999635e41f033aa9749b5efe5bb45db10089360992a683a"></a>kSAI_ResetTypeFIFO</em>&nbsp;</td><td class="fielddoc">
<p>FIFO reset, reset the FIFO read and write pointer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaa4bb640acb35ece5d999635e41f033aae75ddd8d7c742dce4aef59aff2c81f38"></a>kSAI_ResetAll</em>&nbsp;</td><td class="fielddoc">
<p>All reset. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaa821924a35f7f47470937d3accd5f6e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gaa821924a35f7f47470937d3accd5f6e4">_sai_fifo_packing</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaa821924a35f7f47470937d3accd5f6e4ae267a04864a1f653962222a90909472f"></a>kSAI_FifoPackingDisabled</em>&nbsp;</td><td class="fielddoc">
<p>Packing disabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa821924a35f7f47470937d3accd5f6e4a547adf2b9d268fb205d939b617aba68e"></a>kSAI_FifoPacking8bit</em>&nbsp;</td><td class="fielddoc">
<p>8 bit packing enabled </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa821924a35f7f47470937d3accd5f6e4ae1d4fb3eb871e1d1f51a75a97d00bc2c"></a>kSAI_FifoPacking16bit</em>&nbsp;</td><td class="fielddoc">
<p>16bit packing enabled </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga043e8563923f5fb80c28ab887fc8e4f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#ga043e8563923f5fb80c28ab887fc8e4f9">_sai_sample_rate</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9a33faf3aa4adc2430b4892a60bf82f847"></a>kSAI_SampleRate8KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 8000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9a20a0ee7adde7aca59883b3f7b5698d98"></a>kSAI_SampleRate11025Hz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 11025 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9ab6f2876028ff4201e6e9411bd450e5e9"></a>kSAI_SampleRate12KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 12000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9a37f8460732967ce92f540c44d89b45ae"></a>kSAI_SampleRate16KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 16000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9a932187b8e03e6c60e5f6665f55e3f209"></a>kSAI_SampleRate22050Hz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 22050 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9aec9824e27135f9641e61399b0c7ee72c"></a>kSAI_SampleRate24KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 24000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9aa745cb456e46ad4982c3d58882fb34a0"></a>kSAI_SampleRate32KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 32000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9aa00db6732444bb1976f130b8a283276c"></a>kSAI_SampleRate44100Hz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 44100 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9a3539b8834c98c260c99b6092e7766cfc"></a>kSAI_SampleRate48KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 48000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9a345e0cda3185af26335f3720e0691aca"></a>kSAI_SampleRate96KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 96000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9afa3d9a8a48ca6981ec61aeacfbf75a32"></a>kSAI_SampleRate192KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 192000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga043e8563923f5fb80c28ab887fc8e4f9a137ad38af2b993bb54c46289478fc517"></a>kSAI_SampleRate384KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 384000 Hz. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gad4e90a38e43c3d4a2abe7dd09fd15e20"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gad4e90a38e43c3d4a2abe7dd09fd15e20">_sai_word_width</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggad4e90a38e43c3d4a2abe7dd09fd15e20ac282421ee51ea251da06e459af3014a1"></a>kSAI_WordWidth8bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 8 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad4e90a38e43c3d4a2abe7dd09fd15e20a0328fc45f36f361f958cacd8378d4923"></a>kSAI_WordWidth16bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 16 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad4e90a38e43c3d4a2abe7dd09fd15e20a98f99f6e508d609333313277057d29a0"></a>kSAI_WordWidth24bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 24 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggad4e90a38e43c3d4a2abe7dd09fd15e20a238d482a0f4a707bc199f5c54c168233"></a>kSAI_WordWidth32bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 32 bits. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gac580d81720a4082d5967ba302390e952"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gac580d81720a4082d5967ba302390e952">_sai_data_pin_state</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac580d81720a4082d5967ba302390e952a363adfafa21b0e6765c3a4f820b10333"></a>kSAI_DataPinStateTriState</em>&nbsp;</td><td class="fielddoc">
<p>transmit data pins are tri-stated when slots are masked or channels are disabled </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac580d81720a4082d5967ba302390e952a42a8a2e2f5e6900233e91754862ba6e1"></a>kSAI_DataPinStateOutputZero</em>&nbsp;</td><td class="fielddoc">
<p>transmit data pins are never tri-stated and will output zero when slots are masked or channel disabled </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaf26356d02c57c13a7683a3ad9a4f91a2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gaf26356d02c57c13a7683a3ad9a4f91a2">_sai_fifo_combine</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaf26356d02c57c13a7683a3ad9a4f91a2ab5fb99c25c715df68b3d26156de079b3"></a>kSAI_FifoCombineDisabled</em>&nbsp;</td><td class="fielddoc">
<p>sai fifo combine mode disabled </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaf26356d02c57c13a7683a3ad9a4f91a2a5ace6deacace7a319179204a842940e3"></a>kSAI_FifoCombineModeEnabledOnRead</em>&nbsp;</td><td class="fielddoc">
<p>sai fifo combine mode enabled on FIFO reads </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaf26356d02c57c13a7683a3ad9a4f91a2a5f9f93fa7038c5ca68fafbb27b44a6c2"></a>kSAI_FifoCombineModeEnabledOnWrite</em>&nbsp;</td><td class="fielddoc">
<p>sai fifo combine mode enabled on FIFO write </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaf26356d02c57c13a7683a3ad9a4f91a2aeec8c226676e93ef5401d205ecf18561"></a>kSAI_FifoCombineModeEnabledOnReadWrite</em>&nbsp;</td><td class="fielddoc">
<p>sai fifo combined mode enabled on FIFO read/writes </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga1de9437e4dfb087369457405c2e04e69"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#ga1de9437e4dfb087369457405c2e04e69">_sai_transceiver_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga1de9437e4dfb087369457405c2e04e69a61440483250a3c9a981367c81dd0265a"></a>kSAI_Transmitter</em>&nbsp;</td><td class="fielddoc">
<p>sai transmitter </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1de9437e4dfb087369457405c2e04e69a992dba17c95e3f71f8d187c0d7ae9a23"></a>kSAI_Receiver</em>&nbsp;</td><td class="fielddoc">
<p>sai receiver </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gabdfd5e6ddad960fe091c1e465f7d13d2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00061.html#gabdfd5e6ddad960fe091c1e465f7d13d2">_sai_frame_sync_len</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabdfd5e6ddad960fe091c1e465f7d13d2a3506ff131e0f24df2ff993c4257b8d30"></a>kSAI_FrameSyncLenOneBitClk</em>&nbsp;</td><td class="fielddoc">
<p>1 bit clock frame sync len for DSP mode </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabdfd5e6ddad960fe091c1e465f7d13d2a97f133232c24340687ba826a9e43e268"></a>kSAI_FrameSyncLenPerWordWidth</em>&nbsp;</td><td class="fielddoc">
<p>Frame sync length decided by word width. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gacee30bb91b9287f7bcd6feb9eec469a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_Init </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This API gates the SAI clock. The SAI module can't operate unless SAI_Init is called to enable the clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae3acf95d83128d355a2935bb7ccd85ea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_Deinit </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This API gates the SAI clock. The SAI module can't operate unless SAI_TxInit or SAI_RxInit is called to enable the clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga66657a9e3eb593e979389cc1136fd277"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxReset </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function enables the software reset and FIFO reset of SAI Tx. After reset, clear the reset bit.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga76c8fce1a9222a408a073873a27430f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxReset </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function enables the software reset and FIFO reset of SAI Rx. After reset, clear the reset bit.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga32b2f06766a8bb92dd778a152dfd8b2e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxEnable </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">enable</td><td>True means enable SAI Tx, false means disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaeaa118415a867f016efa6af3e0d06e17"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxEnable </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">enable</td><td>True means enable SAI Rx, false means disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga295828bba00bf25649aceea01d4d06a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_TxSetBitClockDirection </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Select bit clock direction, master or slave.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>reference sai_master_slave_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3ff4b01f64fb8e1b00e2cf0665b96a51"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_RxSetBitClockDirection </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Select bit clock direction, master or slave.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>reference sai_master_slave_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae0698fb95242d01ae849f63c4ef29995"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_RxSetFrameSyncDirection </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Select frame sync direction, master or slave.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>reference sai_master_slave_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa72a51a4ae845043a1e15e57a466168d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_TxSetFrameSyncDirection </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Select frame sync direction, master or slave.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>reference sai_master_slave_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6e65916439358ba6e3ffbf130471b10d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetBitClockRate </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>sourceClockHz</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>sampleRate</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channelNumbers</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">sourceClockHz</td><td>Bit clock source frequency. </td></tr>
<tr><td class="paramname">sampleRate</td><td>Audio data sample rate. </td></tr>
<tr><td class="paramname">bitWidth</td><td>Audio data bitWidth. </td></tr>
<tr><td class="paramname">channelNumbers</td><td>Audio channel numbers. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0ee6e43eb293cfb30ffc072d6c0b35b3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetBitClockRate </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>sourceClockHz</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>sampleRate</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channelNumbers</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">sourceClockHz</td><td>Bit clock source frequency. </td></tr>
<tr><td class="paramname">sampleRate</td><td>Audio data sample rate. </td></tr>
<tr><td class="paramname">bitWidth</td><td>Audio data bitWidth. </td></tr>
<tr><td class="paramname">channelNumbers</td><td>Audio channel numbers. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaaa145a2bc3c4d5f7ec1c85ca55447e10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetBitclockConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e7467cccff2036acd9ea3b0053918bf">sai_bit_clock_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>master or slave. </td></tr>
<tr><td class="paramname">config</td><td>bit clock other configurations, can be NULL in slave mode. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2cc18a31cebffc1481d31c00652e9442"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetBitclockConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e7467cccff2036acd9ea3b0053918bf">sai_bit_clock_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>master or slave. </td></tr>
<tr><td class="paramname">config</td><td>bit clock other configurations, can be NULL in slave mode. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2afdfba1db354240309f91c017bb205e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetFifoConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga59fe6ce5fe3732f25651384ea4644c8a">sai_fifo_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">config</td><td>fifo configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga81df263f6870e0b45a4475db547b7b0a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetFifoConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga59fe6ce5fe3732f25651384ea4644c8a">sai_fifo_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">config</td><td>fifo configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga392671c98580de0ffab6f909e7707bad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetFrameSyncConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gad19ff288b9257f5f2b782bef0ea64e91">sai_frame_sync_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>master or slave. </td></tr>
<tr><td class="paramname">config</td><td>frame sync configurations, can be NULL in slave mode. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga62e22ad6d091ffda26abda7190068459"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetFrameSyncConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga90144d956adefe0eaf778868dd06dab4">sai_master_slave_t</a>&#160;</td>
<td class="paramname"><em>masterSlave</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gad19ff288b9257f5f2b782bef0ea64e91">sai_frame_sync_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">masterSlave</td><td>master or slave. </td></tr>
<tr><td class="paramname">config</td><td>frame sync configurations, can be NULL in slave mode. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2b97778df2372e616dc4ac736e844cae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetSerialDataConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga12a9182f90371122ecfe159f6a6342f0">sai_serial_data_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">config</td><td>serial data configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2a6d070843a27859cab4f7d6d91f7d63"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetSerialDataConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga12a9182f90371122ecfe159f6a6342f0">sai_serial_data_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">config</td><td>serial data configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0edc077e66df28d41cccb03f18a3b785"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">config</td><td>transmitter configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga18f099c6f1a54d8fea010a2aca4de468"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">config</td><td>receiver configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf233a2ef17cff713b18a002924e992fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_GetClassicI2SConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a>&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>saiChannelMask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>transceiver configurations. </td></tr>
<tr><td class="paramname">bitWidth</td><td>audio data bitWidth. </td></tr>
<tr><td class="paramname">mode</td><td>audio data channel. </td></tr>
<tr><td class="paramname">saiChannelMask</td><td>mask value of the channel to be enable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga627b32015c2817e8e1e7baf80150cb65"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_GetLeftJustifiedConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a>&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>saiChannelMask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>transceiver configurations. </td></tr>
<tr><td class="paramname">bitWidth</td><td>audio data bitWidth. </td></tr>
<tr><td class="paramname">mode</td><td>audio data channel. </td></tr>
<tr><td class="paramname">saiChannelMask</td><td>mask value of the channel to be enable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4b41077bec52b31dbb86afd6d4ccc107"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_GetRightJustifiedConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a>&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>saiChannelMask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>transceiver configurations. </td></tr>
<tr><td class="paramname">bitWidth</td><td>audio data bitWidth. </td></tr>
<tr><td class="paramname">mode</td><td>audio data channel. </td></tr>
<tr><td class="paramname">saiChannelMask</td><td>mask value of the channel to be enable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabcdf17347b2e20df3c28d3ba28e47df1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_GetTDMConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaca31ab757ba34de24c4255cf43e0fe77">sai_frame_sync_len_t</a>&#160;</td>
<td class="paramname"><em>frameSyncWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a>&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>dataWordNum</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>saiChannelMask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>transceiver configurations. </td></tr>
<tr><td class="paramname">frameSyncWidth</td><td>length of frame sync. </td></tr>
<tr><td class="paramname">bitWidth</td><td>audio data word width. </td></tr>
<tr><td class="paramname">dataWordNum</td><td>word number in one frame. </td></tr>
<tr><td class="paramname">saiChannelMask</td><td>mask value of the channel to be enable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabe5ba907f91700121f0fa3fbdddb9bca"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_GetDSPConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaca31ab757ba34de24c4255cf43e0fe77">sai_frame_sync_len_t</a>&#160;</td>
<td class="paramname"><em>frameSyncWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaafa35eb425655975366b8304103fe475">sai_word_width_t</a>&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga18dd60add59f50301f764effe53641e8">sai_mono_stereo_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>saiChannelMask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>DSP mode is also called PCM mode which support MODE A and MODE B, DSP/PCM MODE A configuration flow. RX is similiar but uses SAI_RxSetConfig instead of SAI_TxSetConfig: <div class="fragment"><div class="line">* <a class="code" href="a00061.html#gabe5ba907f91700121f0fa3fbdddb9bca">SAI_GetDSPConfig</a>(config, <a class="code" href="a00061.html#ggabdfd5e6ddad960fe091c1e465f7d13d2a3506ff131e0f24df2ff993c4257b8d30">kSAI_FrameSyncLenOneBitClk</a>, bitWidth, <a class="code" href="a00061.html#ggab7c25036fc5c90315f202a19e42ae295a68780a0cf179c054ccccdd0d57fb780e">kSAI_Stereo</a>, channelMask)</div>
<div class="line">* config-&gt;frameSync.frameSyncEarly = <span class="keyword">true</span>;</div>
<div class="line">* <a class="code" href="a00061.html#ga0edc077e66df28d41cccb03f18a3b785">SAI_TxSetConfig</a>(base, config)</div>
<div class="line">* </div>
</div><!-- fragment --></dd></dl>
<p>DSP/PCM MODE B configuration flow for TX. RX is similiar but uses SAI_RxSetConfig instead of SAI_TxSetConfig: </p>
<div class="fragment"><div class="line">* <a class="code" href="a00061.html#gabe5ba907f91700121f0fa3fbdddb9bca">SAI_GetDSPConfig</a>(config, <a class="code" href="a00061.html#ggabdfd5e6ddad960fe091c1e465f7d13d2a3506ff131e0f24df2ff993c4257b8d30">kSAI_FrameSyncLenOneBitClk</a>, bitWidth, <a class="code" href="a00061.html#ggab7c25036fc5c90315f202a19e42ae295a68780a0cf179c054ccccdd0d57fb780e">kSAI_Stereo</a>, channelMask)</div>
<div class="line">* <a class="code" href="a00061.html#ga0edc077e66df28d41cccb03f18a3b785">SAI_TxSetConfig</a>(base, config)</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>transceiver configurations. </td></tr>
<tr><td class="paramname">frameSyncWidth</td><td>length of frame sync. </td></tr>
<tr><td class="paramname">bitWidth</td><td>audio data bitWidth. </td></tr>
<tr><td class="paramname">mode</td><td>audio data channel. </td></tr>
<tr><td class="paramname">saiChannelMask</td><td>mask value of the channel to enable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1cd557fc5610173b3f5007f9594db2ae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t SAI_TxGetStatusFlag </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SAI Tx status flag value. Use the Status Mask to get the status value needed. </dd></dl>
</div>
</div>
<a class="anchor" id="ga11127bb45b18dfa9d897046ab69b218d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_TxClearStatusFlags </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>State mask. It can be a combination of the following source if defined: <ul>
<li>kSAI_WordStartFlag </li>
<li>kSAI_SyncErrorFlag </li>
<li>kSAI_FIFOErrorFlag </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9857a73c0d40d12438a9bd336e237dfe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t SAI_RxGetStatusFlag </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SAI Rx status flag value. Use the Status Mask to get the status value needed. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3329969cbf718114c37f10d88e527669"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_RxClearStatusFlags </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>State mask. It can be a combination of the following sources if defined. <ul>
<li>kSAI_WordStartFlag </li>
<li>kSAI_SyncErrorFlag </li>
<li>kSAI_FIFOErrorFlag </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae9ff8664d0683df7a60078b1e41cce17"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSoftwareReset </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaca36f65012b1a99022d1bc02be2d33c5">sai_reset_type_t</a>&#160;</td>
<td class="paramname"><em>resetType</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>FIFO reset means clear all the data in the FIFO, and make the FIFO pointer both to 0. Software reset means clear the Tx internal logic, including the bit clock, frame count etc. But software reset will not clear any configuration registers like TCR1~TCR5. This function will also clear all the error flags such as FIFO error, sync error etc.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">resetType</td><td>Reset type, FIFO reset or software reset </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga503d652201ae85fd82dd20e908b6afea"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSoftwareReset </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gaca36f65012b1a99022d1bc02be2d33c5">sai_reset_type_t</a>&#160;</td>
<td class="paramname"><em>resetType</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>FIFO reset means clear all the data in the FIFO, and make the FIFO pointer both to 0. Software reset means clear the Rx internal logic, including the bit clock, frame count etc. But software reset will not clear any configuration registers like RCR1~RCR5. This function will also clear all the error flags such as FIFO error, sync error etc.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">resetType</td><td>Reset type, FIFO reset or software reset </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga633f5af270fa98e7dad379a2c78b4d72"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetChannelFIFOMask </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>Channel enable mask, 0 means all channel FIFO disabled, 1 means channel 0 enabled, 3 means both channel 0 and channel 1 enabled. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7fd29bef62a3d5609a78bb25f6fb66d6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetChannelFIFOMask </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>Channel enable mask, 0 means all channel FIFO disabled, 1 means channel 0 enabled, 3 means both channel 0 and channel 1 enabled. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga27fad059ad2e1ef81ef83fbce4284e13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetDataOrder </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga6c09c5ee1699b834bcdcf38b0aaa579e">sai_data_order_t</a>&#160;</td>
<td class="paramname"><em>order</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">order</td><td>Data order MSB or LSB </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa5e0af3f06391d2577d3dfb42912ef85"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetDataOrder </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga6c09c5ee1699b834bcdcf38b0aaa579e">sai_data_order_t</a>&#160;</td>
<td class="paramname"><em>order</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">order</td><td>Data order MSB or LSB </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga18cb5b7f55e8ef0b25f1caf78a5b8a79"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetBitClockPolarity </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a>&#160;</td>
<td class="paramname"><em>polarity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">polarity</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9847aa9eedcf6a08a77874d80e5fa54e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetBitClockPolarity </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a>&#160;</td>
<td class="paramname"><em>polarity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">polarity</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafbbd4e7253ad01bb527c83cc3c41a09f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetFrameSyncPolarity </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a>&#160;</td>
<td class="paramname"><em>polarity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">polarity</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae0b73b62039762bea3d43d846e3aa0f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetFrameSyncPolarity </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gabc572f0899ab54bbd51e2b0bc323a34f">sai_clock_polarity_t</a>&#160;</td>
<td class="paramname"><em>polarity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">polarity</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga837e2e4efa7401415cf3a922baa1b8e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TxSetFIFOPacking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga07d41049148c43c02e1eeda798ccca3c">sai_fifo_packing_t</a>&#160;</td>
<td class="paramname"><em>pack</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">pack</td><td>FIFO pack type. It is element of sai_fifo_packing_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga69676e9585362f036f2d925481c21a26"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_RxSetFIFOPacking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga07d41049148c43c02e1eeda798ccca3c">sai_fifo_packing_t</a>&#160;</td>
<td class="paramname"><em>pack</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">pack</td><td>FIFO pack type. It is element of sai_fifo_packing_t. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gacfdf75b35fffd1931f6c412f7156f14d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_TxSetFIFOErrorContinue </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>isEnabled</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>FIFO error continue mode means SAI will keep running while FIFO error occurred. If this feature not enabled, SAI will hang and users need to clear FEF flag in TCSR register.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">isEnabled</td><td>Is FIFO error continue enabled, true means enable, false means disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2e5a3ad4e715bb1116eed303ef87c8a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_RxSetFIFOErrorContinue </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>isEnabled</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>FIFO error continue mode means SAI will keep running while FIFO error occurred. If this feature not enabled, SAI will hang and users need to clear FEF flag in RCSR register.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">isEnabled</td><td>Is FIFO error continue enabled, true means enable, false means disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae298cb3fe881e951a8e291028d7cf3df"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_TxEnableInterrupts </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>interrupt source The parameter can be a combination of the following sources if defined. <ul>
<li>kSAI_WordStartInterruptEnable </li>
<li>kSAI_SyncErrorInterruptEnable </li>
<li>kSAI_FIFOWarningInterruptEnable </li>
<li>kSAI_FIFORequestInterruptEnable </li>
<li>kSAI_FIFOErrorInterruptEnable </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga43c4f7cbaf1188f9fd15c8c3a017870a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_RxEnableInterrupts </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>interrupt source The parameter can be a combination of the following sources if defined. <ul>
<li>kSAI_WordStartInterruptEnable </li>
<li>kSAI_SyncErrorInterruptEnable </li>
<li>kSAI_FIFOWarningInterruptEnable </li>
<li>kSAI_FIFORequestInterruptEnable </li>
<li>kSAI_FIFOErrorInterruptEnable </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5baa11cc20615c1a9b32eea5f6021e66"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_TxDisableInterrupts </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>interrupt source The parameter can be a combination of the following sources if defined. <ul>
<li>kSAI_WordStartInterruptEnable </li>
<li>kSAI_SyncErrorInterruptEnable </li>
<li>kSAI_FIFOWarningInterruptEnable </li>
<li>kSAI_FIFORequestInterruptEnable </li>
<li>kSAI_FIFOErrorInterruptEnable </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9cbeb122b61a580d052438157661c46f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_RxDisableInterrupts </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>interrupt source The parameter can be a combination of the following sources if defined. <ul>
<li>kSAI_WordStartInterruptEnable </li>
<li>kSAI_SyncErrorInterruptEnable </li>
<li>kSAI_FIFOWarningInterruptEnable </li>
<li>kSAI_FIFORequestInterruptEnable </li>
<li>kSAI_FIFOErrorInterruptEnable </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga131a59354eae81bb20068b7c5e805f9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_TxEnableDMA </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>DMA source The parameter can be combination of the following sources if defined. <ul>
<li>kSAI_FIFOWarningDMAEnable </li>
<li>kSAI_FIFORequestDMAEnable </li>
</ul>
</td></tr>
<tr><td class="paramname">enable</td><td>True means enable DMA, false means disable DMA. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8061229e53203dfca2ed45b2f7648ca5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_RxEnableDMA </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">mask</td><td>DMA source The parameter can be a combination of the following sources if defined. <ul>
<li>kSAI_FIFOWarningDMAEnable </li>
<li>kSAI_FIFORequestDMAEnable </li>
</ul>
</td></tr>
<tr><td class="paramname">enable</td><td>True means enable DMA, false means disable DMA. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9eb7289d72ab3d607b85948bd8377dcc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uintptr_t SAI_TxGetDataRegisterAddress </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This API is used to provide a transfer address for the SAI DMA transfer configuration.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Which data channel used. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>data register address. </dd></dl>
</div>
</div>
<a class="anchor" id="gaad41b09d7c4c5e3fbd6a6584ea1eb015"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uintptr_t SAI_RxGetDataRegisterAddress </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This API is used to provide a transfer address for the SAI DMA transfer configuration.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Which data channel used. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>data register address. </dd></dl>
</div>
</div>
<a class="anchor" id="ga32e4d2e732142517cc9ae2c1d12ee641"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_WriteBlocking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This function blocks by polling until data is ready to be sent.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Data channel used. </td></tr>
<tr><td class="paramname">bitWidth</td><td>How many bits in an audio word; usually 8/16/24/32 bits. </td></tr>
<tr><td class="paramname">buffer</td><td>Pointer to the data to be written. </td></tr>
<tr><td class="paramname">size</td><td>Bytes to be written. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf7dc2b062b866a82bbc1798eda2b7f7c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_WriteMultiChannelBlocking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channelMask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This function blocks by polling until data is ready to be sent.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Data channel used. </td></tr>
<tr><td class="paramname">channelMask</td><td>channel mask. </td></tr>
<tr><td class="paramname">bitWidth</td><td>How many bits in an audio word; usually 8/16/24/32 bits. </td></tr>
<tr><td class="paramname">buffer</td><td>Pointer to the data to be written. </td></tr>
<tr><td class="paramname">size</td><td>Bytes to be written. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6299cd60dee1e684683f3473a62e831b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void SAI_WriteData </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Data channel used. </td></tr>
<tr><td class="paramname">data</td><td>Data needs to be written. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0f954b031a8e2a857a0fddf87a9a1368"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_ReadBlocking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This function blocks by polling until data is ready to be sent.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Data channel used. </td></tr>
<tr><td class="paramname">bitWidth</td><td>How many bits in an audio word; usually 8/16/24/32 bits. </td></tr>
<tr><td class="paramname">buffer</td><td>Pointer to the data to be read. </td></tr>
<tr><td class="paramname">size</td><td>Bytes to be read. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga85217823bf3acbe6616f1dc325f7a87b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_ReadMultiChannelBlocking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channelMask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>bitWidth</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This function blocks by polling until data is ready to be sent.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Data channel used. </td></tr>
<tr><td class="paramname">channelMask</td><td>channel mask. </td></tr>
<tr><td class="paramname">bitWidth</td><td>How many bits in an audio word; usually 8/16/24/32 bits. </td></tr>
<tr><td class="paramname">buffer</td><td>Pointer to the data to be read. </td></tr>
<tr><td class="paramname">size</td><td>Bytes to be read. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gada44ab158250b8e94258b9d8fd3a63dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t SAI_ReadData </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">channel</td><td>Data channel used. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data in SAI FIFO. </dd></dl>
</div>
</div>
<a class="anchor" id="ga69eaf09522d88c69b47ec104c11875de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferTxCreateHandle </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gacda077e13dd34cd0fa1e865354591fe2">sai_transfer_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the Tx handle for the SAI Tx transactional APIs. Call this function once to get the handle initialized.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">handle</td><td>SAI handle pointer. </td></tr>
<tr><td class="paramname">callback</td><td>Pointer to the user callback function. </td></tr>
<tr><td class="paramname">userData</td><td>User parameter passed to the callback function </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4c29a38ae0802fa81e304eee337ecf6b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferRxCreateHandle </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#gacda077e13dd34cd0fa1e865354591fe2">sai_transfer_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the Rx handle for the SAI Rx transactional APIs. Call this function once to get the handle initialized.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>SAI handle pointer. </td></tr>
<tr><td class="paramname">callback</td><td>Pointer to the user callback function. </td></tr>
<tr><td class="paramname">userData</td><td>User parameter passed to the callback function. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7efb93f8b194f87ef19708869755b4de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferTxSetConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the Tx, include bit clock, frame sync, master clock, serial data and fifo configurations.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>SAI handle pointer. </td></tr>
<tr><td class="paramname">config</td><td>tranmitter configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae031726fbcc4dc9ac964367e8965f0e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferRxSetConfig </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga1e798fe5217335d01709af9f4855e0dc">sai_transceiver_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the Rx, include bit clock, frame sync, master clock, serial data and fifo configurations.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>SAI handle pointer. </td></tr>
<tr><td class="paramname">config</td><td>receiver configurations. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaefe0557861a223913d7b1d8959a56995"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SAI_TransferSendNonBlocking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga930ac1cfb546457c3e1ebf70151a6212">sai_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API returns immediately after the transfer initiates. Call the SAI_TxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SAI_Busy, the transfer is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure which stores the transfer state. </td></tr>
<tr><td class="paramname">xfer</td><td>Pointer to the sai_transfer_t structure. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully started the data receive. </td></tr>
<tr><td class="paramname">kStatus_SAI_TxBusy</td><td>Previous receive still not finished. </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>The input parameter is invalid. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad23a55af8054fbd0cb8cbb175f2e497c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SAI_TransferReceiveNonBlocking </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#ga930ac1cfb546457c3e1ebf70151a6212">sai_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API returns immediately after the transfer initiates. Call the SAI_RxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SAI_Busy, the transfer is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure which stores the transfer state. </td></tr>
<tr><td class="paramname">xfer</td><td>Pointer to the sai_transfer_t structure. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully started the data receive. </td></tr>
<tr><td class="paramname">kStatus_SAI_RxBusy</td><td>Previous receive still not finished. </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>The input parameter is invalid. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac2b7aaa215232aa8e12eb751b0edd90f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SAI_TransferGetSendCount </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure which stores the transfer state. </td></tr>
<tr><td class="paramname">count</td><td>Bytes count sent. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Succeed get the transfer count. </td></tr>
<tr><td class="paramname">kStatus_NoTransferInProgress</td><td>There is not a non-blocking transaction currently in progress. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafb739944ba12a66543842993c1716464"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SAI_TransferGetReceiveCount </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure which stores the transfer state. </td></tr>
<tr><td class="paramname">count</td><td>Bytes count received. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Succeed get the transfer count. </td></tr>
<tr><td class="paramname">kStatus_NoTransferInProgress</td><td>There is not a non-blocking transaction currently in progress. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9fca6aa3b5cbcf05ca2c0b6637b476e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferAbortSend </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API can be called any time when an interrupt non-blocking transfer initiates to abort the transfer early.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure which stores the transfer state. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab2859ed8b6805a962d45d5eb16a9095f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferAbortReceive </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API can be called when an interrupt non-blocking transfer initiates to abort the transfer early.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure which stores the transfer state. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9dcd9e96ab549fc44f5a9d521c87ab87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferTerminateSend </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function will clear all transfer slots buffered in the sai queue. If users only want to abort the current transfer slot, please call SAI_TransferAbortSend.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>SAI eDMA handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4770cca8a45e8fa32026850dcd721981"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferTerminateReceive </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function will clear all transfer slots buffered in the sai queue. If users only want to abort the current transfer slot, please call SAI_TransferAbortReceive.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>SAI eDMA handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga40d3fede9289fcea2706679138ce466a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferTxHandleIRQ </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab66ff18cc17137d132a3b5c8accbdb34"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SAI_TransferRxHandleIRQ </td>
<td>(</td>
<td class="paramtype">I2S_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00061.html#a00453">sai_handle_t</a> *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>SAI base pointer. </td></tr>
<tr><td class="paramname">handle</td><td>Pointer to the sai_handle_t structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>