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

571 lines
34 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: XBARA: Inter-Peripheral Crossbar Switch</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('a00083.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="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">XBARA: Inter-Peripheral Crossbar Switch</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a peripheral driver for the Inter-Peripheral Crossbar Switch (XBARA) block of MCUXpresso SDK devices.</p>
<p>The XBARA peripheral driver configures the XBARA (Inter-Peripheral Crossbar Switch) and handles initialization and configuration of the XBARA module.</p>
<p>XBARA driver has two parts:</p>
<ul>
<li>Signal connection interconnects input and output signals.</li>
<li>Active edge feature - Some of the outputs provide an active edge detection. If an active edge occurs, an interrupt or a DMA request can be called. APIs handle user callbacks for the interrupts. The driver also includes API for clearing and reading status bits.</li>
</ul>
<h1><a class="anchor" id="XbaraFunctionalGroups"></a>
Function</h1>
<h2><a class="anchor" id="XBARAInit"></a>
XBARA Initialization</h2>
<p>To initialize the XBARA driver, a state structure has to be passed into the initialization function. This block of memory keeps pointers to user's callback functions and parameters to these functions. The XBARA module is initialized by calling the <a class="el" href="a00083.html#ga5c026c940af4df8e13962eb78d4e0f13" title="Initializes the XBARA module. ">XBARA_Init()</a> function.</p>
<h2><a class="anchor" id="XBARACallDiagram"></a>
Call diagram</h2>
<ol type="1">
<li>Call the "XBARA_Init()" function to initialize the XBARA module.</li>
<li>Optionally, call the "XBARA_SetSignalsConnection()" function to Set connection between the selected XBARA_IN[*] input and the XBARA_OUT[*] output signal. It connects the XBARA input to the selected XBARA output. A configuration structure of the "xbara_input_signal_t" type and "xbara_output_signal_t" type is required.</li>
<li>Call the "XBARA_SetOutputSignalConfig" function to set the active edge features, such interrupts or DMA requests. A configuration structure of the "xbara_control_config_t" type is required to point to structure that keeps configuration of control register.</li>
<li>Finally, the XBARA works properly.</li>
</ol>
<h1><a class="anchor" id="XbaraExample"></a>
Typical use case</h1>
<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:a00536"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#a00536">XBARAControlConfig</a></td></tr>
<tr class="memdesc:a00536"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the configuration structure of the XBARA control register. <a href="a00083.html#a00536">More...</a><br/></td></tr>
<tr class="separator:a00536"><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:ga13767542b858cfba49c5db98eaf4555e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga13767542b858cfba49c5db98eaf4555e"></a>
typedef enum <a class="el" href="a00083.html#ga5ce2a1edfa4a79a50b926c21331478a7">_xbara_active_edge</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#ga13767542b858cfba49c5db98eaf4555e">xbara_active_edge_t</a></td></tr>
<tr class="memdesc:ga13767542b858cfba49c5db98eaf4555e"><td class="mdescLeft">&#160;</td><td class="mdescRight">XBARA active edge for detection. <br/></td></tr>
<tr class="separator:ga13767542b858cfba49c5db98eaf4555e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebc4ca2212f5faabce2f8678fd23338c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaebc4ca2212f5faabce2f8678fd23338c"></a>
typedef enum <a class="el" href="a00083.html#ga73169ee17867a3ce8ffbf19abd42b9e1">_xbar_request</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#gaebc4ca2212f5faabce2f8678fd23338c">xbara_request_t</a></td></tr>
<tr class="memdesc:gaebc4ca2212f5faabce2f8678fd23338c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the XBARA DMA and interrupt configurations. <br/></td></tr>
<tr class="separator:gaebc4ca2212f5faabce2f8678fd23338c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6314ef7be163cd6a1867d874d9bbc1d"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00083.html#ga492702c207ed1b605061f54b80c62f6a">_xbara_status_flag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#gab6314ef7be163cd6a1867d874d9bbc1d">xbara_status_flag_t</a></td></tr>
<tr class="memdesc:gab6314ef7be163cd6a1867d874d9bbc1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">XBARA status flags. <a href="#gab6314ef7be163cd6a1867d874d9bbc1d">More...</a><br/></td></tr>
<tr class="separator:gab6314ef7be163cd6a1867d874d9bbc1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf08a77e84be753067f00baa38275f3da"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00083.html#a00536">XBARAControlConfig</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#gaf08a77e84be753067f00baa38275f3da">xbara_control_config_t</a></td></tr>
<tr class="memdesc:gaf08a77e84be753067f00baa38275f3da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the configuration structure of the XBARA control register. <a href="#gaf08a77e84be753067f00baa38275f3da">More...</a><br/></td></tr>
<tr class="separator:gaf08a77e84be753067f00baa38275f3da"><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:ga5ce2a1edfa4a79a50b926c21331478a7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#ga5ce2a1edfa4a79a50b926c21331478a7">_xbara_active_edge</a> { <br/>
&#160;&#160;<a class="el" href="a00083.html#gga5ce2a1edfa4a79a50b926c21331478a7a0b1f05aab008cc333fc9d221dc471ad2">kXBARA_EdgeNone</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga5ce2a1edfa4a79a50b926c21331478a7aa9f6a89ba6b33bb42492a01a32e125d2">kXBARA_EdgeRising</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga5ce2a1edfa4a79a50b926c21331478a7add352c2692d10c47e0565b5db9c0aaad">kXBARA_EdgeFalling</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga5ce2a1edfa4a79a50b926c21331478a7ab5a8f839c97e6895864cf9c9acdf3acc">kXBARA_EdgeRisingAndFalling</a> = 3U
<br/>
}</td></tr>
<tr class="memdesc:ga5ce2a1edfa4a79a50b926c21331478a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">XBARA active edge for detection. <a href="a00083.html#ga5ce2a1edfa4a79a50b926c21331478a7">More...</a><br/></td></tr>
<tr class="separator:ga5ce2a1edfa4a79a50b926c21331478a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73169ee17867a3ce8ffbf19abd42b9e1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#ga73169ee17867a3ce8ffbf19abd42b9e1">_xbar_request</a> { <br/>
&#160;&#160;<a class="el" href="a00083.html#gga73169ee17867a3ce8ffbf19abd42b9e1a67befcfe617c522f75f9c58aca037aef">kXBARA_RequestDisable</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga73169ee17867a3ce8ffbf19abd42b9e1a074420520b90004cbbc9fe1cf6d95b18">kXBARA_RequestDMAEnable</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga73169ee17867a3ce8ffbf19abd42b9e1a90c054b76f1e59c9e159e2bb89f82541">kXBARA_RequestInterruptEnable</a> = 2U
<br/>
}</td></tr>
<tr class="memdesc:ga73169ee17867a3ce8ffbf19abd42b9e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the XBARA DMA and interrupt configurations. <a href="a00083.html#ga73169ee17867a3ce8ffbf19abd42b9e1">More...</a><br/></td></tr>
<tr class="separator:ga73169ee17867a3ce8ffbf19abd42b9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga492702c207ed1b605061f54b80c62f6a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#ga492702c207ed1b605061f54b80c62f6a">_xbara_status_flag_t</a> { <br/>
&#160;&#160;<a class="el" href="a00083.html#gga492702c207ed1b605061f54b80c62f6aa7fd07691d8d5cd8b7cbfa21c080464af">kXBARA_EdgeDetectionOut0</a>,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga492702c207ed1b605061f54b80c62f6aaa9104d5388f116228e21a65116dabd6d">kXBARA_EdgeDetectionOut1</a>,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga492702c207ed1b605061f54b80c62f6aa53460b197642d46a4f04eadda3cb4bd2">kXBARA_EdgeDetectionOut2</a>,
<br/>
&#160;&#160;<a class="el" href="a00083.html#gga492702c207ed1b605061f54b80c62f6aaa26a7c1cbca51e3ffa9362c03ac5a0d1">kXBARA_EdgeDetectionOut3</a>
<br/>
}</td></tr>
<tr class="memdesc:ga492702c207ed1b605061f54b80c62f6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">XBARA status flags. <a href="a00083.html#ga492702c207ed1b605061f54b80c62f6a">More...</a><br/></td></tr>
<tr class="separator:ga492702c207ed1b605061f54b80c62f6a"><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>
XBARA functional Operation.</h2></td></tr>
<tr class="memitem:ga5c026c940af4df8e13962eb78d4e0f13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#ga5c026c940af4df8e13962eb78d4e0f13">XBARA_Init</a> (XBARA_Type *base)</td></tr>
<tr class="memdesc:ga5c026c940af4df8e13962eb78d4e0f13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the XBARA module. <a href="#ga5c026c940af4df8e13962eb78d4e0f13">More...</a><br/></td></tr>
<tr class="separator:ga5c026c940af4df8e13962eb78d4e0f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga951d45c9a0884c2ea35d98b71a7ea889"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#ga951d45c9a0884c2ea35d98b71a7ea889">XBARA_Deinit</a> (XBARA_Type *base)</td></tr>
<tr class="memdesc:ga951d45c9a0884c2ea35d98b71a7ea889"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shuts down the XBARA module. <a href="#ga951d45c9a0884c2ea35d98b71a7ea889">More...</a><br/></td></tr>
<tr class="separator:ga951d45c9a0884c2ea35d98b71a7ea889"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac03e8f73ad95b6df165650308b809cad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#gac03e8f73ad95b6df165650308b809cad">XBARA_SetSignalsConnection</a> (XBARA_Type *base, xbar_input_signal_t input, xbar_output_signal_t output)</td></tr>
<tr class="memdesc:gac03e8f73ad95b6df165650308b809cad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a connection between the selected XBARA_IN[*] input and the XBARA_OUT[*] output signal. <a href="#gac03e8f73ad95b6df165650308b809cad">More...</a><br/></td></tr>
<tr class="separator:gac03e8f73ad95b6df165650308b809cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47a5efeb5b13f65c272c01daadbf739c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#ga47a5efeb5b13f65c272c01daadbf739c">XBARA_GetStatusFlags</a> (XBARA_Type *base)</td></tr>
<tr class="memdesc:ga47a5efeb5b13f65c272c01daadbf739c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the active edge detection status. <a href="#ga47a5efeb5b13f65c272c01daadbf739c">More...</a><br/></td></tr>
<tr class="separator:ga47a5efeb5b13f65c272c01daadbf739c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee2d4bb11ed4c302dc6d66904f4eb7a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#gaee2d4bb11ed4c302dc6d66904f4eb7a8">XBARA_ClearStatusFlags</a> (XBARA_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gaee2d4bb11ed4c302dc6d66904f4eb7a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the edge detection status flags of relative mask. <a href="#gaee2d4bb11ed4c302dc6d66904f4eb7a8">More...</a><br/></td></tr>
<tr class="separator:gaee2d4bb11ed4c302dc6d66904f4eb7a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa010e6aecc627b857b04d9c2e8f5178b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#gaa010e6aecc627b857b04d9c2e8f5178b">XBARA_SetOutputSignalConfig</a> (XBARA_Type *base, xbar_output_signal_t output, const <a class="el" href="a00083.html#gaf08a77e84be753067f00baa38275f3da">xbara_control_config_t</a> *controlConfig)</td></tr>
<tr class="memdesc:gaa010e6aecc627b857b04d9c2e8f5178b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the XBARA control register. <a href="#gaa010e6aecc627b857b04d9c2e8f5178b">More...</a><br/></td></tr>
<tr class="separator:gaa010e6aecc627b857b04d9c2e8f5178b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00536" id="a00536"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct XBARAControlConfig</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>This structure keeps the configuration of XBARA control register for one output. Control registers are available only for a few outputs. Not every XBARA module has control registers. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a719e0f6dc2653f02bf80649520a7d773"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00083.html#ga13767542b858cfba49c5db98eaf4555e">xbara_active_edge_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#a719e0f6dc2653f02bf80649520a7d773">activeEdge</a></td></tr>
<tr class="memdesc:a719e0f6dc2653f02bf80649520a7d773"><td class="mdescLeft">&#160;</td><td class="mdescRight">Active edge to be detected. <a href="#a719e0f6dc2653f02bf80649520a7d773">More...</a><br/></td></tr>
<tr class="separator:a719e0f6dc2653f02bf80649520a7d773"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e0cd92fa945d26323a7427afa4dec62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00083.html#gaebc4ca2212f5faabce2f8678fd23338c">xbara_request_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#a1e0cd92fa945d26323a7427afa4dec62">requestType</a></td></tr>
<tr class="memdesc:a1e0cd92fa945d26323a7427afa4dec62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects DMA/Interrupt request. <a href="#a1e0cd92fa945d26323a7427afa4dec62">More...</a><br/></td></tr>
<tr class="separator:a1e0cd92fa945d26323a7427afa4dec62"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a719e0f6dc2653f02bf80649520a7d773"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00083.html#ga13767542b858cfba49c5db98eaf4555e">xbara_active_edge_t</a> XBARAControlConfig::activeEdge</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a1e0cd92fa945d26323a7427afa4dec62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00083.html#gaebc4ca2212f5faabce2f8678fd23338c">xbara_request_t</a> XBARAControlConfig::requestType</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gab6314ef7be163cd6a1867d874d9bbc1d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00083.html#ga492702c207ed1b605061f54b80c62f6a">_xbara_status_flag_t</a> <a class="el" href="a00083.html#gab6314ef7be163cd6a1867d874d9bbc1d">xbara_status_flag_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This provides constants for the XBARA status flags for use in the XBARA functions. </p>
</div>
</div>
<a class="anchor" id="gaf08a77e84be753067f00baa38275f3da"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00083.html#a00536">XBARAControlConfig</a> <a class="el" href="a00083.html#gaf08a77e84be753067f00baa38275f3da">xbara_control_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This structure keeps the configuration of XBARA control register for one output. Control registers are available only for a few outputs. Not every XBARA module has control registers. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga5ce2a1edfa4a79a50b926c21331478a7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00083.html#ga5ce2a1edfa4a79a50b926c21331478a7">_xbara_active_edge</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="gga5ce2a1edfa4a79a50b926c21331478a7a0b1f05aab008cc333fc9d221dc471ad2"></a>kXBARA_EdgeNone</em>&nbsp;</td><td class="fielddoc">
<p>Edge detection status bit never asserts. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5ce2a1edfa4a79a50b926c21331478a7aa9f6a89ba6b33bb42492a01a32e125d2"></a>kXBARA_EdgeRising</em>&nbsp;</td><td class="fielddoc">
<p>Edge detection status bit asserts on rising edges. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5ce2a1edfa4a79a50b926c21331478a7add352c2692d10c47e0565b5db9c0aaad"></a>kXBARA_EdgeFalling</em>&nbsp;</td><td class="fielddoc">
<p>Edge detection status bit asserts on falling edges. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5ce2a1edfa4a79a50b926c21331478a7ab5a8f839c97e6895864cf9c9acdf3acc"></a>kXBARA_EdgeRisingAndFalling</em>&nbsp;</td><td class="fielddoc">
<p>Edge detection status bit asserts on rising and falling edges. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga73169ee17867a3ce8ffbf19abd42b9e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00083.html#ga73169ee17867a3ce8ffbf19abd42b9e1">_xbar_request</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="gga73169ee17867a3ce8ffbf19abd42b9e1a67befcfe617c522f75f9c58aca037aef"></a>kXBARA_RequestDisable</em>&nbsp;</td><td class="fielddoc">
<p>Interrupt and DMA are disabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga73169ee17867a3ce8ffbf19abd42b9e1a074420520b90004cbbc9fe1cf6d95b18"></a>kXBARA_RequestDMAEnable</em>&nbsp;</td><td class="fielddoc">
<p>DMA enabled, interrupt disabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga73169ee17867a3ce8ffbf19abd42b9e1a90c054b76f1e59c9e159e2bb89f82541"></a>kXBARA_RequestInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Interrupt enabled, DMA disabled. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga492702c207ed1b605061f54b80c62f6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00083.html#ga492702c207ed1b605061f54b80c62f6a">_xbara_status_flag_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This provides constants for the XBARA status flags for use in the XBARA functions. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga492702c207ed1b605061f54b80c62f6aa7fd07691d8d5cd8b7cbfa21c080464af"></a>kXBARA_EdgeDetectionOut0</em>&nbsp;</td><td class="fielddoc">
<p>XBAR_OUT0 active edge interrupt flag, sets when active edge detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga492702c207ed1b605061f54b80c62f6aaa9104d5388f116228e21a65116dabd6d"></a>kXBARA_EdgeDetectionOut1</em>&nbsp;</td><td class="fielddoc">
<p>XBAR_OUT1 active edge interrupt flag, sets when active edge detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga492702c207ed1b605061f54b80c62f6aa53460b197642d46a4f04eadda3cb4bd2"></a>kXBARA_EdgeDetectionOut2</em>&nbsp;</td><td class="fielddoc">
<p>XBAR_OUT2 active edge interrupt flag, sets when active edge detected. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga492702c207ed1b605061f54b80c62f6aaa26a7c1cbca51e3ffa9362c03ac5a0d1"></a>kXBARA_EdgeDetectionOut3</em>&nbsp;</td><td class="fielddoc">
<p>XBAR_OUT3 active edge interrupt flag, sets when active edge detected. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga5c026c940af4df8e13962eb78d4e0f13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XBARA_Init </td>
<td>(</td>
<td class="paramtype">XBARA_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function un-gates the XBARA clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>XBARA peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga951d45c9a0884c2ea35d98b71a7ea889"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XBARA_Deinit </td>
<td>(</td>
<td class="paramtype">XBARA_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function disables XBARA clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>XBARA peripheral address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac03e8f73ad95b6df165650308b809cad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XBARA_SetSignalsConnection </td>
<td>(</td>
<td class="paramtype">XBARA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">xbar_input_signal_t&#160;</td>
<td class="paramname"><em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">xbar_output_signal_t&#160;</td>
<td class="paramname"><em>output</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function connects the XBARA input to the selected XBARA output. If more than one XBARA module is available, only the inputs and outputs from the same module can be connected.</p>
<p>Example: </p>
<div class="fragment"><div class="line"><a class="code" href="a00083.html#gac03e8f73ad95b6df165650308b809cad">XBARA_SetSignalsConnection</a>(XBARA, kXBARA_InputPIT_TRG0, kXBARA_OutputDMAMUX18);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>XBARA peripheral address. </td></tr>
<tr><td class="paramname">input</td><td>XBARA input signal. </td></tr>
<tr><td class="paramname">output</td><td>XBARA output signal. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga47a5efeb5b13f65c272c01daadbf739c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t XBARA_GetStatusFlags </td>
<td>(</td>
<td class="paramtype">XBARA_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets the active edge detect status of all XBARA_OUTs. If the active edge occurs, the return value is asserted. When the interrupt or the DMA functionality is enabled for the XBARA_OUTx, this field is 1 when the interrupt or DMA request is asserted and 0 when the interrupt or DMA request has been cleared.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>XBARA peripheral address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the mask of these status flag bits. </dd></dl>
</div>
</div>
<a class="anchor" id="gaee2d4bb11ed4c302dc6d66904f4eb7a8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XBARA_ClearStatusFlags </td>
<td>(</td>
<td class="paramtype">XBARA_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>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>XBARA peripheral address. </td></tr>
<tr><td class="paramname">mask</td><td>the status flags to clear. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa010e6aecc627b857b04d9c2e8f5178b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XBARA_SetOutputSignalConfig </td>
<td>(</td>
<td class="paramtype">XBARA_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">xbar_output_signal_t&#160;</td>
<td class="paramname"><em>output</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00083.html#gaf08a77e84be753067f00baa38275f3da">xbara_control_config_t</a> *&#160;</td>
<td class="paramname"><em>controlConfig</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function configures an XBARA control register. The active edge detection and the DMA/IRQ function on the corresponding XBARA output can be set.</p>
<p>Example: </p>
<div class="fragment"><div class="line"><a class="code" href="a00083.html#a00536">xbara_control_config_t</a> userConfig;</div>
<div class="line">userConfig.<a class="code" href="a00083.html#a719e0f6dc2653f02bf80649520a7d773">activeEdge</a> = <a class="code" href="a00083.html#gga5ce2a1edfa4a79a50b926c21331478a7aa9f6a89ba6b33bb42492a01a32e125d2">kXBARA_EdgeRising</a>;</div>
<div class="line">userConfig.<a class="code" href="a00083.html#a1e0cd92fa945d26323a7427afa4dec62">requestType</a> = kXBARA_RequestInterruptEnalbe;</div>
<div class="line"><a class="code" href="a00083.html#gaa010e6aecc627b857b04d9c2e8f5178b">XBARA_SetOutputSignalConfig</a>(XBARA, kXBARA_OutputDMAMUX18, &amp;userConfig);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>XBARA peripheral address. </td></tr>
<tr><td class="paramname">output</td><td>XBARA output number. </td></tr>
<tr><td class="paramname">controlConfig</td><td>Pointer to structure that keeps configuration of control register. </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>